概要
woocommerce_get_price_html_from_text
フィルタは、WooCommerce において、商品価格のHTMLを生成する際にカスタマイズを行うために使用されます。このフックを使用することで、商品価格の表示方法を柔軟に変更することができます。具体的には、価格の書式や追加情報を表示する際によく使用されます。このフィルタは以下のような機能を実装する際に役立ちます:
- 特定の条件に基づいて価格を条件付きで変更する。
- 割引価格やセール価格とその前の価格を表示する。
- 通貨形式をカスタマイズする。
- 顧客のロケーションに基づいて異なる価格を表示する。
- 商品に関連する追加情報を価格条件付きでスタイルを変更する。
- ショップのテーマに合わせて価格表示のデザインを調整する。
構文
add_filter('woocommerce_get_price_html_from_text', 'your_function_name', 10, 2);
パラメータ
$price_html
(string) – 価格のHTML。$product
(WC_Product) – 対象の商品オブジェクト。
戻り値
- (string) – 変更後の価格のHTML。
WooCommerce のバージョン
このフィルタは、WooCommerce 3.0.0以降で利用可能です。
WordPress のバージョン
このフィルタは、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_get_price_html_from_text', 'add_special_price_label', 10, 2);
function add_special_price_label($price_html, $product) {
return $price_html . '<span class="special-price"> - 特別価格!</span>';
}
このコードは、商品価格の後ろに「特別価格」というラベルを追加します。
サンプル 2: 価格を特定の条件に基づいて変更
add_filter('woocommerce_get_price_html_from_text', 'modify_price_based_on_stock', 10, 2);
function modify_price_based_on_stock($price_html, $product) {
if ($product->get_stock_quantity() < 5) {
return '<span class="low-stock">残りわずか!</span>' . $price_html;
}
return $price_html;
}
在庫が5以下の場合に「残りわずか!」というメッセージを価格の前に追加します。
サンプル 3: 通貨シンボルをカスタマイズ
add_filter('woocommerce_get_price_html_from_text', 'customize_currency_symbol', 10, 2);
function customize_currency_symbol($price_html, $product) {
return str_replace('$', '¥', $price_html);
}
このコードは、価格に表示されるドル記号を日本円の記号に変更します。
サンプル 4: セール価格のスタイルを変更
add_filter('woocommerce_get_price_html_from_text', 'style_sale_price', 10, 2);
function style_sale_price($price_html, $product) {
if ($product->is_on_sale()) {
return '<span class="sale-price" style="color:red;">' . $price_html . '</span>';
}
return $price_html;
}
この例では、セール中の価格を赤色で表示します。
サンプル 5: 複数通貨サポートを実装
add_filter('woocommerce_get_price_html_from_text', 'multi_currency_price_display', 10, 2);
function multi_currency_price_display($price_html, $product) {
$currency = get_option('currency_option'); // オプションから設定を取得
if ($currency == 'USD') {
return $price_html . ' USD';
}
return $price_html . ' JPY';
}
このコードは、選択された通貨に応じて価格の後に通貨単位を追加します。