我已将此段代码添加到我的函数文件中,但在付款后订单仍未标记为“已处理”。
add_filter('woocommerce_payment_complete_order_status', 'my_change_status_function');
function my_change_status_function($order_id) {
$order = new WC_Order($order_id);
mail('xxx@xxx.com','payment','received');
return 'completed';
}
在MercadoPago(我们正在使用的网关)上正确设置了IPN,在访问日志中,我们可以看到MP实际上正在向服务器发送ping。如果您尝试访问ipn网址,则会看到1
作为内容。
对可能发生的事情有任何想法?邮件句子仅用于测试目的。
答案 0 :(得分:0)
你忘了把
$order->payment_complete();
或者如果失败
$order->update_status( 'failed', sprintf( __( 'Payment %s via IPN.', 'woocommerce' ), "failed" ) );
是
return 'completed';
做什么事?