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

IPN は MercadoPago (使用しているゲートウェイ) で正しく設定されており、アクセス ログでは、MP が実際にこのためにサーバーに ping を送信していることがわかります。IPN URL にアクセスしようとすると、1コンテンツとして a が表示されます。

何が起こっているのかについて何か考えはありますか?メール文はテスト用です。

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 に答える