概要
woocommerce_cart_tax_totals
フィルタは、WooCommerceのカート内での税金合計をカスタマイズするために使用されます。このフィルタを使うと、カートの税金合計に影響を与えたり、税金計算の仕組みを拡張したりすることが可能です。以下のような機能実装時に特に役立ちます。
- 特定の税率を適用するための条件分岐
- カート内の特定のアイテムに対して異なる税金計算を行う
- さまざまなキャンペーンやプロモーションに基づいて税金を調整する
- 企業顧客や特定のグループに対する特別税率の適用
- 特定の地域に依存する税金の計算
- 税金計算のロジックを独自に変更するための拡張ポイント
構文
add_filter('woocommerce_cart_tax_totals', 'custom_cart_tax_totals', 10, 1);
パラメータ
$tax_totals
(array): カートの税金合計の配列。
戻り値
- (array): 変更された税金合計の配列。
使用可能なバージョン
- 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_cart_tax_totals', function($tax_totals) {
if (is_cart() && !is_user_logged_in()) {
foreach ($tax_totals as &$tax_total) {
$tax_total['amount'] = 0; // 税金をゼロに設定
}
}
return $tax_totals;
});
引用元: https://woocommerce.com
サンプルコード2: 特定のアイテムに異なる税金を適用
このサンプルコードは、カート内の特定のアイテムに通常とは異なる税金を適用する例です。
add_filter('woocommerce_cart_tax_totals', function($tax_totals) {
foreach (WC()->cart->get_cart() as $cart_item) {
if ($cart_item['product_id'] == 123) { // 特定の商品ID
$tax_totals['total']['amount'] *= 0.5; // 税率を50%に設定
}
}
return $tax_totals;
});
引用元: https://woocommerce.com
サンプルコード3: 税金計算の条件の追加
このサンプルでは、ユーザーの国に基づいて税金を添加する方法を示しています。
add_filter('woocommerce_cart_tax_totals', function($tax_totals) {
$user_country = WC()->customer->get_billing_country();
if ($user_country === 'JP') { // 日本の場合
foreach ($tax_totals as &$tax_total) {
$tax_total['amount'] *= 1.1; // 10%の税金を加算
}
}
return $tax_totals;
});
引用元: https://woocommerce.com
サンプルコード4: プロモーションに基づく税率の変更
このコードは、特定のプロモーションが適用された場合に税額を調整する例です。
add_filter('woocommerce_cart_tax_totals', function($tax_totals) {
if (WC()->cart->has_discount('promo_code')) { // プロモーションコードのチェック
foreach ($tax_totals as &$tax_total) {
$tax_total['amount'] *= 0.9; // 10%オフ
}
}
return $tax_totals;
});
引用元: https://woocommerce.com
サンプルコード5: 複数の税率の調整
このコードは、複数の税率がある場合に、一括で税率を変更する方法を示しています。
add_filter('woocommerce_cart_tax_totals', function($tax_totals) {
foreach ($tax_totals as &$tax_total) {
$tax_total['amount'] *= 1.05; // 全ての税率を5%増加
}
return $tax_totals;
});
引用元: https://woocommerce.com