需要協助在WooCommerce管理訂單頁面上更新我的產品庫存。我目前有一些程式碼可以工作,但它會從錯誤的產品中移除庫存。有人知道為什麼嗎?
add_action( 'woocommerce_after_order_itemmeta', 'action_woocommerce_order_item_add_button', 10, 2); function action_woocommerce_order_item_add_button($item_id, $item) { $product = $item->get_product(); $id = $item->get_product_id(); echo ''; } add_action('save_post', 'renew_save_again', 10, 3); function renew_save_again($post_id, $post, $update){ $slug = 'shop_order'; if(is_admin()){ // If this isn't a 'woocommercer order' post, don't update it. if ( $slug != $post->post_type ) { return; } if(isset($_POST['renew_order_single_product']) && $_POST['renew_order_single_product']){ //removes stock for specified product global $woocommerce; $quantity = 0; $product_id = $_POST['renew_order_single_product']; $woocmmerce_instance = new WC_Product($product_id); $new_quantity=wc_update_product_stock( $woocmmerce_instance, $quantity); } } }
P粉7242568602023-09-10 00:01:49
問題是,你在每個訂單項目後面添加了一個按鈕和一個輸入框,所以你有多個具有相同名稱的隱藏輸入框,它要么獲取第一個隱藏輸入框,要么獲取最後一個,而這就是更新的內容,你需要改變你的邏輯,只添加一個隱藏輸入框,並在按鈕點擊時更改隱藏輸入框的值,然後提交表單。