Корзина не очищается после покупки из-за функции wc_update_product_stock()Php

Кемеровские программисты php общаются здесь
Anonymous
Корзина не очищается после покупки из-за функции wc_update_product_stock()

Сообщение Anonymous »

У меня есть это действие, которое активируется, когда заказ меняет статус на «обработка».
Этот код вызывает проблему: корзина не очищается после покупки.
Я обнаружил, что строка, вызывающая эту проблему: wc_update_product_stock( $product, $product_stock, 'set');
Но я не знаю, как это исправить . Есть ли другой способ обновить ассортимент товаров? Почему это происходит?
Важно: это происходит только с заказами, которые сразу же при покупке получают статус «в обработке».
Эта проблема не возникает. Этого не произойдет, если для заказа установлен статус «в ожидании», а затем я редактирую заказ и меняю статус вручную на «в обработке».
add_action('woocommerce_order_status_changed', 'so_status_completed', 10, 3);

function so_status_completed($order_id, $old_status, $new_status){
if($new_status == 'processing' || $new_status == 'on-hold'){

// in previous lines I fetch the $product_sku

$product_id = wc_get_product_id_by_sku( $product_sku );
$product = wc_get_product($product_id);
$product_stock = 100000;
update_post_meta($product_id, '_manage_stock', 'yes');
wc_update_product_stock( $product, $product_stock , 'set' ); // THIS LINE CAUSES THE ISSUE

}// close if($new_status == 'processing'){
}


Подробнее здесь: https://stackoverflow.com/questions/790 ... k-function

Вернуться в «Php»