概要
woocommerce_grouped_price_html
フィルタは、WooCommerceのグループ化商品(Grouped Products)の価格情報をカスタマイズする際に使用されるフックです。このフィルタを使用することで、価格表示のフォーマットやコンテンツを変更し、特定のビジネス要件に適した価格表示を行うことが可能です。以下はこのフィルタを使う際に利用される一般的な機能です。
- 価格の前に特定のテキストを追加
- 通常価格とセール価格のスタイルを変更
- 商品ごとの価格情報の整理
- 特定の条件に基づいて価格を動的に変更
- ユーザーのロールに基づく価格のカスタマイズ
- 価格表示に於ける通貨フォーマットの変更
このフィルタは、WooCommerceバージョンによっては異なるが、通常はバージョン3.0以降で使用でき、WordPressのバージョン5.0以降でも動作します。
構文
add_filter('woocommerce_grouped_price_html', 'custom_grouped_price_html', 10, 2);
パラメータ
$price_html
: 価格のHTMLを格納する文字列。$product
: 価格情報を持つWooCommerceの製品オブジェクト。
戻り値
- フィルタされた価格のHTMLを返します。
この関数のアクションでの使用可能性
アクション | 使用可能性 |
---|---|
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: 価格の前にテキストを追加
このサンプルでは、グループ化商品の価格の前に「Starting at: 」というテキストを追加します。
add_filter('woocommerce_grouped_price_html', function($price_html, $product) {
return 'Starting at: ' . $price_html;
}, 10, 2);
(参考: WooCommerce Docs)
サンプル2: 価格のフォーマットをカスタマイズ
このサンプルでは、価格をカンマ区切りで表示するようにフォーマットします。
add_filter('woocommerce_grouped_price_html', function($price_html, $product) {
return str_replace(',', '.', $price_html);
}, 10, 2);
(参考: Stack Overflow)
サンプル3: 特定の条件に基づく価格の変更
ユーザーが特定のロール(たとえば、特定のメンバーシップ)を持っている場合にのみ、別の価格を表示します。
add_filter('woocommerce_grouped_price_html', function($price_html, $product) {
if (current_user_can('premium_member')) {
return 'Special price for you: ' . $price_html;
}
return $price_html;
}, 10, 2);
(参考: WPMU DEV)
サンプル4: 通貨フォーマットを変更
次のサンプルでは、通貨記号を変更し、価格を円形式で表示します。
add_filter('woocommerce_grouped_price_html', function($price_html, $product) {
return '¥' . $price_html;
}, 10, 2);
(参考: ThemeForest)
サンプル5: グループ化商品に対する特別なディスカウントメッセージを表示
このサンプルでは、価格に特別セールの情報を追加します。
add_filter('woocommerce_grouped_price_html', function($price_html, $product) {
return $price_html . ' <span class="sale-label">Limited Time Offer!</span>';
}, 10, 2);
(参考: CodePen)