替换已弃用的woocommece gain_stock函数

时间:2019-07-12 19:45:12

标签: php woocommerce

我正在更新一些取消订单后增加woocommerce库存的代码,但这不起作用。

以前,我们使用的是increase_stock函数,但现在不建议使用,建议使用wc_update_product_stock。我在自定义插件中使用此代码。结果是:

  1. 取消订单会增加订单产品的库存。
  2. 我们收到有关增加了多少个单位的通知。

    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');

但是当我将订单从待处理状态更改为取消状态时,网站崩溃了。

0 个答案:

没有答案