Увеличьте запас при заказе в WooCommerce

В настоящее время я работаю над проектом WordPress с использованием WooCommerce, и мне нужна действительно конкретная функция (не включенная в WooCommerce) :

Как увеличить запас, когда заказ будет завершен, а не уменьшить его?

До сих пор я нашел, что мне может понадобиться использовать API Woocommerce для выполнения этого WC_AJAX::increase_order_item_stock(); , Тем не менее мне не очень удобно использовать сложный PHP …

Есть ли у вас какие-то мысли, чтобы это сделать?
Может быть, с помощью плагина (которого я не нашел)? Или с сырым кодом?

Подводя итог всему: хочу создать веб-сайт для ресторана с управлением запасами и возможностью для поваров заказывать товары у разных поставщиков. Поэтому, когда повар заказывает что-то с страницы магазина woocommerce, инвентарь приобретенных предметов должен увеличиваться и не уменьшаться.

Я пробовал разные вещи, такие как «WC Vendors» или «Marketplace», но без успеха …

Благодарю.

Вы можете попробовать эту настраиваемую функцию, подключенную в woocommerce_order_status_completed action hook, которая увеличит количество каждого товара с количеством элементов этого заказа, когда статус установлен на завершенное :

 add_action( 'woocommerce_order_status_completed', 'action_on_order_completed' , 10, 1 ); function action_on_order_completed( $order_id ) { // Get an instance of the order object $order = wc_get_order( $order_id ); // Iterating though each order items foreach ( $order->get_items() as $item_id => $item_values ) { // Item quantity $item_qty = $item_values['qty']; // getting the product ID (Simple and variable products) $product_id = $item_values['variation_id']; if( $product_id == 0 || empty($product_id) ) $product_id = $item_values['product_id']; // Get an instance of the product object $product = wc_get_product( $product_id ); // Get the stock quantity of the product $product_stock = $product->get_stock_quantity(); // Increase back the stock quantity wc_update_product_stock( $product, $item_qty, 'increase' ); } } 

Код работает с простыми или переменными продуктами, которые имеют собственное управление запасами. Возможно, вам может понадобиться внести некоторые изменения в зависимости от ваших настроек WooCommerce. Это всего лишь пример, который дает вам идею, способ …

Код идет в файле function.php вашей активной дочерней темы (или темы), а также в любом файле плагина.

Этот код не выдает ошибок в WooCommerce версии 2.6.x и должен работать.