Woocommerce: измените статус заказа на ожидающий, но не увеличивайте запас - PullRequest
0 голосов
/ 26 сентября 2019

Рассмотрим этот пример:

У меня есть продукт с именем "A", и в моем магазине их 10.

Пользователь заказывает и оплачивает 3. Статус заказа изменится на «обработка», и запас уменьшится.

Теперь я вручную изменяю статус заказа на «ожидающий».Запас увеличивается до 10.

Я хочу предотвратить увеличение.

Это код, который я использую, но, похоже, не работает:

function wcs_do_not_reduce_onhold_stock( $reduce_stock, $order ) {
    if ( $order->has_status( 'pending' ) ) {
        $reduce_stock = false;
    }
    return $reduce_stock;
}

add_filter( 'woocommerce_can_reduce_order_stock', 'wcs_do_not_reduce_onhold_stock', 10, 2 );

1 Ответ

0 голосов
/ 27 сентября 2019

Причина, по которой ваш код не работает, заключается в том, что WooCommerce на самом деле имеет различные функции для уменьшения запасов и увеличения запасов - wc_reduce_stock_levels () и wc_increase_stock_levels ().Фильтр woocommerce_can_reduce_order_stock находится в функции wc_reduce_stock_levels ().В функции wc_increase_stock_levels () есть соответствующий фильтр woocommerce_can_restore_order_stock.Попробуйте вместо этого использовать этот фильтр.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...