仅针对Woocommerce上的特定产品ID自动完成付费订单

仅针对Woocommerce上的特定产品ID自动完成付费订单,woocommerce,Woocommerce,是否有任何方法可以仅在Woocommerce上自动完成特定产品ID的订单 我使用代码自动完成订单 我也读过,但它从自动完成中排除了产品ID。我不能让它反过来工作 由于我的店铺中有20多种产品,我只想在其中2种产品上使用自动完成功能,如果我能指定要自动完成的订单ID,那就太好了。以下是一种自动完成特定产品ID的付费订单的方法: add_action( 'woocommerce_payment_complete_order_status', 'wc_auto_complete_paid_order'

是否有任何方法可以仅在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;
}
代码进入活动子主题(或活动主题)的functions.php文件



我想知道的另一件事是,如果我通过在购物车中添加1个自动完成产品和1个非自动完成产品进行结账,付款后它仍然会将其标记为完成。在这种情况下,我有没有办法将其标记为处理?非常感谢您的回复。