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

概要

woocommerce_variation_prices_sale_price フィルタは、WooCommerceの製品のバリエーションのセール価格を操作するための機能です。このフィルタは、製品バリエーションのセール価格を変更したり、表示方式をカスタマイズする際によく使用されます。特に以下の機能を実装する際に役立ちます。

  1. 特定の条件に基づいてセール価格を変更する。
  2. 統一的なセール価格形式を適用する。
  3. バリエーションごとに異なるセール価格を設定する。
  4. 特定のユーザーグループ向けにセール価格を提供する。
  5. 税込み/税抜きセール価格の表示を変更する。
  6. セール価格がない場合の代替価格の表示を設定する。

構文

add_filter('woocommerce_variation_prices_sale_price', 'my_custom_variation_sale_price', 10, 3);

パラメータ

  • float $price:現在のセール価格
  • float $regular_price:通常価格
  • WC_Product_Variation $variation:バリエーションのオブジェクト

戻り値

  • フィルタリングされたセール価格(float)

使用可能なプラグインWooCommerceのバージョン

  • WooCommerce 2.4以降

使用可能なワードプレスのバージョン

  • 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: セール価格を20%引きに変更

このコードは、バリエーションのセール価格を20%引きに変更します。

add_filter('woocommerce_variation_prices_sale_price', 'custom_discounted_sale_price', 10, 3);
function custom_discounted_sale_price($price, $regular_price, $variation) {
    return $price * 0.80; // セール価格を20%引き
}

サンプル2: 特定のバリエーションのセール価格をカスタマイズ

このコードでは、特定のバリエーションに対して固定価格を設定します。

add_filter('woocommerce_variation_prices_sale_price', 'custom_fixed_sale_price', 10, 3);
function custom_fixed_sale_price($price, $regular_price, $variation) {
    if ($variation->get_id() === 123) { // バリエーションIDが123の場合
        return 19.99; // 固定のセール価格
    }
    return $price;
}

サンプル3: セール価格がない場合の代替価格

このコードは、セール価格が設定されていない場合に通常価格を表示します。

add_filter('woocommerce_variation_prices_sale_price', 'replace_sale_price_with_regular', 10, 3);
function replace_sale_price_with_regular($price, $regular_price, $variation) {
    if ($price == 0) {
        return $regular_price; // セール価格がない場合、通常価格を返す
    }
    return $price;
}

サンプル4: 商品がセール中のバリエーションのみ価格を表示

このコードは、セール中のバリエーションのみ価格を表示します。

add_filter('woocommerce_variation_prices_sale_price', 'show_sale_price_only_on_sale', 10, 3);
function show_sale_price_only_on_sale($price, $regular_price, $variation) {
    if (!$variation->is_on_sale()) {
        return ''; // セール中でない場合、価格を空にする
    }
    return $price;
}

サンプル5: セール価格をカスタムフォーマットで表示

このコードでは、セール価格をカスタムフォーマットで表示します。

add_filter('woocommerce_variation_prices_sale_price', 'custom_format_sale_price', 10, 3);
function custom_format_sale_price($price, $regular_price, $variation) {
    return 'SALE: ' . wc_price($price); // カスタムフォーマットで価格を戻す
}

これらのサンプルコードは、WooCommerceの woocommerce_variation_prices_sale_price フィルタを利用して、セール価格を動的にカスタマイズする方法を示しています。各コードは異なるユースケースに対応しており、実際のニーズに応じて調整が可能です。

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


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