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

コメント

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