针对Moneris Gateway,如何配置代码自动完成WooCommerce处理中订单?
解决WordPress WooCommerce订单自动完成(针对Moneris Gateway)
要获取Moneris Gateway的支付方法标识,直接查已有订单数据最准确:
- 进入WP后台「订单」页面,打开一个用Moneris支付的订单详情
- 按F12打开浏览器开发者工具,在控制台输入以下代码并回车:
console.log(wc_order_params.order_payment_method) - 输出的字符串就是该支付方式的标识,常见的可能是
moneris或moneris_gateway
修改后的代码示例(把
moneris替换成你实际查到的标识即可):
add_action('woocommerce_order_status_changed', 'ts_auto_complete_by_payment_method'); function ts_auto_complete_by_payment_method($order_id) { if ( ! $order_id ) { return; } $order = wc_get_order( $order_id ); if ($order->get_status() == 'processing') { $payment_method = $order->get_payment_method(); // 替换为Moneris Gateway的实际支付标识 if ($payment_method !== "moneris") { $order->update_status( 'completed' ); } } }
注:原代码里直接访问$order->data['status']的方式不够规范,建议换成WooCommerce官方推荐的$order->get_status()方法,避免后续版本兼容问题。
内容的提问来源于stack exchange,提问作者hamid khayam
相关产品推荐
相关产品推荐

