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

概要

woocommerce_mini_cart_item_class フィルタは、WooCommerceのミニカートにおけるアイテムのCSSクラスをカスタマイズする際に使用されるフックです。このフィルタを使用することで、特定の条件に基づいてアイテムのスタイリングを柔軟に変更することができます。主に以下のような機能を実装する際に利用されます。

  1. アイテムがディスカウントされている場合の特別なクラス付与
  2. カスタムアイコンやラベルの追加に基づくクラス設定
  3. アイテムのカテゴリに応じたスタイル変更
  4. 商品の在庫状況によるビジュアルの変化
  5. 特定のユーザーグループ向けのスタイリング
  6. ショッピングカート内の特別なプロモーションアイテムのハイライト

構文

add_filter( 'woocommerce_mini_cart_item_class', 'custom_mini_cart_item_class', 10, 3 );

パラメータ

  • $classes (string) – 既存のクラス。
  • $cart_item (array) – カートアイテムの情報。
  • $cart_item_key (string) – カートアイテムのキー。

戻り値

  • (string) – 変更されたクラス名。

使用可能なバージョン

  • WooCommerce バージョン:3.0.0以降
  • WordPress バージョン:4.5.0以降

サンプルコード

サンプルコード 1: 割引商品に特別なクラスを追加

add_filter( 'woocommerce_mini_cart_item_class', 'add_discounted_class', 10, 2 );
function add_discounted_class( $classes, $cart_item ) {
    if ( isset( $cart_item['data'] ) && $cart_item['data']->is_on_sale() ) {
        $classes .= ' discounted';
    }
    return $classes;
}

このコードは、カート内の商品が割引中の場合に discounted というクラスを追加します。

サンプルコード 2: カスタムラベルによるクラスの条件設定

add_filter( 'woocommerce_mini_cart_item_class', 'add_custom_label_class', 10, 2 );
function add_custom_label_class( $classes, $cart_item ) {
    if ( get_post_meta( $cart_item['product_id'], 'custom_label', true ) ) {
        $classes .= ' has-custom-label';
    }
    return $classes;
}

このコードは、商品にカスタムラベルが設定されている場合、has-custom-label クラスを追加します。

サンプルコード 3: 在庫なしアイテムに特別なスタイルを適用

add_filter( 'woocommerce_mini_cart_item_class', 'add_out_of_stock_class', 10, 2 );
function add_out_of_stock_class( $classes, $cart_item ) {
    if ( ! $cart_item['data']->is_in_stock() ) {
        $classes .= ' out-of-stock';
    }
    return $classes;
}

このコードは、在庫がない商品に out-of-stock クラスを追加します。

サンプルコード 4: 特定ユーザーに基づいたアイテムのクラス設定

add_filter( 'woocommerce_mini_cart_item_class', 'add_user_based_class', 10, 2 );
function add_user_based_class( $classes, $cart_item ) {
    if ( is_user_logged_in() && current_user_can( 'premium_member' ) ) {
        $classes .= ' premium';
    }
    return $classes;
}

このコードでは、プレミアムメンバーであるユーザーに対して premium クラスを追加します。

サンプルコード 5: 特別プロモーションアイテムのハイライト

add_filter( 'woocommerce_mini_cart_item_class', 'highlight_promo_item', 10, 2 );
function highlight_promo_item( $classes, $cart_item ) {
    if ( isset( $cart_item['data'] ) && $cart_item['data']->get_id() == 123 ) { // 商品ID 123
        $classes .= ' promo-highlight';
    }
    return $classes;
}

このコードでは、IDが123の商品に promo-highlight クラスを追加し、特別なプロモーションアイテムをハイライトします。

この関数のアクションでの使用可能性

アクション 使用例
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

この表は、woocommerce_mini_cart_item_class フィルタが特定のアクションで使用可能かどうかを示しています。すべてのアクションでは使用例がありません。

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


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