Besoin d'aide pour mettre à jour mon inventaire de produits sur la page de gestion des commandes de WooCommerce. J'ai actuellement du code qui fonctionne, mais il supprime l'inventaire du mauvais produit. Quelqu'un sait-il pourquoi?
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); } } }
Le problème est que vous avez ajouté un bouton et une zone de saisie après chaque article de commande, vous avez donc plusieurs zones de saisie masquées avec le même nom, il obtient soit la première zone de saisie masquée, soit la dernière, et c'est la mise à jour, vous vous devez changer votre logique et simplement ajouter une zone de saisie masquée et modifier la valeur de la zone de saisie masquée en cliquant sur le bouton, puis soumettre le formulaire.