【问题标题】:WooCommerce: Order status based on Payment methodsWooCommerce:基于付款方式的订单状态
【发布时间】:2021-06-13 22:30:11
【问题描述】:

在 Woocommerce 上,我们可以选择 BACS 付款。有些订单以“付费”的形式通过,有些则不是。我不明白为什么,因为他们使用完全相同的付款方式。下面的两张图片将向您展示这一点:

付费: 没有支付:

我们正在使用一项功能自动将这些付款从“暂停”更改为“处理中”,以防这可能与问题有关。代码如下:

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

function bacs_order_payment_processing_order_status( $order_id ) {
if ( ! $order_id ) {
    return;
}

// Get an instance of the WC_Order object
$order = new WC_Order( $order_id );

if ( ( get_post_meta($order->id, '_payment_method', true) == 'bacs' || 'cod'  ) && ('on-hold' == $order->status || 'pending' == $order->status) ) {
    $order->update_status('processing');
}

else {
    return;
}
}

// change COD payment method order status from processing to on-hold
add_action('woocommerce_thankyou_cod', 'action_woocommerce_thankyou_cod', 10, 1);
function action_woocommerce_thankyou_cod($order_id)
{
    $order = wc_get_order($order_id);
    $order->update_status('processing');
}

任何帮助将不胜感激!

【问题讨论】:

    标签: php wordpress woocommerce orders payment-method


    【解决方案1】:

    您的代码非常过时,与错误混淆......

    相反,更改付款的订单状态,例如:

    1. 货到付款cod使用(默认状态为“处理中”):
    1. 现金支票cheque 使用*(默认状态为“保留”):
    1. 银行电汇bacs使用*(默认状态为“保留”):
    1. 供其他支付网关使用(默认订单状态与每个支付网关相关,以及是否有可发货物品):

    【讨论】:

      猜你喜欢
      • 2018-02-13
      • 2019-07-26
      • 2020-11-03
      • 1970-01-01
      • 2018-01-10
      • 2019-07-30
      • 2016-08-26
      • 2017-04-07
      • 2019-02-21
      相关资源
      最近更新 更多