"增加自定义按钮以减少库存:为Woocommerce管理员订单添加新功能"
P粉029057928
P粉029057928 2023-09-09 11:58:57
0
1
549

需要帮助在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粉029057928
P粉029057928

全部回复(1)
P粉724256860

问题是,你在每个订单项目后面添加了一个按钮和一个输入框,所以你有多个具有相同名称的隐藏输入框,它要么获取第一个隐藏输入框,要么获取最后一个,并且这就是更新的内容,你需要改变你的逻辑,只添加一个隐藏输入框,并在按钮点击时更改隐藏输入框的值,然后提交表单。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板