概要
woocommerce_sale_flash
フィルタは、WooCommerce において商品がセール中であることを示すフラッシュメッセージの表示をカスタマイズするために使用されるフックです。このフィルタを利用することで、セールのラベルを変更したり、特定の条件に基づいて異なる内容を表示したりすることが可能です。たとえば、次のようなシーンで活用されることが一般的です:
- セールラベルのテキストをカスタマイズする
- セール商品のラベルのスタイルを変更する
- 特定のカテゴリーに対して異なるラベルを表示する
- セール中の商品の価格表示を変更する
- 特定の条件下でセールフラッシュの表示を非表示にする
- 商品の元価格と割引率を表示する
構文
add_filter( 'woocommerce_sale_flash', 'your_function_name', 10, 3 );
パラメータ
$html
(string): フラッシュメッセージの HTML$post
(object): 商品の post オブジェクト$product
(object): WooCommerce 商品オブジェクト
戻り値
フィルタが適用された後のカスタマイズされた HTML。
使用可能なプラグインバージョン
WooCommerce バージョン 2.1 以上で使用可能。
使用可能な WordPress バージョン
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_sale_flash', 'custom_sale_flash', 10, 3 );
function custom_sale_flash( $html, $post, $product ) {
return '<span class="custom-sale-flash">お得!セール中</span>';
}
このコードは、セール商品に表示されるラベルを「お得!セール中」というテキストに変更します。
サンプル2: セールの背景色を変更
add_filter( 'woocommerce_sale_flash', 'custom_sale_flash_style', 10, 3 );
function custom_sale_flash_style( $html, $post, $product ) {
return '<span class="sale-flash" style="background-color: red; color: white;">SALE</span>';
}
このサンプルでは、セールラベルの背景色を赤色に、文字色を白色に設定しています。
サンプル3: カテゴリー別のセールラベル
add_filter( 'woocommerce_sale_flash', 'category_based_sale_flash', 10, 3 );
function category_based_sale_flash( $html, $post, $product ) {
if ( has_term( '特売品', 'product_cat', $post ) ) {
return '<span class="special-sale">特売中</span>';
}
return $html;
}
このコードは、特定のカテゴリーに属する商品のみ「特売中」というラベルを表示します。
サンプル4: テキストの翻訳
add_filter( 'woocommerce_sale_flash', 'translate_sale_flash', 10, 3 );
function translate_sale_flash( $html, $post, $product ) {
return __( '今だけセール!', 'your-text-domain' );
}
このサンプルは、セールラベルに表示されるテキストを多言語対応にする方法です。
サンプル5: 補足情報の追加
add_filter( 'woocommerce_sale_flash', 'add_discount_info', 10, 3 );
function add_discount_info( $html, $post, $product ) {
$discount = $product->get_regular_price() - $product->get_sale_price();
return $html . '(' . wc_price( $discount ) . ' 割引中)';
}
このコードは、セールラベルに割引額を追加して表示します。