自动完成已付款订单仅适用于Woocommerce上的特定产品ID



有什么方法可以只在Woocommerce上自动完成特定产品ID的订单吗?

我使用此线程上的代码来自动完成订单。

我也阅读了这个线程,但它从自动完成中排除了产品 ID。而且我无法使它以相反的方式工作。

由于我的商店中有 20+ 种产品,并且我只想在其中 2 种产品上使用自动完成功能,因此如果我能指定要自动完成的订单 ID,那就太好了。

以下是自动完成特定产品 ID 的付费订单的方法:

add_action( 'woocommerce_payment_complete_order_status', 'wc_auto_complete_paid_order', 10, 3 );
function wc_auto_complete_paid_order( $status, $order_id, $order ) {
    // Below the targeted product Ids
    $targeted_ids = array(37, 53);
    // Loop through order line items
    foreach( $order->get_items() as $item ) { 
        if ( in_array( $item->get_product_id(), $targeted_ids ) || in_array( $item->get_variation_id(), $targeted_ids ) ) {
            return 'completed';
        }
    }
    return $status;
}

代码进入函数.php活动子主题(或活动主题(的文件。


  • WooCommerce:自动完成已付款订单
  • 在Woocommerce中的自动完成订单流程中排除特定产品

最新更新