概要
woocommerce_widget_cart_item_visible
フィルタは、WooCommerceのウィジェットにおけるカートアイテムの表示制御に使用されます。このフィルタを用いることで、特定の条件に基づいてカート内アイテムの表示・非表示を制御することができます。例えば、特定のユーザー役割に基づく非表示、特定の商品カテゴリやタグのアイテムを表示しない設定などが可能です。
このフィルタを使用する場面としては、以下のような機能が挙げられます。
- 特定のユーザーグループに対してカートアイテムを非表示にする。
- 特定の商品がカートに入っている場合に、他の商品を非表示にする。
- リミテッドエディションの商品を含むカート商品の表示制御。
- プロモーション中の割引商品を優先的に表示する。
- 在庫切れの商品をカート内で非表示にする。
- カスタマイズされた商品タイプやオプションを持った商品の表示制御。
フィルタの概要
- 構文:
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;
}
このサンプルコードは、割引きが適用されていない商品をカートから非表示にします。