• konstantindbm

    (@konstantindbm)


    Bulk packing slip generation via the admin orders list is followed, approximately two seconds later, by line-item data loss on one or more of the orders included in that batch. Affected line items have _product_id, _qty, _line_subtotal, _line_total and _line_tax set to 0, while plugin-added meta on the same rows survives intact.

    Single-order document generation does not reproduce it. Orders with nine separate single-order generations are unaffected.

    Approximate rate: 1–2 orders corrupted per 20-order batch (~5–7%).

    Reproduction — three consecutive occurrences in seven minutes

    All three bulk requests came from the same admin session on 5 October 2026. Corruption timestamps are from a BEFORE UPDATE trigger on wp_woocommerce_order_itemmeta that records the previous value. Bulk request (UTC)Orders in requestCorruptedCorruption logged09:04:008 orders (144256–144270)144267, 14427009:04:0209:07:5820 orders (144271–144310)14429409:08:0009:11:0620 orders (144311–144351)144325, 14432609:11:08

    Example request:

    GET /wp-admin/admin-ajax.php?action=generate_wpo_wcpdf
        &document_type=packing-slip&bulk&_wpnonce=b31dacf513
        &order_ids=144270x144269x144268x144267x144266x144265x144264x144256
    HTTP/1.1  200  3278415
    Referer: /wp-admin/admin.php?page=wc-orders&status=wc-processing&paged=4

    Every corrupted order appeared in the order_ids of the request two seconds earlier. No order outside those batches was affected. Damage signature

    Two distinct patterns have been observed, both following bulk generation.

    Pattern A: fields zeroed

    Zeroed: _product_id, _qty, _line_subtotal, _line_total, _line_tax

    Survive: order_item_name, _reduced_stock, _wc_cog_item_cost, _wc_cog_item_total_cost, _wcpdf_regular_price

    _line_tax_data becomes:

    a:2:{s:5:"total";a:0:{}s:8:"subtotal";a:0:{}}

    That is, empty arrays — not a rate ID with a zero value. A legitimately zero-priced line on the same order (a BOGO free gift) stores:

    a:2:{s:5:"total";a:1:{i:1;s:1:"0";}s:8:"subtotal";a:1:{i:1;s:1:"0";}}

    The emptied tax structure plus the exact set of affected fields suggests a default-constructed WC_Order_Item_Product being saved over an existing row, rather than a recalculation producing zeros.

    In one case (order_item_id 385202, order 144294) even order_item_name was emptied.

    Pattern B — _reduced_stock deleted

    Order 144256, also in the 09:04 batch, kept its product IDs and quantities but had _reduced_stock deleted from all 14 line items. A BEFORE DELETE trigger captured the removals.

    The page I need help with: [log in to see the link]

Viewing 1 replies (of 1 total)
  • Plugin Contributor dwpriv

    (@dwpriv)

    Since you’re using our Professional extension and have emailed us at our support address, I’ll close this thread.

Viewing 1 replies (of 1 total)

You must be logged in to reply to this topic.