概要
woocommerce_product_visibility_options
は、WooCommerceにおいて商品可視性のオプションを変更するためのフィルターフックです。このフィルターを使用することで、商品がサイト上でどのように表示されるかを微調整できます。具体的には、特定の条件に基づいて商品の表示をカスタマイズしたり、特定のユーザーにのみ商品を表示したりする場合に役立ちます。よく使われる機能の実装には、以下のようなものがあります:
- 商品を特定のユーザーグループのみに表示
- 特定のカテゴリーに属する商品の可視性のカスタマイズ
- 季節やイベントに基づく商品の表示制御
- 特定の期間内のみ表示する商品のカスタマイズ
- 新製品やセール商品を特別に表示するための設定
- ユーザーの購入履歴に基づいた商品の表示制御
構文
add_filter('woocommerce_product_visibility_options', 'custom_product_visibility_options');
パラメータ
$visibility_options
: 既存の可視性オプションを含む配列。
戻り値
- 新しい可視性オプションを含む配列。
使用可能なプラグインおよびワードプレスのバージョン
- WooCommerceのバージョン: 4.0+
- WordPressのバージョン: 5.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_product_visibility_options', function($visibility_options) {
if (current_user_can('wholesale_customer')) {
// 卸売顧客のみ商品の表示を許可
$visibility_options[] = 'wholesale';
}
return $visibility_options;
});
// 引用元: なし
このコードは、顧客が卸売顧客である場合に商品の可視性オプションに「wholesale」を追加します。
サンプルコード2: 特定のカテゴリーに属する商品の可視性を変更
add_filter('woocommerce_product_visibility_options', function($visibility_options) {
if (in_category('special-category')) {
$visibility_options[] = 'special';
}
return $visibility_options;
});
// 引用元: なし
このコードは、特定のカテゴリーに属する商品に対して独自の可視性オプションを追加します。
サンプルコード3: 季節に基づく商品の表示制御
add_filter('woocommerce_product_visibility_options', function($visibility_options) {
$current_month = date('n');
if ($current_month == 12) { // 12月のみ
$visibility_options[] = 'holiday_special';
}
return $visibility_options;
});
// 引用元: なし
このコードは、12月にのみ「holiday_special」の可視性オプションを追加します。
サンプルコード4: セール商品のカスタマイズ
add_filter('woocommerce_product_visibility_options', function($visibility_options) {
if (is_sale()) {
$visibility_options[] = 'on_sale';
}
return $visibility_options;
});
// 引用元: なし
このコードは、セール商品に特有の可視性オプションを追加します。
サンプルコード5: 購入履歴に基づく商品の表示制御
add_filter('woocommerce_product_visibility_options', function($visibility_options) {
if (wc_customer_bought_product('', get_current_user_id())) {
$visibility_options[] = 'previously_purchased';
}
return $visibility_options;
});
// 引用元: なし
このコードは、ユーザーが過去に購入した商品に対して特別な可視性オプションを追加します。