更新
ががある可能性があります。payment_complete()
は、あなたが探しているプロセスに関与していません。また、あなたが試みることができることは代わりにwoocommerce_thankyou
アクションフックです:
コードがfunction.phpファイルに入り(お支払い方法IDスラグによって$order->get_payment_method()
を置き換える)woocommerce_thankyou_{$order->get_payment_method()}
:
add_action('woocommerce_thankyou', 'thankyou_order_status', 10, 1);
function thankyou_order_status($order_id){
if(! $order_id) return;
$order = new WC_Order($order_id); // Get an instance of the WC_Order object
if ($order->has_status('processing'))
$order-> update_status('pending')
}
あなたは同じ代替フックを使用することができますあなたのアクティブな子供のテーマ(またはテーマ)の、または任意のプラグインファイルでも使用できます。
このコードはWoocommerce 3+でテストされ、動作します。
ご注文のステータスを変更、自動の責任があり、関連する機能payment_complete()
で撮影することができます希望の受注ステータスを返しますwoocommerce_valid_order_statuses_for_payment_complete
フィルターフックに引っかけカスタム関数を使用します。デフォルトでは
フィルタで注文ステータスの配列である:
array('on-hold', 'pending', 'failed', 'cancelled').
そして、私たちは「保留」このように注文状況を削除することができます。
add_filter('woocommerce_payment_complete_order_status', 'disable_auto_order_status', 10, 2);
function disable_auto_order_status($order_statuses, $order) {
$return array('pending', 'failed', 'cancelled');
}
コードはfunction.phpに行きますあなたのアクティブな子供のテーマ(またはテーマ)のファイル、またはすべてのプラグインファイル。
このコードはWoocommerce 3+でテストされ、動作します。
お返事ありがとうございます。しかし、これは私のために働いていない状態はまだ変更されたメッセージを持っているノートがある注文ページでも処理に変更されています。 –
さて、私はそれがリンクを送信したその機能で声を変える行をコメントアウトしました。 ステータスはまだ変化しています –
あなたのコメントであなたが言っていることは実際には得られませんでしたが、私の答えに述べられているように、それは上記のスペックを期待して動作しています。 – Junaid