私が使用する支払いゲートウェイの1つは、トランザクションが失敗するかユーザーがトランザクションをキャンセルするたびに、注文ステータスを「処理中」から「失敗」に変更します。顧客が後で失敗した注文の支払いを試みると、支払いゲートウェイは「Duplicate Order ID」というエラーを投げます。したがって、この問題を回避するために、失敗した注文が発生したときにその注文を自動的に削除する必要があります。WooCommerce失敗した注文の自動削除
similar question on this siteがありますが、そこに記載されている解決策は機能していないようです。
コードは次のように表示されます。
<?php
function update_order_status($order_id) {
$order = new WC_Order($order_id);
$order_status = $order->get_status();
if ('cancelled' == $order_status || 'failed' == $order_status || 'pending' == $order_status) {
wp_delete_post($order_id,true);
}
}
こんにちはLoicTheAztec、時間と労力のためにありがとう。私はlocalserverでそれをテストしましたが、コードは私のケースでは機能していないようです(私は上記のpaytmで 'paypal'を置き換えました)。問題の支払いゲートウェイは、Paytm ** [Plugin link](https://github.com/Paytm-Payments/Paytm_Woocommerce_v2.x_Kit/tree/master/Wordpress_v4.x_compatible)**で、ゲートウェイIDは「paytm」です。製品タイプはVirtual + Downloadableです。私はまた、Woocommerceプラグインと一緒にWoocommerceサブスクリプションを使用します。 –
@ManjunathPmfIasコードは私のテストサーバー上で任意の注文種類の決済ゲートウェイのために完璧に動作します...だから私は何を変えるべきかわからない... – LoicTheAztec
localserverでは動作しませんでしたが、それが働いていたライブサーバー。実際には、それはより多くの問題を解決します。私は単にその考えを落とした。御時間ありがとうございます。 –