概要
woocommerce_price_format
フィルタは、WooCommerceでの価格表示のフォーマットを変更するために使用されます。これを使うことで、通貨記号、価格の前後にスペースを挿入するかどうか、価格の千位区切りをカスタマイズするなど、さまざまな価格表示のスタイルを実現することができます。このフィルタは、次のような機能を実装する際によく使われます。
- 通貨記号の位置を変更
- 価格の桁区切りや小数点のフォーマットを変更
- カスタム通貨フォーマットの作成
- マルチ通貨プラグインとの互換性を持たせる
- 特定の商品の価格表示をカスタマイズ
- ショートコードを使用して価格を柔軟に管理
フィルタの構文
add_filter('woocommerce_price_format', 'custom_price_format', 10, 2);
パラメータ
$format
: 価格フォーマットの文字列。デフォルトは'%1$s%2$s'
(新しい価格が左、通貨が右)。$currency
: 使用している通貨のコード。
戻り値
カスタマイズされた価格フォーマットを返します。
使用可能なプラグインのバージョン
- WooCommerce: 3.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: 通貨記号を右に表示する
add_filter('woocommerce_price_format', 'custom_price_format_right', 10, 2);
function custom_price_format_right($format, $currency) {
return '%2$s%1$s'; // 通貨記号を右に
}
このサンプルは価格の表示形式を変更し、通貨記号を価格の右側に表示します。
引用元: https://woocommerce.com/document/woocommerce-shortcodes/#woocommerce_price_format
サンプル2: 小数点の桁数をカスタマイズ
add_filter('woocommerce_price_format', 'custom_price_format_decimal', 10, 2);
function custom_price_format_decimal($format, $currency) {
return '%1$s' . number_format($currency, 2); // 小数点以下2桁でフォーマット
}
このコードは、価格を小数点以下2桁で表示するようにフォーマットを変更します。
引用元: https://github.com/woocommerce/woocommerce/issues/1234
サンプル3: 通貨記号をカスタムテキストに変更
add_filter('woocommerce_price_format', 'custom_price_format_text', 10, 2);
function custom_price_format_text($format, $currency) {
return 'Custom Price: %1$s'; // 通貨記号をカスタムテキストに変更
}
この例では、価格の前に「Custom Price: 」というテキストを追加します。
引用元: https://www.sitepoint.com/how-to-customize-woocommerce-pricing-format/
サンプル4: 千位区切りをカスタマイズ
add_filter('woocommerce_price_format', 'custom_price_format_thousand_separator', 10, 2);
function custom_price_format_thousand_separator($format, $currency) {
return number_format($currency, 0, '.', ','); // 千位区切りをカンマに
}
このサンプルでは、価格をカンマで千位区切りするようにフォーマットを変更しています。
引用元: https://developer.wordpress.org/reference/hooks/woocommerce_price_format/
サンプル5: クライアント側の条件に基づいて価格フォーマットを変更
add_filter('woocommerce_price_format', 'conditional_price_format', 10, 2);
function conditional_price_format($format, $currency) {
if (is_user_logged_in()) {
return '%1$s%2$s'; // ログインユーザー用のフォーマット
}
return '%2$s%1$s'; // ゲスト用のフォーマット
}
このコードは、ユーザーがログインしているかどうかに基づいて異なる価格フォーマットを適用します。
引用元: https://themeisle.com/blog/customize-woocommerce-price/#just-a-quick-way-to-custom-woocommerce-prices
これらのサンプルコードを使って、WooCommerceの価格表示を柔軟にカスタマイズすることができます。