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

概要

woocommerce_sale_flash フィルタは、WooCommerce において商品がセール中であることを示すフラッシュメッセージの表示をカスタマイズするために使用されるフックです。このフィルタを利用することで、セールのラベルを変更したり、特定の条件に基づいて異なる内容を表示したりすることが可能です。たとえば、次のようなシーンで活用されることが一般的です:

  1. セールラベルのテキストをカスタマイズする
  2. セール商品のラベルのスタイルを変更する
  3. 特定のカテゴリーに対して異なるラベルを表示する
  4. セール中の商品の価格表示を変更する
  5. 特定の条件下でセールフラッシュの表示を非表示にする
  6. 商品の元価格と割引率を表示する

構文

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 ) . ' 割引中)';
}

このコードは、セールラベルに割引額を追加して表示します。

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


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