概要
woocommerce_get_order_item_classname
フィルタは、WooCommerce の注文アイテムのクラス名をカスタマイズするために使用されます。このフィルタを利用することで、特定の条件に基づいてアイテムのクラス名を変更することができ、カスタムスタイルやスクリプトを適用するための柔軟な方法を提供します。
このフィルタは次のような状況でよく使用されます:
- 注文アイテムに対して特定のCSSスタイルを適用する際。
- 独自のJavaScript機能をアイテムに追加する際。
- 商品のタイプに基づいてアイテムのクラスを変更する際。
- 特定のユーザー条件に基づいて表示するアイテムをカスタマイズする際。
- レポートやトラッキング要件を満たすためにアイテムにタグを追加する際。
- 外部プラグインと連携してアイテムの表示を調整する際。
フィルタの構文は以下の通りです:
apply_filters( 'woocommerce_get_order_item_classname', $classname, $item_id, $item, $order );
パラメータ
$classname
: 注文アイテムの現在のクラス名(文字列)。$item_id
: 注文アイテムのID(整数)。$item
: 現在の注文アイテムのオブジェクト。$order
: 現在の注文オブジェクト。
戻り値
- 変更されたクラス名(文字列)。
使用可能なプラグインおよびワードプレスのバージョン
- 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_get_order_item_classname', 'custom_order_item_classname', 10, 4 );
function custom_order_item_classname( $classname, $item_id, $item, $order ) {
if ( $item->get_product()->is_type( 'subscription' ) ) {
$classname .= ' subscription-item';
}
return $classname;
}
このサンプルコードは、注文アイテムがサブスクリプション商品である場合に、subscription-item
クラス名を追加します。
サンプルコード2
add_filter( 'woocommerce_get_order_item_classname', 'highlight_special_items', 10, 4 );
function highlight_special_items( $classname, $item_id, $item, $order ) {
if ( $item->get_quantity() > 10 ) {
$classname .= ' high-quantity';
}
return $classname;
}
このコードは、数量が10を超えるアイテムに high-quantity
クラスを追加し、特定のスタイルを適用します。
サンプルコード3
add_filter( 'woocommerce_get_order_item_classname', 'mark_digital_items', 10, 4 );
function mark_digital_items( $classname, $item_id, $item, $order ) {
if ( $item->get_product()->is_downloadable() ) {
$classname .= ' downloadable-item';
}
return $classname;
}
このサンプルは、ダウンロード可能な商品に対して downloadable-item
クラスを追加します。
サンプルコード4
add_filter( 'woocommerce_get_order_item_classname', 'add_gift_wrap_class', 10, 4 );
function add_gift_wrap_class( $classname, $item_id, $item, $order ) {
if ( 'yes' === get_post_meta( $item_id, '_gift_wrap', true ) ) {
$classname .= ' gift-wrap';
}
return $classname;
}
このコードは、ギフトラッピングが選択されたアイテムに gift-wrap
クラスを追加します。
サンプルコード5
add_filter( 'woocommerce_get_order_item_classname', 'custom_class_for_type', 10, 4 );
function custom_class_for_type( $classname, $item_id, $item, $order ) {
if ( $item->get_product()->get_type() === 'simple' ) {
$classname .= ' simple-product';
}
return $classname;
}
このサンプルは、シンプルな商品に simple-product
クラスを追加します。