„Hinzufügen benutzerdefinierter Schaltflächen zur Reduzierung des Lagerbestands: Hinzufügen neuer Funktionen zu Woocommerce-Administratorbestellungen'
P粉029057928
P粉029057928 2023-09-09 11:58:57
0
1
546

Benötige Hilfe bei der Aktualisierung meines Produktbestands auf der Seite „Bestellungen verwalten“ von WooCommerce. Ich habe derzeit einen Code, der funktioniert, aber er entfernt den Lagerbestand vom falschen Produkt. Weiß jemand warum?

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

Antworte allen(1)
P粉724256860

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

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage