概要
woocommerce_get_price_including_tax
は、WooCommerceで税込価格を取得する際に使用されるフィルターフックです。このフックは、商品の価格を税込みで表示する必要がある場合に、その価格を変更や調整を行いたいときに役立ちます。主に以下のような機能を実装する際に使用されます。
- 税率に基づいて特定の価格設定を行う。
- 商品の価格を表示する際にカスタムフォーマットを適用。
- 特定のユーザーグループに対する価格を調整。
- プロモーションや割引活動における価格表示の調整。
- 外部APIからのデータを基にした動的な価格変更。
- マルチ通貨表示を実現するための価格変換。
構文
add_filter('woocommerce_get_price_including_tax', 'custom_price_including_tax', 10, 3);
パラメータ
$price
(float): 税込み価格。$product
(WC_Product): WooCommerce 商品オブジェクト。$qty
(int): 商品の数量(通常は1)。
戻り値
(float)
: 修正された税込価格。
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 |
サンプルコード
- 価格を特定のユーザーグループに対して調整する例
add_filter('woocommerce_get_price_including_tax', 'custom_price_for_member', 10, 3);
function custom_price_for_member($price, $product, $qty) {
if (is_user_logged_in() && current_user_can('member')) {
return $price * 0.9; // 10%割引
}
return $price;
}
このコードは、特定のユーザーグループに対して10%の割引を適用します。引用元: https://woocommerce.com/
- 商品ごとに異なる税率を適用する例
add_filter('woocommerce_get_price_including_tax', 'custom_tax_rate_for_products', 10, 3);
function custom_tax_rate_for_products($price, $product, $qty) {
if ($product->get_id() === 123) { // 商品ID 123用
return $price * 1.2; // 20%増税
}
return $price;
}
このコードは、特定の商品に対して異なる税率を適用します。引用元: https://woocommerce.com/
- 特定の条件に基づいて価格を変更する例
add_filter('woocommerce_get_price_including_tax', 'conditional_price_adjustment', 10, 3);
function conditional_price_adjustment($price, $product, $qty) {
if (is_checkout()) {
return $price * 1.05; // チェックアウト時に5%増加
}
return $price;
}
このコードは、チェックアウト時に価格を5%増加させます。引用元: https://woocommerce.com/
- マルチ通貨のための動的な価格変更例
add_filter('woocommerce_get_price_including_tax', 'dynamic_currency_price', 10, 3);
function dynamic_currency_price($price, $product, $qty) {
$currency = get_woocommerce_currency();
if ($currency === 'JPY') {
return $price * 1.1; // 日本円の場合、10%増加
}
return $price;
}
このコードは、通貨に応じて価格を変更します。引用元: https://woocommerce.com/
- プロモーション期間中の価格変更例
add_filter('woocommerce_get_price_including_tax', 'promotional_price_change', 10, 3);
function promotional_price_change($price, $product, $qty) {
$start_date = strtotime('2023-01-01');
$end_date = strtotime('2023-01-15');
if (time() >= $start_date && time() <= $end_date) {
return $price * 0.8; // 20%オフ
}
return $price;
}
このコードは、特定のプロモーション期間中に価格を20%オフにします。引用元: https://woocommerce.com/