Welcart 受注データの対応状況ステータスに任意のステータスを追加する方法

Welcartの受注データの対応状況のステータスに「新規受付/取り寄せ中/キャンセル/発送済み」がありますが、これ以外に任意のステータスを追加する方法を書いていきます。

受注データの対応状況ステータスを追加する

フィルターフック “usces_filter_management_status” にステータスを追加する独自関数を追加します。

/**
 * 受注データの対応状況ステータスを追加する
 * /wp-admin/admin.php?page=usces_orderlist&order_action=edit&order_id=xxxx&wc_nonce=xxxx
 */
function ag_usces_filter_management_status($management_status)
{
    //追加するステータス
    $add_status = ['other' => 'その他'];
    
    //既存ステータスと追加ステータスを結合
    $management_status += $add_status;
    
    return $management_status;
}
add_filter('usces_filter_management_status', 'ag_usces_filter_management_status', 10);

上記コードを反映すると以下のように追加したステータスが表示されます。

受注リストに追加したステータスを反映させる

受注リストにも反映させるためフィルターフック “usces_filter_orderlist_process_status” に追加する独自関数を追加します。

/**
 * 受注リストに対応状況ステータスに追加したものを反映させる
 * /wp-admin/admin.php?page=usces_orderlist
 */
function ag_usces_filter_orderlist_process_status($process_status, $value, $management_status)
{
    global $usces;
    
    if( $usces->is_status('duringorder', $value) ){
        //取り寄せ中
        $process_status = esc_html($management_status['duringorder']);
    }elseif( $usces->is_status('cancel', $value) ){
        //キャンセル
        $process_status = esc_html($management_status['cancel']);
    }elseif( $usces->is_status('completion', $value) ){
        //発送済み
        $process_status = esc_html($management_status['completion']);
    }elseif( $usces->is_status('other', $value) ){
        //その他(※追加したステータス)
        $process_status = esc_html($management_status['other']);        
    }else{
        //新規受付
        $process_status = esc_html(__('new order', 'usces'));
    }
    
    return $process_status;
}
add_filter('usces_filter_orderlist_process_status', 'ag_usces_filter_orderlist_process_status', 10, 3, 2);

上記の受注リスト用のコードを追加すると以下のように受注リストでも追加したステータスが反映されます。

動作環境情報

エックスサーバー(x10)
PHP 7.3.14
MySQL 5.7
WordPress 5.4.1
Welcart e-Commerce 1.9.30

コメント

  1. jurumi より:

    検索から失礼いたしました。
    welcart初心者ですが、設置方法についてお伺いします。

    上記の受注データの対応状況ステータスに「入金待ち」と「その他」を追加したいのですが、
    どこに追記するのかよくわからなくて困ってます。

    テーマのfunctions.phpに両方追加しますか?

    また、対応状況ステータス2個増やす場合は下記のコードで合ってますでしょうか。

    //追加するステータス
    $add_status = [‘pay’ => ‘入金待ち’];
        $add_status = [‘other’ => ‘その他];
     
    お手数をおかけしますが、ご返信のほどよろしくお願い申し上げます。

    • 深尾 拓生 / FUKAO Takuo より:

      確認が遅く返信が遅くなり申し訳ありません。
      今更ですが…
      追加場所は functions.php で問題ありません。
      また記載いただいたコードですと1つ目が上書きされてしまいますので、
      $add_status = ['pay'=>'入金待ち','other'=>'その他'];
      のようにしていただければ大丈夫かと存じます。

タイトルとURLをコピーしました