概要
フィルタ woocommerce_order_discount_to_display
は、WooCommerce における注文の割引金額を表示する際に、表示内容を調整するために使用されます。このフィルタを使用することで、割引金額のフォーマットを変更したり、特定の条件に応じて異なる値を返したりすることが可能です。具体的には以下のような機能を実装する際に役立ちます。
- 割引金額をカスタムフォーマットで表示
- 特定の条件に基づいた割引金額のカスタマイズ
- 割引金額の単位を変更(例:日本円、アメリカドルなど)
- 割引金額のプレフィックスやサフィックス追加
- ローカリゼーションの対応(言語や文化に合わせた表示)
- 割引が適用される条件を追加
構文
add_filter( 'woocommerce_order_discount_to_display', 'your_function_name', 10, 2 );
パラメータ
$discount
: 現在の割引金額$order
: 現在の注文オブジェクト
戻り値
フィルタを通過した後の割引金額
使用可能な WooCommerce および WordPress のバージョン
- WooCommerce: 3.0.0以上
- WordPress: 4.0.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_order_discount_to_display', 'add_discount_prefix', 10, 2);
function add_discount_prefix($discount, $order) {
return '割引: ' . $discount;
}
このコードは、表示される割引金額の前に「割引: 」というテキストを追加します。
サンプルコード 2: 割引金額をカスタムフォーマットで表示
add_filter('woocommerce_order_discount_to_display', 'custom_discount_format', 10, 2);
function custom_discount_format($discount, $order) {
return number_format($discount, 2) . '円';
}
この例では、割引金額を小数点以下2桁でフォーマットし、円を付けて表示します。
サンプルコード 3: 特定の条件に基づいた割引金額の変更
add_filter('woocommerce_order_discount_to_display', 'conditional_discount', 10, 2);
function conditional_discount($discount, $order) {
if ($order->get_total() > 10000) {
return $discount * 0.9; // 10%の割引
}
return $discount;
}
このコードは、注文の合計金額が10,000円を超える場合、割引をさらに10%増やします。
サンプルコード 4: 多言語対応
add_filter('woocommerce_order_discount_to_display', 'localize_discount_display', 10, 2);
function localize_discount_display($discount, $order) {
return __('Discount: ', 'your-text-domain') . $discount;
}
この例では、__()
関数を使用して、WordPress のローカライズ機能に対応できるようにします。
サンプルコード 5: 割引金額にサフィックス追加
add_filter('woocommerce_order_discount_to_display', 'add_discount_suffix', 10, 2);
function add_discount_suffix($discount, $order) {
return $discount . ' (税抜)';
}
このコードは、割引金額の後に「(税抜)」というテキストを追加します。