【发布时间】:2017-04-23 14:31:01
【问题描述】:
我在 WooCommerce 上使用这个小代码from this answer 来自动完成支付处理订单:
/**
* AUTO COMPLETE PAID ORDERS IN WOOCOMMERCE
*/
add_action( 'woocommerce_thankyou', 'custom_woocommerce_auto_complete_paid_order', 10, 1 );
function custom_woocommerce_auto_complete_paid_order( $order_id ) {
if ( ! $order_id ) {
return;
}
$order = wc_get_order( $order_id );
// No updated status for orders delivered with Bank wire, Cash on delivery and Cheque payment methods.
if ( ( get_post_meta($order->id, '_payment_method', true) == 'bacs' ) || ( get_post_meta($order->id, '_payment_method', true) == 'cod' ) || ( get_post_meta($order->id, '_payment_method', true) == 'cheque' ) ) {
return;
}
// "completed" updated status for paid Orders with all others payment methods
else {
$order->update_status( 'completed' );
}
}
但问题是我使用了一个特殊的 SMS 支付网关,它的 API 桥接在“cod”支付方式上,订单有时会在这个“woocommerce_thankyou”挂钩上保持暂停状态。
所以我需要一直扫描“处理”订单,以完整状态传递它们。我尝试了不同的东西和钩子,但我无法按预期工作。
我该怎么做?
谢谢
【问题讨论】:
标签: php wordpress woocommerce hook-woocommerce orders