概要
woocommerce_variation_prices_regular_price
フィルタは、WooCommerceの商品バリエーションの通常価格を変更するために使用されます。このフィルタは、バリエーションの価格を動的に調整したり、特定の条件に基づいて価格を変更する場合に役立ちます。以下のような機能において特によく利用されます。
- セール価格や割引を適用する
- 特定のユーザーやロールに基づいて価格を変更する
- 地理的なロケーションによる価格調整
- キャンペーンやプロモーションに基づく価格変更
- 商品の在庫状況に応じた価格調整
- 外部APIから取得した価格データを反映させる
フィルタの構文
add_filter('woocommerce_variation_prices_regular_price', 'custom_function_name', 10, 2);
パラメータ
$price
– 現在のバリエーションの通常価格。$product
– WooCommerceの製品オブジェクト。
戻り値
- 修正された通常価格。
使用可能プラグインのバージョン
- WooCommerce: 2.0.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: 割引を適用する
このコードは、商品のバリエーションの通常価格に20%の割引を適用します。
add_filter('woocommerce_variation_prices_regular_price', function($price, $product) {
return $price * 0.8; // 20% 割引
}, 10, 2);
引用元: 特になし
サンプルコード2: ユーザーに基づく価格変更
このコードでは、特定のユーザーがログインしている場合に、通常価格を増加させます。
add_filter('woocommerce_variation_prices_regular_price', function($price, $product) {
if (is_user_logged_in()) {
return $price + 5; // 認証されたユーザーに対して5ドル追加
}
return $price;
}, 10, 2);
引用元: 特になし
サンプルコード3: 地理的なロケーションによる価格調整
このコードは、ユーザーの国に基づいて価格を調整します。
add_filter('woocommerce_variation_prices_regular_price', function($price, $product) {
$country = WC()->customer->get_shipping_country();
if ($country === 'JP') {
return $price * 1.1; // 日本向けに10%増加
}
return $price;
}, 10, 2);
引用元: 特になし
サンプルコード4: ストック状況に基づいた価格調整
このコードは、在庫が少ない場合に価格を上げます。
add_filter('woocommerce_variation_prices_regular_price', function($price, $product) {
if ($product->get_stock_quantity() < 5) {
return $price + 10; // 在庫が少ない場合は10ドル追加
}
return $price;
}, 10, 2);
引用元: 特になし
サンプルコード5: APIからの価格取得
このコードは、外部APIから取得した価格データを使用して通常価格を変更します。
add_filter('woocommerce_variation_prices_regular_price', function($price, $product) {
$response = wp_remote_get('https://api.example.com/get-price');
if (!is_wp_error($response) && isset($response['body'])) {
$data = json_decode($response['body'], true);
return $data['price']; // APIから取得された価格
}
return $price;
}, 10, 2);
引用元: 特になし