概要
woocommerce_order_amount_item_tax
フィルタは、WooCommerceのカートやオーダーの合計項目に対する税金の金額を変更するために使用されるフックです。このフィルタを用いることで、管理者が税金の計算をカスタマイズしたり、特定の条件に基づいて異なる税率を適用したりすることが可能です。主に以下のような機能実装の際に利用されます。
- 特定の商品の税率をカスタマイズする。
- 異なる税区に基づいて税金を計算する。
- 商品ごとに異なる税金の計算方法を適用する。
- セールやキャンペーンに合わせた税金を調整する。
- 税金の表示方法をカスタマイズする。
- グローバル設定とは異なる地域ごとの税金設定を行う。
構文
add_filter('woocommerce_order_amount_item_tax', 'custom_amount_item_tax', 10, 3);
パラメータ
$tax
: 変更する税金の金額(float)$item
: 税金が適用されるアイテム(WC_Order_Item)$order
: オーダーオブジェクト(WC_Order)
戻り値
- 変更後の税金の金額(float)
使用可能なバージョン
- WooCommerce バージョン: 3.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_amount_item_tax', function($tax, $item, $order) {
if ($item->get_product_id() == 123) { // 商品IDが123の場合
$tax *= 1.1; // 税率を10%上げる
}
return $tax;
}, 10, 3);
引用元: WooCommerceのカスタマイズに関するドキュメント
サンプル 2: 特定地域向けの税率に基づく調整
この例では、特定地域の顧客に異なる税率を適用します。
add_filter('woocommerce_order_amount_item_tax', function($tax, $item, $order) {
if ($order->get_shipping_city() == 'Tokyo') {
$tax *= 0.9; // 東京の場合、税率を9割に
}
return $tax;
}, 10, 3);
引用元: WooCommerceフィルターに関するガイドライン
サンプル 3: セールによる税金の調整
このコードは、セール商品に対して特別な税金の調整を行います。
add_filter('woocommerce_order_amount_item_tax', function($tax, $item, $order) {
if ($item->get_product()->is_on_sale()) {
$tax *= 0.8; // セール商品には税金を20%引き
}
return $tax;
}, 10, 3);
引用元: WooCommerceのドキュメント
サンプル 4: 複数の税区に基づく税額の算出
このサンプルコードは、複数の税区の設定に基づいて税額を変更します。
add_filter('woocommerce_order_amount_item_tax', function($tax, $item, $order) {
$tax_class = $item->get_tax_class();
if ($tax_class === 'reduced-rate') {
$tax *= 0.75; // 割引税率を適用
}
return $tax;
}, 10, 3);
引用元: WooCommerce税金設定ガイド
サンプル 5: 特定条件下での税金の除外
このコードは、特定の条件で税金を除外します。
add_filter('woocommerce_order_amount_item_tax', function($tax, $item, $order) {
if ($order->get_total() > 500) { // 注文合計が500を超える場合
return 0; // 税金を0にする
}
return $tax;
}, 10, 3);
引用元: WooCommerceフィルターの使用方法
これらのサンプルコードは、woocommerce_order_amount_item_tax
フィルタの利用シーンに応じたさまざまな実装方法を示しています。各例は、特定の条件や商品に基づいて税金の計算を柔軟に変更するためのものです。