Сценарий A: Одинаковая цена независимо от местоположения и налогов
Если в магазине цены указаны с учетом налогов, но используются разные налоговые ставки в зависимости от региона, итоговая цена может выглядеть по-разному.
На самом деле базовая цена остаётся прежней — меняется только сумма налога.
Некоторые владельцы магазинов предпочитают динамически менять базовую цену, чтобы итоговая стоимость оставалась одинаковой независимо от налоговой ставки.
Добавьте этот код в файл functions.php дочерней темы или через плагин (например, Code Snippets):
<?php
add_filter( 'woocommerce_adjust_non_base_location_prices', '__return_false' );
Сценарий B: Начисление налога только при достижении суммы
Этот код полезен, если налог должен применяться только после достижения определённой суммы заказа.
В примере ниже налог применяется только если сумма больше 110 (в валюте магазина).
<?php
add_filter( 'woocommerce_product_get_tax_class', 'custom_get_tax_class', 1, 2 );
function custom_get_tax_class( $tax_class, $product ) {
if ( WC()->cart->subtotal <= 110 ) {
$tax_class = 'Zero Rate';
}
return $tax_class;
}
Сценарий C: Разные налоговые ставки в зависимости от роли пользователя
Можно применять разные налоговые ставки в зависимости от роли пользователя (например, для оптовиков или освобождённых от налогов клиентов).
В примере ниже пользователи с ролью администратора получают налог с нулевой ставкой.
<?php
/**
* Применяет другую налоговую ставку в зависимости от роли пользователя
*/
function wc_diff_rate_for_user( $tax_class, $product ) {
if ( is_user_logged_in() && current_user_can( 'administrator' ) ) {
$tax_class = 'Zero Rate';
}
return $tax_class;
}
add_filter( 'woocommerce_product_get_tax_class', 'wc_diff_rate_for_user', 1, 2 );
add_filter( 'woocommerce_product_variation_get_tax_class', 'wc_diff_rate_for_user', 1, 2 );
Сценарий D: Показывать налоги с нулевой ставкой
По умолчанию WooCommerce скрывает налоги со значением 0.
Чтобы отображать их, используйте следующий код:
add_filter( 'woocommerce_order_hide_zero_taxes', '__return_false' );
Сценарий E: Суффиксы цен для вариативных товаров
В WooCommerce можно добавлять суффиксы к ценам (например, «включая НДС»).
Они работают для вариаций товара, но по умолчанию отключены для основного вариативного товара,
так как это может повлиять на производительность.
Чтобы включить отображение, используйте фильтр:
add_filter( 'woocommerce_show_variation_price', '__return_true' );
