概要
woocommerce_get_variation_sale_price
フィルタは、WooCommerce の商品バリエーションのセール価格を取得・変更する際に使用されます。このフィルタは、特に以下のような機能を実装する際によく利用されます。
- バリエーションのセール価格をカスタマイズする
- 特定の顧客グループ向けの割引価格を動的に設定する
- プロモーションやセールスイベント時の価格調整
- 値引き率に基づく価格表示の変更
- 自動化された価格更新機能の追加
- 商品パッケージやボリュームディスカウントの設定
構文
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でのバリエーションセール価格のカスタマイズの実装方法をデモンストレーションしています。