WooCommerceで注文ステータスを非表示にする方法

公開: 2020-11-12

WooCommerce注文ステータスを非表示 WooCommerceストアでコアオーダーステータスを非表示にしますか? 最近、クライアントがWooCommerceストアで注文ステータスの一部を非表示にすることを希望しました。 この投稿では、いくつかの注文ステータスを簡単に削除する方法と、カスタムステータスを作成する方法を説明します。

WooCommerce注文ステータスを非表示

さまざまな理由から、コア注文ステータスの一部を非表示にすることができます。 ただし、デフォルトバージョンのWooCommerceでは、注文の完了、処理中、支払い保留中、保留中、払い戻し済み、キャンセル済み、または失敗のいずれかのステータスで注文にマークを付けることができます。

多くのプラグインを使用すると、注文ステータスを管理できます。そのうちの1つは、49ドルの価格の「 WooCommerce注文ステータスマネージャー」プラグインです。 WooCommerce Order Status Manager

これはあなたの店にとって高価な解決策かもしれませんが、これを行う簡単な方法があります。 WooCommerceの現在のバージョンでは、注文ステータスは、投稿のドラフト、スケジュール、または公開と同様に、カスタム投稿ステータスとして保存されます。

注文ステータスを非表示にする方法

それでは、コードスニペットを使用してWooCommerceで注文ステータスを非表示にする方法を見てみましょう。 デフォルトの注文ステータスメッセージを確認するには、WordPressサイトにログインし、管理者ユーザーとしてダッシュボードにアクセスします。 次に、 WooCommerce> Ordersをクリックします。 あなたはこれを見るでしょう: 注文ステータスバックエンド

これらのメッセージは、顧客が注文しようとしたときにフロントエンドにも表示されます。 これには、以下に示すように、[マイアカウント]> [注文]をクリックしてアクセスできます。 注文状況フロントエンド

コア注文ステータスを非表示にする手順

コアオーダーステータスを非表示にするときは、そのステータスの製品がないことを確認してください。 さらに、エラーが発生する可能性があるため、WooCommerceショップがそのステータスをどこでも使用しないようにする必要があります。 たとえば、WooCommerceストアで払い戻しを行う予定がない場合は、払い戻しステータスを非表示にすることができます。

すべてのコア注文ステータスを削除できない理由は、ワークフローで使用しないものも含めて、プラグインが注文ステータスを使用するためです。 支払いゲートウェイのようなプラグインは、常にコア注文ステータスが存在することを前提としています。 彼らがそこにいない場合、彼らは壊れます

従う必要のある手順は次のとおりです。

  1. WordPressサイトにログインし、管理者ユーザーとしてダッシュボードにアクセスします。
  2. [ダッシュボード]メニューから、[外観メニュー]> [テーマエディターメニュー]をクリックします。 テーマエディタページが開いたら、テーマ関数ファイルを探して、WooCommerceストアのコアオーダーステータスを非表示にする関数を追加します。
  3. 次のコードをfunctions.phpファイルに追加します。
 / *

 *コア注文ステータスの削除

 * @param array $ wc_statuses_arrWebサイト上のすべての注文ステータスの配列

 * /

関数njengah_remove_order_statuses($ wc_statuses_arr){

            //処理

            if(isset($ wc_statuses_arr ['wc-processing'])){//存在する場合

                        unset($ wc_statuses_arr ['wc-processing']); //配列から削除します

            }

            //返金

            if(isset($ wc_statuses_arr ['wc-refunded'])){

                        unset($ wc_statuses_arr ['wc-refunded']);

            }

            // 保留

            if(isset($ wc_statuses_arr ['wc-on-hold'])){

                        unset($ wc_statuses_arr ['wc-on-hold']);

            }

            // 失敗した

            if(isset($ wc_statuses_arr ['wc-failed'])){

                        unset($ wc_statuses_arr ['wc-failed']);

            }

            // 支払い待ち

            if(isset($ wc_statuses_arr ['wc-pending'])){

                        unset($ wc_statuses_arr ['wc-pending']);

            }

            //完了

            // if(isset($ wc_statuses_arr ['wc-completed'])){

            // unset($ wc_statuses_arr ['wc-completed']);

            //}

            //キャンセル

            // if(isset($ wc_statuses_arr ['wc-cancelled'])){

            // unset($ wc_statuses_arr ['wc-cancelled']);

            //}

            $ wc_statuses_arrを返します。 //結果のステータスを返します

}

add_filter( 'wc_order_statuses'、 'njengah_remove_order_statuses');
  1. これはフロントエンドでの結果です。 注文ステータスを非表示
  2. カスタムオーダーステータスを追加するには、functions.phpファイルに次のコードを追加します。
 / **

* ID「wc-njengah-shipment」とラベル「Awaitingshipship」で新しいステータスを登録します

* /

関数njengah_register_awaiting_shipment_status(){
register_post_status( 'wc-njengah-shipment'、array(

'ラベル' => '出荷待ち'、

'public' => true、

'show_in_admin_status_list' => true、//カウントを表示すべて(12)、完了(9)、出荷待ち(2)..。

'label_count' => _n_noop( '出荷待ち<spanclass = "count">(%s)</ span>'、 '出荷待ち<spanclass = "count">(%s)</ span>')

));
}

add_action( 'init'、 'njengah_register_awaiting_shipment_status');

/ *

*登録ステータスをWC注文ステータスのリストに追加します

* @param array $ wc_statuses_arrWebサイト上のすべての注文ステータスの配列

* /

関数njengah_add_status($ wc_statuses_arr){
$ new_statuses_arr = array();

//処理後に新しい注文ステータスを追加します

foreach($ wc_statuses_arr as $ id => $ label){

$ new_statuses_arr [$ id] = $ label;

if( 'wc-completed' === $ id){//「完了」ステータスの後

$ new_statuses_arr ['wc-njengah-shipment'] = '出荷待ち';

}

}
$ new_statuses_arrを返します。

//注文ステータスの順序が重要でない場合は、21〜32行目を削除して、次の35〜36のコメントを外すことができます

// $ wc_statuses_arr ['wc-njengah-shipment'] = '出荷待ち';

// $ wc_statuses_arrを返します;
}

add_filter( 'wc_order_statuses'、 'njengah_add_status');
  1. これが結果です: カスタムオーダーステータスを追加

結論

この投稿では、コアオーダーステータスを非表示にする方法を見てきました。 ただし、削除する注文ステータスは、エラーにつながる可能性があるため、ストアのどこにも使用されていないことに注意してください。 さらに、カスタムオーダーステータスを追加する方法を共有しました。 コードの処理に慣れていない場合は、資格のあるWordPress開発者に連絡してください。

同様の記事