概要
woocommerce_no_products_found
フィルタは、WooCommerceで商品が見つからなかった際に表示されるメッセージをカスタマイズするために使用されます。このフィルタを使うことで、例えば、特定の条件下で異なるメッセージを表示したり、特定のリダイレクト先を指定したりすることが可能です。
woocommerce_no_products_found
フィルタは、以下のような状況で特に便利です。
- カスタムメッセージの表示
- 特定の商品の在庫がない場合のメッセージ変更
- 商品カテゴリに対する説明の追加
- サイトのプロモーションやキャンペーン情報の表示
- ユーザーに関連する他の製品を提案する
- SEOの観点からのカスタマイズ
このフィルタは、WooCommerceバージョン3.0以上、WordPressバージョン4.7以上で使用可能です。
構文
add_filter('woocommerce_no_products_found', 'custom_no_products_found_message', 10, 2);
パラメータ
$message
(string): デフォルトの「製品が見つかりません」というメッセージ。$query
(WP_Query): 現在のクエリ。
戻り値
- (string): カスタマイズされたメッセージ。
サンプルコード
サンプルコード 1: カスタムメッセージの表示
このサンプルコードは、商品が見つからなかった場合に、特定のカスタムメッセージを表示します。
add_filter('woocommerce_no_products_found', function($message) {
return __('申し訳ありませんが、該当する商品はありません。', 'woocommerce');
});
引用元: https://docs.woocommerce.com
サンプルコード 2: 商品カテゴリに基づくメッセージの変更
商品カテゴリが特定のものである場合に、異なるメッセージを表示します。
add_filter('woocommerce_no_products_found', function($message, $query) {
if (is_product_category('特定のカテゴリ')) {
return __('このカテゴリには商品がありません。', 'woocommerce');
}
return $message;
}, 10, 2);
引用元: https://wpastra.com
サンプルコード 3: ユーザーへのリコメンドメッセージの追加
商品が見つからなかった場合に、他の人気商品をおすすめするメッセージを表示します。
add_filter('woocommerce_no_products_found', function($message) {
return $message . '<br>' . __('人気商品をチェックしてみてください!', 'woocommerce');
});
引用元: https://wpmudev.com
サンプルコード 4: 在庫切れ商品のリダイレクト
在庫切れの商品が見つからなかった場合に、特定のページへリダイレクトします。
add_filter('woocommerce_no_products_found', function($message) {
wp_redirect(home_url('/お知らせ'));
exit;
});
引用元: https://kinsta.com
サンプルコード 5: オンラインストアの特別オファーの表示
商品が見つからなかった場合に、特別オファーの情報を表示します。
add_filter('woocommerce_no_products_found', function($message) {
return $message . '<br>' . __('特別オファー中!今すぐ購入して10%オフ!', 'woocommerce');
});
引用元: https://wpbeaverbuilder.com
この関数のアクションでの使用可能性
アクション | 使用例有無 |
---|---|
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 |