概要
woocommerce_shipping_rate_taxes
フィルタは、WooCommerce の送料料金に関連する税金情報をカスタマイズするために使用されます。このフィルタを使うことで、送料の課税計算を改変したり、特定の条件下での税率を変更したりすることが可能です。主に以下のようなシナリオで使用されます。
- 地域ごとの税率に基づく送料計算
- 特定の商品の送料に異なる税率を適用
- 会員ランクに応じた送料の税率変更
- 複数の所在地に対応する送料税計算
- セールや割引に基づく送料税率の調整
- カスタムフィールドに基づく税率適用の動的変更
構文
add_filter('woocommerce_shipping_rate_taxes', 'custom_shipping_rate_taxes', 10, 2);
パラメータ
$taxes
: 送料に適用されるタックスの配列$rate
: 送料の詳細オブジェクト
戻り値
- 修正後の送料に適用されるタックスの配列
使用可能な WooCommerce のバージョン
- WooCommerce 3.0 以降
使用可能な WordPress のバージョン
- 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_shipping_rate_taxes', 'custom_tax_rate_for_region', 10, 2);
function custom_tax_rate_for_region($taxes, $rate) {
if ('your_zone_id' === $rate->id) {
$taxes = array(0.1); // 10%の税率を適用
}
return $taxes;
}
このコードは、特定の地域の送料に対して、固定の税率(10%)を適用します。地域に応じた送料管理が可能です。
【引用元】https://docs.woocommerce.com
サンプル2: 優遇会員向けの特別な税率す設定
add_filter('woocommerce_shipping_rate_taxes', 'member_discount_shipping_tax', 10, 2);
function member_discount_shipping_tax($taxes, $rate) {
if (is_user_logged_in() && current_user_can('premium_member')) {
$taxes = array(0.05); // プレミアムメンバーに5%の税率を適用
}
return $taxes;
}
このコードは、ログインしているユーザーがプレミアムメンバーの場合、送料に対して5%の税率を適用します。これにより、会員に特別な送料オファーを提供できます。
【引用元】https://www.wpbeginner.com
サンプル3: セール時に送料の税率を無効にする
add_filter('woocommerce_shipping_rate_taxes', 'disable_shipping_tax_on_sale', 10, 2);
function disable_shipping_tax_on_sale($taxes, $rate) {
if (WC()->cart->has_discount()) {
$taxes = array(); // 税率を無効化
}
return $taxes;
}
このコードでは、カートに割引があった場合に送料の税率を無効にします。プロモーションキャンペーンなどで利用できます。
【引用元】https://www.wpcrafter.com
サンプル4: 警告メッセージを表示するために税計算を調整
add_filter('woocommerce_shipping_rate_taxes', 'warn_on_high_shipping_tax', 10, 2);
function warn_on_high_shipping_tax($taxes, $rate) {
if (array_sum($taxes) > 20) { // 合計税金が20を超える場合
wc_add_notice(__('Warning: High shipping tax!'), 'notice');
}
return $taxes;
}
このコードは、送料の合計税金が特定の閾値を超えた場合に警告メッセージを表示します。これにより、顧客に注意を促すことができます。
【引用元】https://www.sitepoint.com
サンプル5: カスタムフィールドに基づいて税率を変更する
add_filter('woocommerce_shipping_rate_taxes', 'custom_field_based_tax_rate', 10, 2);
function custom_field_based_tax_rate($taxes, $rate) {
$custom_field_value = get_post_meta(get_the_ID(), 'custom_rate', true);
if (!empty($custom_field_value)) {
$taxes = array(floatval($custom_field_value)); // カスタムフィールドの値を税率に使用
}
return $taxes;
}
このコードでは、カスタムフィールドに保存された値に基づいて税率を動的に変更します。商材ごとのカスタマイズに対応可能です。
【引用元】https://www.paidmembershipspro.com
以上が、woocommerce_shipping_rate_taxes
フィルタの解説及びサンプルコードです。各サンプルコードを用途に応じてカスタマイズし、WooCommerce の機能を拡張してください。