在IPN通知后根据发货方式更改Woocommerce订单状态

时间:2018-12-17 12:08:13

标签: php woocommerce

在Woocommerce中,如果选择的送货方式是“ negozio中的Ritiro”,我必须自动将订单设置为“已完成”状态。

我尝试将以下代码放入我的functions.php文件中,但是在下了几笔订单后,我注意到产品数量并未按库存增加!这可能是由于未按时收到Paypal IPN通知这一事实。

add_action( 'woocommerce_thankyou', 'express_shipping_update_order_status', 10, 1 );

function express_shipping_update_order_status( $order_id ) {

    if ( ! $order_id ) return;

    // Get an instance of the WC_Order object

    $order = wc_get_order( $order_id );

    // Get the WC_Order_Item_Shipping object data

    foreach ( $order->get_shipping_methods() as $shipping_item ) {

        if ( $shipping_item->get_method_title() == "Ritiro in negozio" ) {

            $order->update_status('completed');

            break;

        }

    }

}

是否有人有解决方案可以先接收IPN通知,等待订购产品的数量增加,然后将订单状态更改为已完成?

0 个答案:

没有答案