概要
woocommerce_order_subtotal_to_display
フィルタは、WooCommerceのオーダーサブトータル(小計)表示をカスタマイズするためのフックです。このフィルタを使用することで、オーダーの小計額に対してさまざまな変更を加えることができます。具体的には、次のような機能を実装する際によく使われます。
- 税金や送料を考慮した小計の表示のカスタマイズ
- 特定の条件に応じた割引の適用
- 通貨フォーマットの変更
- サブトータルの表示におけるラベルの変更
- 通常と異なる小計の計算ロジックの実装
- ユーザーのロールに基づく異なる小計の表示
このフィルタの構文は次の通りです。
add_filter( 'woocommerce_order_subtotal_to_display', 'custom_function', 10, 2 );
パラメータ
string $subtotal
:現在の小計額WC_Order $order
:対象のWooCommerce注文オブジェクト
戻り値
string
:変更された小計額
使用可能なプラグインバージョン
- 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_order_subtotal_to_display', 'custom_subtotal_format', 10, 2 );
function custom_subtotal_format( $subtotal, $order ) {
return '¥' . number_format( $subtotal, 0) . ' (税抜)';
}
このコードは、オーダーの小計を円(¥)で表示し、「税抜」と付け加えます。数値フォーマットも整えられています。
サンプルコード2
add_filter( 'woocommerce_order_subtotal_to_display', 'apply_custom_discount', 10, 2 );
function apply_custom_discount( $subtotal, $order ) {
if ( $order->get_total() > 10000 ) {
return $subtotal - 500; // 10,000円以上の注文には500円の割引
}
return $subtotal;
}
このコードは、10,000円を超えるオーダーに対して自動的に500円の割引を適用します。
サンプルコード3
add_filter( 'woocommerce_order_subtotal_to_display', 'prepend_discount_message', 10, 2 );
function prepend_discount_message( $subtotal, $order ) {
if ( $order->get_discount_total() > 0 ) {
return '割引適用: ¥' . number_format( $subtotal, 0);
}
return $subtotal;
}
このコードは、オーダーが割引を適用されている場合、表示の先頭に「割引適用」というメッセージを追加します。
サンプルコード4
add_filter( 'woocommerce_order_subtotal_to_display', 'conditional_currency_display', 10, 2 );
function conditional_currency_display( $subtotal, $order ) {
$currency = get_woocommerce_currency();
if ( $currency === 'JPY' ) {
return '¥' . $subtotal; // 円の場合
}
return $subtotal . ' ' . $currency; // 他通貨の場合
}
このコードは、使用している通貨に応じて小計の表示形式を変更します。円の場合は「¥」、それ以外の場合は通貨コードを追加します。
サンプルコード5
add_filter( 'woocommerce_order_subtotal_to_display', 'custom_total_with_vat', 10, 2 );
function custom_total_with_vat( $subtotal, $order ) {
$vat = $subtotal * 0.1; // 10%の消費税を計算
return '¥' . number_format( $subtotal + $vat, 0) . ' (税込)';
}
このコードは、小計に10%の消費税を加算して税込みの金額を表示し、形式を整えます。