概要
formatted_woocommerce_price
フィルタは、WooCommerceで価格をフォーマットする際にカスタマイズを行うために使用されるフックです。このフィルタを利用することにより、デフォルトの価格表記を変更したり、特定の条件に基づいて価格表示をカスタマイズすることが可能です。
このフィルタは以下のような機能を実装する際によく使われます:
- 価格に特定のプレフィックスやサフィックスを追加する
- 特定の通貨記号を変更する
- 消費税を含んだ価格表示をカスタマイズする
- プロモーションや割引を反映した価格表示を行う
- 特定のユーザー条件に応じた異なる価格フォーマットを適用する
- 価格を特定のフォーマットに変換(例えば、数値の小数点以下を制限する等)する
構文
add_filter('formatted_woocommerce_price', 'your_custom_function', 10, 3);
パラメータ
$formatted_price
: フォーマットされた価格の文字列$price
: 元の価格$args
: 価格フォーマットに用いる追加の引数配列
戻り値
- カスタマイズされた価格の文字列
バージョン情報
- WooCommerce: 2.1.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('formatted_woocommerce_price', 'change_currency_symbol', 10, 3);
function change_currency_symbol($formatted_price, $price, $args) {
return str_replace('¥', '₿', $formatted_price); // 円からビットコインに変更
}
このコードは、WooCommerceの価格に表示される通貨記号を円(¥)からビットコイン(₿)に変更します。
引用元: https://www.example1.com
サンプルコード2: 割引価格の表示
add_filter('formatted_woocommerce_price', 'show_discount_price', 10, 3);
function show_discount_price($formatted_price, $price, $args) {
if ($args['discount']) {
$discount_price = $price - ($price * $args['discount'] / 100);
return '割引後: ' . wc_price($discount_price);
}
return $formatted_price;
}
このコードは、割引が適用されている場合に割引後の価格を表示します。
引用元: https://www.example2.com
サンプルコード3: 特定条件でのフォーマット変更
add_filter('formatted_woocommerce_price', 'conditional_price_format', 10, 3);
function conditional_price_format($formatted_price, $price, $args) {
if (is_user_logged_in()) {
return $formatted_price . ' (ログインユーザー価格)';
}
return $formatted_price;
}
このコードは、ログインユーザーに対して特別なメッセージを価格に追加します。
引用元: https://www.example3.com
サンプルコード4: 小数点以下の制限
add_filter('formatted_woocommerce_price', 'limit_decimal_points', 10, 3);
function limit_decimal_points($formatted_price, $price, $args) {
return number_format($price, 0) . ' ' . get_woocommerce_currency_symbol();
}
このコードは、価格の小数点以下の桁数を制限して整数値として表示します。
引用元: https://www.example4.com
サンプルコード5: プレフィックスの追加
add_filter('formatted_woocommerce_price', 'add_price_prefix', 10, 3);
function add_price_prefix($formatted_price, $price, $args) {
return '特別価格: ' . $formatted_price;
}
このコードは、価格の前に「特別価格: 」というプレフィックスを追加します。
引用元: https://www.example5.com