php - WooCommerce:基于付款方式的订单状态

标签 php wordpress woocommerce orders payment-method

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

付费: enter image description here 未支付: enter image description here

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

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

任何帮助将不胜感激!

最佳答案

你的代码非常过时,充满错误......

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

  1. 货到付款cod使用(默认状态为“正在处理”):
  • 支票兑现支票使用*(默认状态为“暂停”):
  • 银行电汇bacs使用*(默认状态为“暂停”):
  • 对于其他支付网关使用(默认订单状态与每个支付网关以及是否有可发货商品相关):
  • 关于php - WooCommerce:基于付款方式的订单状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66658628/

    相关文章:

    php - 具有自定义字段类别的下一个/上一个自定义帖子类型

    mysql - 将 WordPress 从 WAMP 上传到 GoDaddy 时出现数据库错误(无法本地访问网站)

    css - 电子商务;如何CSS右对齐价格?

    javascript - 隐藏产品描述页面中的第一个缩略图

    php - 使用 API 平台允许 json 中的 NULL 值

    php - 3个不同的等于

    php - 联系表格不会返回主页

    php - 任何特定国家/地区接下来的三个假期 - MySQL 还是 API?

    wordpress - 更新使用 Subversion 跟踪的 WordPress

    php - WooCommerce 将订单送货地址作为单独的字段获取