プラグインWooCommerceのwoocommerce_widget_cart_item_visibleフィルタの使用方法・解説

概要

woocommerce_widget_cart_item_visibleフィルタは、WooCommerceのウィジェットにおけるカートアイテムの表示制御に使用されます。このフィルタを用いることで、特定の条件に基づいてカート内アイテムの表示・非表示を制御することができます。例えば、特定のユーザー役割に基づく非表示、特定の商品カテゴリやタグのアイテムを表示しない設定などが可能です。

このフィルタを使用する場面としては、以下のような機能が挙げられます。

  1. 特定のユーザーグループに対してカートアイテムを非表示にする。
  2. 特定の商品がカートに入っている場合に、他の商品を非表示にする。
  3. リミテッドエディションの商品を含むカート商品の表示制御。
  4. プロモーション中の割引商品を優先的に表示する。
  5. 在庫切れの商品をカート内で非表示にする。
  6. カスタマイズされた商品タイプやオプションを持った商品の表示制御。

フィルタの概要

  • 構文: apply_filters( 'woocommerce_widget_cart_item_visible', $visible, $cart_item, $cart_item_key );
  • パラメータ:
    • $visible (bool): アイテムが表示されるかどうかのフラグ。
    • $cart_item (array): カートアイテムの情報。
    • $cart_item_key (string): カートアイテムの一意のキー。
  • 戻り値: Boolean型(trueまたはfalse)、アイテムが表示されるかどうか。
  • 使用可能なプラグイン: WooCommerce
  • WooCommerce バージョン: 3.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_widget_cart_item_visible', 'hide_special_product_in_cart', 10, 3 );
function hide_special_product_in_cart( $visible, $cart_item, $cart_item_key ) {
    if ( isset( $cart_item['product_id'] ) && $cart_item['product_id'] == 123 ) { // 123は特定の商品のID
        return false; // 特定の商品を非表示にする
    }
    return $visible;
}

このサンプルコードは、特定の商品ID(123)のアイテムをカートから非表示にします。

サンプルコード 2

add_filter( 'woocommerce_widget_cart_item_visible', 'hide_items_for_gift_users', 10, 3 );
function hide_items_for_gift_users( $visible, $cart_item, $cart_item_key ) {
    if ( current_user_can( 'gift_user' ) ) { // 'gift_user'は特定の役割
        return false; // ギフトユーザーには全アイテムを非表示に
    }
    return $visible;
}

このサンプルコードは、特定のユーザー役割をもつユーザーに対して、カートアイテムを全て非表示にします。

サンプルコード 3

add_filter( 'woocommerce_widget_cart_item_visible', 'customize_cart_display', 10, 3 );
function customize_cart_display( $visible, $cart_item, $cart_item_key ) {
    if ( $cart_item['quantity'] > 5 ) {
        return false; // 数量が5以上の場合、アイテムを非表示に
    }
    return $visible;
}

このサンプルコードは、カート内にある商品の数量が5以上の場合、その商品を非表示にします。

サンプルコード 4

add_filter( 'woocommerce_widget_cart_item_visible', 'hide_out_of_stock_items', 10, 3 );
function hide_out_of_stock_items( $visible, $cart_item, $cart_item_key ) {
    if ( ! $cart_item['data']->is_in_stock() ) {
        return false; // 在庫がない商品を非表示に
    }
    return $visible;
}

このサンプルコードは、在庫がない商品をカートから非表示にします。

サンプルコード 5

add_filter( 'woocommerce_widget_cart_item_visible', 'display_discounted_items_only', 10, 3 );
function display_discounted_items_only( $visible, $cart_item, $cart_item_key ) {
    if ( ! $cart_item['data']->is_on_sale() ) {
        return false; // 割引されていない商品を非表示に
    }
    return $visible;
}

このサンプルコードは、割引きが適用されていない商品をカートから非表示にします。

この関数について質問する


上の計算式の答えを入力してください