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

概要

woocommerce_apply_base_tax_for_local_pickup フィルタは、WooCommerceにおいてローカルピックアップの際に適用する基準税率を制御するためのフックです。このフィルタを使用することで、特定の条件や要件に基づいて、カートやチェックアウトでの税計算をカスタマイズできます。主に以下のような機能を実装する際に利用されます:

  1. 特定の地域や国に応じた税率の設定
  2. ローカルピックアップ専用の税率の適用
  3. 商品の属性やカテゴリーによる税率の変更
  4. 特定のカスタムフィールドに基づく税計算の調整
  5. ディスカウントキャンペーンに合わせた税の適用ルール
  6. ウェブサイトの多言語化や多通貨に伴う税率の切り替え

構文

apply_filters( 'woocommerce_apply_base_tax_for_local_pickup', $apply_tax, $order );

パラメータ

  • $apply_tax (bool): 基準税を適用するかどうかを示すフラグ。
  • $order (WC_Order): 現在の注文オブジェクト。

戻り値

  • (bool): 税率を適用する場合はtrue、適用しない場合はfalse。

対応バージョン

  • 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_apply_base_tax_for_local_pickup', 'disable_tax_for_local_pickup', 10, 2 );

function disable_tax_for_local_pickup( $apply_tax, $order ) {
    return false; // ローカルピックアップでの税率の適用を無効化
}

このサンプルコードは、ローカルピックアップ時に税金を常に適用しないようにします。使用例: 特定の顧客グループに税金を免除する場合。出典: WooCommerce Codex

サンプル2: 地域に基づく税率の適用

add_filter( 'woocommerce_apply_base_tax_for_local_pickup', 'apply_tax_based_on_location', 10, 2 );

function apply_tax_based_on_location( $apply_tax, $order ) {
    $shipping_country = $order->get_shipping_country();

    if ( $shipping_country === 'JP' ) {
        return true; // 日本の場合は税を適用する
    }
    return false; // その他の地域では税を適用しない
}

このサンプルコードは、日本に配送される注文に対してのみ税金を適用します。使用例: 国によって異なる税率を適用する場合。出典: WooCommerce Codex

サンプル3: 商品カテゴリーによる税率の制御

add_filter( 'woocommerce_apply_base_tax_for_local_pickup', 'tax_based_on_product_category', 10, 2 );

function tax_based_on_product_category( $apply_tax, $order ) {
    $items = $order->get_items();

    foreach ( $items as $item ) {
        if ( has_term( 'no-tax', 'product_cat', $item->get_product_id() ) ) {
            return false; // 「no-tax」カテゴリーの商品が含まれている場合、税を適用しない
        }
    }
    return true; // 他は税を適用する
}

このサンプルコードは、「no-tax」カテゴリーの商品がカートにある場合、その注文に対して税金を適用しません。使用例: 特定の製品カテゴリーに対する税の免除。出典: WooCommerce Codex

サンプル4: プロモーションに合わせた税設定

add_filter( 'woocommerce_apply_base_tax_for_local_pickup', 'apply_tax_for_promotions', 10, 2 );

function apply_tax_for_promotions( $apply_tax, $order ) {
    $is_promotion_active = get_option('promotion_active');

    if ( $is_promotion_active ) {
        return false; // プロモーション中は税を適用しない
    }
    return $apply_tax;
}

このサンプルコードは、特定のプロモーションがアクティブな場合、ローカルピックアップに対して税を適用しないようにします。使用例: セール期間中に全商品を税抜きで販売する場合。出典: WooCommerce Codex

サンプル5: カスタムフィールドに基づく税率の変更

add_filter( 'woocommerce_apply_base_tax_for_local_pickup', 'apply_tax_based_on_custom_field', 10, 2 );

function apply_tax_based_on_custom_field( $apply_tax, $order ) {
    $custom_field_value = get_post_meta( $order->get_id(), 'custom_tax_field', true );

    if ( $custom_field_value === 'no-tax' ) {
        return false; // カスタムフィールドが「no-tax」の場合、税を適用しない
    }

    return true; // その他は税を適用する
}

このサンプルコードは、注文のカスタムフィールドに基づいて税率を変動させます。カスタムフィールドが「no-tax」の場合、税金を免除します。使用例: 特定の顧客の注文に対して特別な税設定を行う場合。出典: WooCommerce Codex

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


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