概要
woocommerce_variation_prices
フィルタは、WooCommerceの変数商品の価格情報をフィルタリングするために使用されます。このフィルタは、商品のバリエーションに関連する価格設定をカスタマイズする際に非常に便利です。具体的には、以下のような機能を実装する際によく利用されます。
- 変数商品の価格を動的に変更する。
- 特定の条件に基づいて価格を割引する。
- 特定のユーザーグループに対して異なる価格を表示する。
- 通常価格とセール価格を変更する。
- 販売数量に応じたプライスブレイクポイントを設定する。
- 外部APIからの価格情報を統合する。
構文
add_filter('woocommerce_variation_prices', 'function_name', 10, 3);
パラメータ
$price
: 変更される価格情報の配列。$product
: 商品オブジェクト。$variation
: 変数商品のバリエーションオブジェクト。
戻り値
変更された価格情報の配列。
使用可能なプラグインWooCommerceのバージョン
WooCommerce で利用可能。
ワードプレスのバージョン
WordPress で利用可能。
この関数のアクションでの使用可能性
アクション | 使用可能性 |
---|---|
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_variation_prices', 'apply_discount_to_variations', 10, 3);
function apply_discount_to_variations($prices, $product, $variation) {
$discount = 10; // 割引額
foreach ($prices as $key => $price) {
$prices[$key] = $price - $discount; // 割引を適用
}
return $prices;
}
このサンプルコードは、すべての変数商品に10の割引を適用します。
引用元: https://example.com/sample1
サンプルコード2: 管理者用特別価格
add_filter('woocommerce_variation_prices', 'set_special_price_for_admin', 10, 3);
function set_special_price_for_admin($prices, $product, $variation) {
if (current_user_can('administrator')) {
foreach ($prices as $key => $price) {
$prices[$key] = $price * 0.9; // 10%割引
}
}
return $prices;
}
このサンプルコードは、管理者ユーザーに対して変数商品の価格を10%割引します。
引用元: https://example.com/sample2
サンプルコード3: APIからの価格設定
add_filter('woocommerce_variation_prices', 'set_price_from_api', 10, 3);
function set_price_from_api($prices, $product, $variation) {
$api_price = get_price_from_external_api($variation->get_id()); // 外部APIから価格を取得
$prices['price'] = $api_price; // 外部APIの価格を適用
return $prices;
}
function get_price_from_external_api($variation_id) {
// API呼び出しのコード
return 50; // 仮の価格
}
このサンプルコードは、外部APIから取得した価格で変数商品の価格を設定します。
引用元: https://example.com/sample3
サンプルコード4: バリエーションごとの価格変更
add_filter('woocommerce_variation_prices', 'modify_prices_by_variation', 10, 3);
function modify_prices_by_variation($prices, $product, $variation) {
if ($variation->get_attribute('color') == 'red') {
$prices['price'] += 5; // 赤色のバリエーションの価格を5上げる
}
return $prices;
}
このサンプルコードは、特定の属性(色)が赤のバリエーションの価格を5上げます。
引用元: https://example.com/sample4
サンプルコード5: 購入数に応じた割引
add_filter('woocommerce_variation_prices', 'bulk_discount_for_variations', 10, 3);
function bulk_discount_for_variations($prices, $product, $variation) {
$cart_quantity = WC()->cart->get_cart_item_quantity(); // カート内の数量を取得
if ($cart_quantity > 5) {
foreach ($prices as $key => $price) {
$prices[$key] = $price * 0.85; // 15%割引
}
}
return $prices;
}
このサンプルコードは、カートの数量が5を超えた場合、変数商品の価格を15%割引します。
引用元: https://example.com/sample5