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

概要

woocommerce_get_variation_sale_price フィルタは、WooCommerce の商品バリエーションのセール価格を取得・変更する際に使用されます。このフィルタは、特に以下のような機能を実装する際によく利用されます。

  1. バリエーションのセール価格をカスタマイズする
  2. 特定の顧客グループ向けの割引価格を動的に設定する
  3. プロモーションやセールスイベント時の価格調整
  4. 値引き率に基づく価格表示の変更
  5. 自動化された価格更新機能の追加
  6. 商品パッケージやボリュームディスカウントの設定

構文

add_filter('woocommerce_get_variation_sale_price', 'custom_variation_sale_price', 10, 4);

パラメータ

  • $price: 現在のセール価格
  • $product: 商品オブジェクト
  • $variation: バリエーション商品オブジェクト
  • $quantity: 商品の数量

戻り値

このフィルタは、修正されたセール価格を返します。

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

  • 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_variation_sale_price', 'set_custom_variation_sale_price', 10, 4);
function set_custom_variation_sale_price($price, $product, $variation, $quantity) {
    if ($variation->get_attribute('color') == 'red') {
        return $price - 5; // 赤い色のバリエーションには$5の割引
    }
    return $price;
}

このサンプルは、色が「赤」のバリエーションに対して5ドルの割引を適用するものです。

サンプルコード2

add_filter('woocommerce_get_variation_sale_price', 'apply_discount_for_members', 10, 4);
function apply_discount_for_members($price, $product, $variation, $quantity) {
    if (is_user_logged_in() && current_user_can('member')) {
        return $price * 0.9; // メンバーに対して10%割引
    }
    return $price;
}

このサンプルは、ログインしているメンバーに対して10%の割引を提供するものです。

サンプルコード3

add_filter('woocommerce_get_variation_sale_price', 'limit_discount_time', 10, 4);
function limit_discount_time($price, $product, $variation, $quantity) {
    $current_time = current_time('timestamp');
    $start_time = strtotime('2023-12-01');
    $end_time = strtotime('2023-12-31');

    if ($current_time >= $start_time && $current_time <= $end_time) {
        return $price - 10; // 12月に10ドルの割引
    }
    return $price;
}

このサンプルは、12月に購入されたバリエーションに対して10ドルの割引を提供します。

サンプルコード4

add_filter('woocommerce_get_variation_sale_price', 'dynamic_price_based_on_quantity', 10, 4);
function dynamic_price_based_on_quantity($price, $product, $variation, $quantity) {
    if ($quantity > 5) {
        return $price - 15; // 5個以上の購入で15ドルの割引
    }
    return $price;
}

このサンプルは、5個以上の購入に対して15ドルの割引を適用します。

サンプルコード5

add_filter('woocommerce_get_variation_sale_price', 'convert_currency_for_vip', 10, 4);
function convert_currency_for_vip($price, $product, $variation, $quantity) {
    if (is_user_logged_in() && in_array('vip', (array) wp_get_current_user()->roles)) {
        return $price * 0.85; // VIP に対して 15% 割引
    }
    return $price;
}

このサンプルは、VIPユーザーに対して15%の割引を適用するものです。

これらのサンプルコードはすべて、WooCommerceでのバリエーションセール価格のカスタマイズの実装方法をデモンストレーションしています。

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


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