0

我已将这段代码添加到我的函数文件中,但付款后订单仍未标记为“已处理”。

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 url,您将看到1as 内容。

对可能发生的事情有任何想法吗?邮件语句仅用于测试目的。

4

1 回答 1

0

你忘了放

$order->payment_complete();

或者如果失败

$order->update_status( 'failed', sprintf( __( 'Payment %s via IPN.', 'woocommerce' ), "failed" ) );

return 'completed'; 

做任何事情?

于 2013-11-15T02:58:28.830 回答