2017-09-18 13 views
1

を無効にします。Woocommerceは、私は、このオプションをdissableしたい自動注文ステータスの変更pending->処理

しかし、私はを望んでいません。この機能はが有効になっています。むしろ、私は注文を処理するときに手動でやりたいと思っています。

この機能を可能にしているwoocommerceでこの機能が見つかりました。私は直接そこでそれを変更するのではなく、この関数をオーバーライドする何らかの種類のPHPスニペットを使っています。 http://woocommerce.wp-a2z.org/oik_api/wc_orderpayment_complete/

PS:私はちょうどそれを正しく行うには苦労してここ

は私が変更する必要がある機能です。

答えて

1

ストライプテストモードを通じて支払わ店頭WooCommerceでテストあなたのfunctions.php file.function

ja_order_status($order_status, $order_id) { 
    $order = new WC_Order($order_id); 

    if ('processing' == $order_status) { 
     return 'pending'; 
    } 

    return $order_status; 
} 
add_filter('woocommerce_payment_complete_order_status', 'ja_order_status', 10, 2); 

に次のコードを追加します。

+0

お返事ありがとうございます。しかし、これは私のために働いていない状態はまだ変更されたメッセージを持っているノートがある注文ページでも処理に変更されています。 –

+0

さて、私はそれがリンクを送信したその機能で声を変える行をコメントアウトしました。 ステータスはまだ変化しています –

+0

あなたのコメントであなたが言っていることは実際には得られませんでしたが、私の答えに述べられているように、それは上記のスペックを期待して動作しています。 – Junaid

0

更新

ががある可能性があります。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+でテストされ、動作します。

+0

Nope。まだ私は働いていません –

+0

@ LaciFeldsam私の答えを更新しました... – LoicTheAztec

+0

これはトリックを作った。種類オフ.... 作業中ですが、これは以下のように動作するため、処理中です: 保留中→処理中→保留中 –

関連する問題