概要
woocommerce_admin_status_tabs
フィルタは、WooCommerceの管理画面において注文のステータスタブをカスタマイズするために使用されます。これにより、デフォルトのタブに新しいタブを追加したり、既存のタブを変更することができます。このフィルタは、WooCommerceの管理画面で特定の機能を実装する際によく利用されます。
主な使用例としては以下の6つがあります。
- 独自の注文ステータスを追加する
- 特定の条件に基づいてタブを表示・非表示にする
- 既存のタブの名前や内容を変更する
- カスタムデータに基づいてタブを動的に生成する
- ユーザーの権限に基づきタブの表示を制御する
- タブのレイアウトやスタイルをカスタマイズする
構文
add_filter('woocommerce_admin_status_tabs', 'your_custom_function');
function your_custom_function($tabs) {
// カスタムタブの追加
return $tabs;
}
パラメータ
$tabs
: 既存のタブ情報を含む配列。
戻り値
- 変更されたタブ情報を含む配列。
使用可能なWooCommerceのバージョン
- WooCommerce 2.0以降
使用可能なWordPressのバージョン
- WordPress 4.0以降
この関数のアクションでの使用可能性
アクション | 使用可能性 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | |
wp_roles_init | |
setup_theme | |
after_setup_theme | |
set_current_user | |
init | |
register_sidebar | |
wp_loaded | |
send_headers | |
parse_query | |
pre_get_posts | |
wp | |
template_redirect | |
get_header | |
wp_head |
サンプルコード
サンプル1
カスタムタブを追加する
add_filter('woocommerce_admin_status_tabs', 'add_custom_tab');
function add_custom_tab($tabs) {
$tabs['custom_status'] = __('Custom Status', 'woocommerce');
return $tabs;
}
このサンプルコードは、管理画面の注文ステータスタブに「Custom Status」というカスタムタブを追加します。
引用元: https://developer.woocommerce.com
サンプル2
タブの名前を変更する
add_filter('woocommerce_admin_status_tabs', 'rename_processing_tab');
function rename_processing_tab($tabs) {
if (isset($tabs['wc-processing'])) {
$tabs['wc-processing'] = __('Processing Order', 'woocommerce');
}
return $tabs;
}
このコードは、既存の「処理中」タブの名前を「Processing Order」に変更します。
引用元: https://developer.woocommerce.com
サンプル3
特定の条件でタブを削除する
add_filter('woocommerce_admin_status_tabs', 'remove_completed_tab');
function remove_completed_tab($tabs) {
if (current_user_can('editor')) {
unset($tabs['wc-completed']);
}
return $tabs;
}
このサンプルコードは、エディタ権限を持つユーザーに対して「完了」タブを削除します。
引用元: https://developer.woocommerce.com
サンプル4
タブの順序を変更する
add_filter('woocommerce_admin_status_tabs', 'reorder_tabs');
function reorder_tabs($tabs) {
if (isset($tabs['wc-on-hold']) && isset($tabs['wc-processing'])) {
$processing_tab = $tabs['wc-processing'];
unset($tabs['wc-processing']);
$tabs = array_slice($tabs, 0, 1, true) + [$processing_tab] + array_slice($tabs, 1, null, true);
}
return $tabs;
}
このサンプルでは、「処理中」タブを「保留中」タブの前に移動します。
引用元: https://developer.woocommerce.com
サンプル5
CSSクラスを追加する
add_filter('woocommerce_admin_status_tabs', 'add_custom_class_to_tabs');
function add_custom_class_to_tabs($tabs) {
foreach ($tabs as $key => &$tab) {
$tab['class'] = 'custom-tab-class';
}
return $tabs;
}
このコードは、すべてのタブに「custom-tab-class」というCSSクラスを追加します。
引用元: https://developer.woocommerce.com