概要
woocommerce_mini_cart_item_class フィルタは、WooCommerceのミニカートにおけるアイテムのCSSクラスをカスタマイズする際に使用されるフックです。このフィルタを使用することで、特定の条件に基づいてアイテムのスタイリングを柔軟に変更することができます。主に以下のような機能を実装する際に利用されます。
- アイテムがディスカウントされている場合の特別なクラス付与
- カスタムアイコンやラベルの追加に基づくクラス設定
- アイテムのカテゴリに応じたスタイル変更
- 商品の在庫状況によるビジュアルの変化
- 特定のユーザーグループ向けのスタイリング
- ショッピングカート内の特別なプロモーションアイテムのハイライト
構文
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 フィルタが特定のアクションで使用可能かどうかを示しています。すべてのアクションでは使用例がありません。