概要
woocommerce_taxonomy_args_product_shipping_class
フィルタは、WooCommerceでの製品の配送クラスに関連するカスタマイズを行うために使用されます。このフィルタを利用することで、製品の配送クラスのタクソノミー引数を変更し、特定の技術要件に応じて動作を調整できます。通常、以下のような機能を実装する際に役立ちます。
- 特定のユーザー役割に基づく配送クラスの制限
- 配送クラスの表示順序のカスタマイズ
- カスタムフィールドとの連携による配送クラスの動的生成
- 管理画面での配送クラス設定の変更
- APIレスポンスでの配送クラス情報の拡張
- フロントエンドでの配送クラスに基づく商品フィルタリング
フィルタの概要
- フィルタ名:
woocommerce_taxonomy_args_product_shipping_class
- 構文:
add_filter('woocommerce_taxonomy_args_product_shipping_class', 'your_function_name');
- パラメータ:
$args
(配列型、配送クラスの引数) - 戻り値: 修正された引数(配列型)
- 使用可能なプラグインWooCommerceのバージョン: 3.0.0以上
- ワードプレスのバージョン: 4.0以上
サンプルコード
サンプルコード 1: ユーザーロールによる配送クラスの制限
add_filter('woocommerce_taxonomy_args_product_shipping_class', function($args) {
if (current_user_can('subscriber')) {
$args['orderby'] = 'name';
}
return $args;
});
このコードは、購読者のユーザー権限を持つユーザーに対して、配送クラスの引数を並べ替えています。これにより、特定のユーザーロールに対する配送クラスの表示が変更されます。
サンプルコード 2: 配送クラスの表示順序をカスタマイズ
add_filter('woocommerce_taxonomy_args_product_shipping_class', function($args) {
$args['orderby'] = 'count';
return $args;
});
このコードは、配送クラスの表示を商品の数で並べ替えます。これにより、より多くの商品が関連付けられた配送クラスが上位に表示されるようになります。
サンプルコード 3: カスタムタクソノミーの追加
add_filter('woocommerce_taxonomy_args_product_shipping_class', function($args) {
$args['public'] = true;
return $args;
});
このコードは、配送クラスのタクソノミーをパブリックに設定します。これにより、公開されている配送クラスがユーザーに表示されるようになります。
サンプルコード 4: 非表示配送クラスの設定
add_filter('woocommerce_taxonomy_args_product_shipping_class', function($args) {
$args['show_ui'] = false;
return $args;
});
このコードは、配送クラスの管理画面での表示を無効にします。これにより、管理者や社員が特定の配送クラスを表示せずに管理できるようにします。
サンプルコード 5: 特定条件の配送クラス表示制御
add_filter('woocommerce_taxonomy_args_product_shipping_class', function($args) {
if (!is_user_logged_in()) {
$args['exclude_from_search'] = true;
}
return $args;
});
このコードは、ユーザーがログインしていない場合に、配送クラスを検索結果から除外します。それによって、非ログインユーザーは特定の配送クラスが表示されなくなります。
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
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 |