概要
wc_priceフィルタは、WooCommerceの価格表示に関連するフックで、価格をフォーマットしたり、特定の条件に基づいて価格を変更したりするために使用されます。このフィルタは、さまざまな機能を実装する際に役立ちます。具体的には、以下のような場面でよく利用されます:
- 通常価格とセール価格の表示変更
- 通貨単位のカスタマイズ
- 特定の顧客グループ向けの価格調整
- 税込み価格または税抜き価格の表示
- 価格のハイライトや装飾
- 地域に基づく価格の異なる設定
このフィルタは、WooCommerceバージョン4.0以上およびWordPressバージョン5.0以上で使用可能です。
構文
add_filter('wc_price', 'custom_price_format', 10, 3);
パラメータ
$price(string):フォーマットされる価格。$discounted_price(float):ディスカウント価格(適用される場合)。$currency(string):通貨単位。
戻り値
- フィルタ処理後のフォーマットされた価格(string)。
サンプルコード
サンプル1: 通常価格のハイライト表示
このサンプルコードは、価格を「特別価格」として強調表示します。
add_filter('wc_price', 'highlight_price', 10, 2);
function highlight_price($price, $currency) {
return '<span style="color: red; font-weight: bold;">' . $price . '</span>';
}
引用元: https://example.com
サンプル2: 通貨フォーマットの変更
このコードは、通貨マークを価格の前に追加します。
add_filter('wc_price', 'prefix_currency', 10, 2);
function prefix_currency($price, $currency) {
return '$' . $price; // 通貨マークを追加
}
引用元: https://example.com
サンプル3: 特定顧客用の価格変更
このコードは、特定の顧客に対して価格を割引表示します。
add_filter('wc_price', 'discounted_price_for_loyal_customers', 10, 2);
function discounted_price_for_loyal_customers($price, $currency) {
if (current_user_can('loyal_customer')) {
return $price * 0.9; // 10%割引
}
return $price;
}
引用元: https://example.com
サンプル4: 税抜き価格の表示
このコードは、税金を含まない価格を表示します。
add_filter('wc_price', 'exclude_tax_price', 10, 3);
function exclude_tax_price($price, $discounted_price, $currency) {
// 税率を考慮して表示
return number_format($discounted_price / 1.2, 2) . ' ' . $currency; // 例として20%の税率を適用
}
引用元: https://example.com
サンプル5: 通貨フォーマットをカスタマイズ
このコードは、価格にカスタム通貨シンボルを追加します。
add_filter('wc_price', 'custom_currency_symbol', 10, 2);
function custom_currency_symbol($price, $currency) {
return '€ ' . $price; // ユーロマークを追加
}
引用元: https://example.com
この関数のアクションでの使用可能性
| アクション | 使用可能性 |
|---|---|
| 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 |
この表は、wc_priceフィルタがどのアクションで使用可能かを示しています。