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
コメント
検索から失礼いたしました。
welcart初心者ですが、設置方法についてお伺いします。
上記の受注データの対応状況ステータスに「入金待ち」と「その他」を追加したいのですが、
どこに追記するのかよくわからなくて困ってます。
テーマのfunctions.phpに両方追加しますか?
また、対応状況ステータス2個増やす場合は下記のコードで合ってますでしょうか。
//追加するステータス
$add_status = [‘pay’ => ‘入金待ち’];
$add_status = [‘other’ => ‘その他];
お手数をおかけしますが、ご返信のほどよろしくお願い申し上げます。
確認が遅く返信が遅くなり申し訳ありません。
今更ですが…
追加場所は functions.php で問題ありません。
また記載いただいたコードですと1つ目が上書きされてしまいますので、
$add_status = ['pay'=>'入金待ち','other'=>'その他'];
のようにしていただければ大丈夫かと存じます。