概要
woocommerce_show_variation_price
フィルタは、WooCommerceで変数商品の価格表示をカスタマイズするためのフックです。このフィルタを使用することで、様々な条件に基づいて商品の価格情報を動的に変更したり、特定の条件下で表示・非表示を制御することが可能です。以下は、このフィルタがよく使われる機能の例です。
- 特定の条件下での価格表示の変更
- 商品バリエーションごとの価格のカスタマイズ
- セール価格のカスタム表示
- 利用可能なバリエーションのフィルタリング
- 特定のユーザーグループ向けの特別価格表示
- 合計価格の計算ロジックの変更
構文
add_filter('woocommerce_show_variation_price', 'custom_variation_price_display', 10, 3);
パラメータ
- $price (string): 現在の価格表現の文字列
- $product (WC_Product): 現在の製品オブジェクト
- $variation (WC_Product_Variation): 現在のバリエーションオブジェクト
戻り値
- (string): フィルタされた価格表示の文字列
使用可能なプラグインバージョン
- WooCommerceバージョン: 3.0以上
- WordPressバージョン: 4.0以上
サンプルコード
サンプルコード 1: 変数商品の価格をカスタムラベルに変更する
add_filter('woocommerce_show_variation_price', 'change_variation_price_label', 10, 3);
function change_variation_price_label($price, $product, $variation) {
return 'カスタム価格: ' . $price;
}
このコードは、変数商品の価格を「カスタム価格: 」というラベルを付けて表示します。
サンプルコード 2: メンバーシップ特典として価格を変更する
add_filter('woocommerce_show_variation_price', 'membership_discount_variation_price', 10, 3);
function membership_discount_variation_price($price, $product, $variation) {
if (is_user_member()) { // ユーザーがメンバーであるかどうかを確認
$discounted_price = $variation->get_regular_price() * 0.9; // 10%引き
return '会員価格: ' . wc_price($discounted_price);
}
return $price;
}
このコードは、特定の条件でメンバーシップの価格を割引表示します。
サンプルコード 3: セール中の価格を強調表示する
add_filter('woocommerce_show_variation_price', 'highlight_sale_price', 10, 3);
function highlight_sale_price($price, $product, $variation) {
if ($variation->is_on_sale()) {
return '<span style="color:red; font-weight:bold;">' . $price . '</span>'; // 赤色で強調
}
return $price;
}
このコードは、セール商品の価格を赤色で表示します。
サンプルコード 4: 特定のバリエーション情報を表示する
add_filter('woocommerce_show_variation_price', 'custom_variation_display', 10, 3);
function custom_variation_display($price, $product, $variation) {
if ($variation->get_attribute('color') === 'red') {
return '赤い商品: ' . $price;
}
return $price;
}
このコードは、色の属性が「赤」のバリエーションに特別なラベルを付けて価格を表示します。
サンプルコード 5: 価格のフォーマットを変更する
add_filter('woocommerce_show_variation_price', 'custom_price_format', 10, 3);
function custom_price_format($price, $product, $variation) {
return '価格: ¥' . number_format(floatval(preg_replace('/[^d.]/', '', $price)));
}
このコードは、価格を日本円形式で表示します。
この関数のアクションでの使用可能性
アクション | 使用可能性 |
---|---|
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 |
この表は、woocommerce_show_variation_price
フィルタを利用できるアクションの一覧を示しています。各アクションにおける使用可能性があるかどうかを示しています。