我正在更新一些取消订单后增加woocommerce库存的代码,但这不起作用。
以前,我们使用的是increase_stock
函数,但现在不建议使用,建议使用wc_update_product_stock
。我在自定义插件中使用此代码。结果是:
我们收到有关增加了多少个单位的通知。
add_action("woocommerce_order_status_changed", "my_awesome_publication_notification");
function my_awesome_publication_notification($order_id, $checkout=null) {
global $woocommerce;
$order = new WC_Order( $order_id );
if ( ! get_option('woocommerce_manage_stock') == 'yes' && ! sizeof( $order->get_items() ) > 0 ) {
return;
}
if($order->status === 'cancelled' || $order->status === 'failed' || $order->status === 'refunded')
{
foreach ( $order->get_items() as $item ) {
if ( $item['product_id'] > 0 ) {
$_product = $order->get_product_from_item( $item );
if ( $_product && $_product->exists() && $_product->managing_stock() ) {
$old_stock = $_product->stock;
$qty = apply_filters( 'woocommerce_order_item_quantity', $item['qty'], $this, $item );
$new_quantity = $_product->increase_stock( $qty );
do_action( 'woocommerce_auto_stock_restored', $_product, $item );
$order->add_order_note( sprintf( __( 'Inventario del Item #%s aumento de %s a %s.', 'woocommerce' ), $item['product_id'], $old_stock, $new_quantity) );
$order->send_stock_notifications( $_product, $new_quantity, $item['qty'] );
}
}
}
}
}
我尝试替换该行:
$new_quantity = $_product->increase_stock( $qty );
对于
$new_quantity = $_product->wc_update_product_stock($_product,$qty, 'increase');
但是当我将订单从待处理状态更改为取消状态时,网站崩溃了。