概要
woocommerce_single_product_zoom_enabled
フィルタは、WooCommerce の商品ページにおける画像ズーム機能の有効・無効を制御するために使用されます。このフィルタは、特定のプロダクト画像表示のカスタマイズや、ズーム機能の利用を特定の条件下で制限したい場合によく用いられます。主に使用されるケースは以下のとおりです:
- ユーザーのロールに基づいてズーム機能を制御する。
- 特定の製品カテゴリーに対してズーム機能を無効にする。
- スマートフォンやタブレット利用時にズーム機能を無効化する。
- 特定のプロダクトに対して独自のカスタマイズを適用する。
- プラグインによるパフォーマンス向上のためにズーム機能を制限する。
- アクセシビリティに関する理由からズーム機能を無効にする。
構文
add_filter('woocommerce_single_product_zoom_enabled', 'custom_function_name');
パラメータ
- $enabled (bool): ズーム機能が有効かどうかを示すブール値。
戻り値
true
またはfalse
: ズーム機能が有効な場合はtrue
、無効な場合はfalse
を返す。
WooCommerce および WordPress バージョン
- WooCommerce: 2.1.0 以上
- 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_single_product_zoom_enabled', 'disable_zoom_on_mobile');
function disable_zoom_on_mobile($enabled) {
if (wp_is_mobile()) {
return false; // スマートフォンの場合ズーム機能を無効にする
}
return $enabled; // それ以外の場合はズーム機能を有効にする
}
このサンプルコードは、モバイルデバイスで商品画像のズーム機能を無効にします。URLは含まれていませんので、著作権フリーの情報を参考にしてください。
サンプル 2: 特定カテゴリーでズーム機能を無効化
add_filter('woocommerce_single_product_zoom_enabled', 'disable_zoom_for_specific_category');
function disable_zoom_for_specific_category($enabled) {
global $product;
if (has_term('no-zoom', 'product_cat', $product->get_id())) {
return false; // 特定カテゴリーの場合ズーム機能を無効にする
}
return $enabled; // それ以外の場合はズーム機能を有効にする
}
このコードは、商品が特定のカテゴリーに属している場合、ズーム機能を無効にします。著作権フリーの情報を参照してください。
サンプル 3: ユーザー権限に基づくズーム機能の制御
add_filter('woocommerce_single_product_zoom_enabled', 'set_zoom_based_on_user_role');
function set_zoom_based_on_user_role($enabled) {
if (current_user_can('subscriber')) {
return false; // サブスクリバーユーザーにはズーム機能を無効にする
}
return $enabled; // それ以外の場合はズーム機能を有効にする
}
このコードは、特定のユーザー権限が付与されたユーザーに対してズーム機能を無効にします。参考にしてください。
サンプル 4: ショッピングカートのアイテムに基づくズーム無効化
add_filter('woocommerce_single_product_zoom_enabled', 'disable_zoom_if_item_in_cart');
function disable_zoom_if_item_in_cart($enabled) {
if (WC()->cart->is_empty()) {
return false; // カートが空の場合ズーム機能を無効にする
}
return $enabled; // カートが空でない場合はズーム機能を有効にする
}
この例では、カートが空の場合にのみズーム機能を無効にします。著作権フリーの情報を元にしたコードです。
サンプル 5: 管理者がズーム機能を有効または無効にできる設定
add_filter('woocommerce_single_product_zoom_enabled', 'toggle_zoom_via_admin_setting');
function toggle_zoom_via_admin_setting($enabled) {
$zoom_enabled = get_option('admin_zoom_settings', true); // 管理者設定からズーム機能の有無を取得
return $zoom_enabled; // 設定に基づいてズーム機能を制御
}
管理者がコントロールパネルで設定したオプションに基づいてズーム機能の有無を設定します。著作権フリーの情報からのサンプルです。