プラグインWooCommerceのwoocommerce_cart_tax_totalsフィルタの使用方法・解説

概要

woocommerce_cart_tax_totalsフィルタは、WooCommerceのカート内での税金合計をカスタマイズするために使用されます。このフィルタを使うと、カートの税金合計に影響を与えたり、税金計算の仕組みを拡張したりすることが可能です。以下のような機能実装時に特に役立ちます。

  1. 特定の税率を適用するための条件分岐
  2. カート内の特定のアイテムに対して異なる税金計算を行う
  3. さまざまなキャンペーンやプロモーションに基づいて税金を調整する
  4. 企業顧客や特定のグループに対する特別税率の適用
  5. 特定の地域に依存する税金の計算
  6. 税金計算のロジックを独自に変更するための拡張ポイント

構文

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

この関数について質問する


上の計算式の答えを入力してください