Отображение цены продукта Woocommerce с учетом и без учета налога и суммы налога

Я использую WooCommerce для WordPress и перечисляю товары без учета налогов.

Мне нужно показать по отдельности Цена (без налога), Налог и ЦЕНА + Налог на странице товара (как на странице оформления заказа).

Я не смог найти плагин, который делает это.

Как я могу это сделать?

6

Решение

WooCommerce v3.0.0 и новее
Начиная с версии 3.0 WooCommerce, функция woocommerce_price () не рекомендуется, как метод get_price_including_tax (). Вместо этого вы должны использовать wc_get_price_including_tax:

<?php echo wc_price( wc_get_price_including_tax( $product ) ); ?>

До WooCommerce v3.0.0
Вам нужно изменить шаблон. Не делайте измените основной шаблон WooCommerce, а лучше скопируйте его в свою тему, используя систему переопределения шаблонов WooCommerce. Для получения справки по этому вопросу обратитесь к документации WooCommerce по использованию система переопределения шаблонов.

в price.php шаблон, вы добавите этот бит кода, где вы хотите цену, включая налог (НДС):

<?php echo woocommerce_price( $product->get_price_including_tax() ); ?>

Обратите внимание price.php шаблон, который вы изменяете, должен быть расположен здесь в wp-content/themes/[your theme folder]/woocommerce/single-product/price.php

12

Другие решения

На данный момент вам больше не нужно менять шаблон. Вы можете установить это в настройках Woocommerce:

  • Woocommerce: вкладка «Налог»: показать цены в магазине / показать цены при корзине и оформлении заказа
6

Обновление 2018/2019: для Woocommerce 3+

Чтобы отобразить цену без налога, суммы налога и цены, включая налог:

Первое чтение «Как переопределить шаблоны Woocommerce через вашу тему»

1) вкл single-product/price.php файл шаблона (отдельные страницы продукта).

Заменить код на:

if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly
}

$global $product;

// Get the prices
$price_excl_tax = wc_get_price_excluding_tax( $product ); // price without VAT
$price_incl_tax = wc_get_price_including_tax( $product );  // price with VAT
$tax_amount     = $price_incl_tax - $price_excl_tax; // VAT amount

// Display the prices
?>
<p class="price-excl"><?php echo wc_price( $price_excl_tax ); ?></p>
<p class="tax-price"><?php  echo wc_price( $tax_amount ); ?></p>
<p class="price-incl"><?php echo wc_price( $price_incl_tax ); ?></p>

2) Вкл loop/price.php файл шаблона (Магазин и страницы архива).

Заменить код на:

if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly
}

global $product;

if ( $product->get_price_html() ) :
// Get the prices
$price_excl_tax = wc_get_price_excluding_tax( $product ); // price without VAT
$price_incl_tax = wc_get_price_including_tax( $product );  // price with VAT
$tax_amount     = $price_incl_tax - $price_excl_tax; // VAT amount

// Display the prices
?>
<span class="price price-excl"><?php echo wc_price( $price_excl_tax ); ?></span><br>
<span class="price tax-price"><?php  echo wc_price( $tax_amount ); ?></span><br>
<span class="price price-incl"><?php echo wc_price( $price_incl_tax ); ?></span>
<?php endif ?>

Документация:
Структура шаблона и как переопределить шаблоны Woocommerce через вашу тему
wc_get_price_including_tax() функция цены товара
wc_get_price_excluding_tax() функция цены товара
wc_price() функция форматирования цены
wc_get_price_to_display() функция цены товара


Оригинальный ответ (до woocommerce 3):

Прежде чем проверить, что ваш WooCommerce Общие настройки налогов соответствовать вашим потребностям.

Как cale_b предложил вам скопировать из woocommerce templates папка внутри вашей активной дочерней темы или темы. Затем переименуйте его woocommerce, В этом woocommerce папка с шаблонами вы найдете внутри single-product вложенная папка price.php шаблон для редактирования, связанный с отображением цены на отдельных страницах товара.

В single-product/price.php файл шаблона сразу после global $product;,
замените код на:

?>
<div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
<?php
$price_excl = $product->get_price_excluding_tax(); // price without VAT
$price_incl = $product->get_price_including_tax();  // price included VAT
$tax_amount = $price_incl - $price_excl; // VAT price amount
?>
<p class="price"><?php echo woocommerce_price( $price_excl ); /* without VAT */ ?></p> (formatted)
<p class="price-vat"><?php echo woocommerce_price( $tax_amount); /* VAT */ ?></p>
<p class="price-and-vat"><?php echo woocommerce_price( $price_incl); /* With VAT  */ ?></p>

<meta itemprop="price" content="<?php echo esc_attr( $product->get_price() ); ?>" />
<meta itemprop="priceCurrency" content="<?php echo esc_attr( get_woocommerce_currency() ); ?>" />
<link itemprop="availability" href="http://schema.org/<?php echo $product->is_in_stock() ? 'InStock' : 'OutOfStock'; ?>" />
</div>

Поскольку дополнительные цены не отформатированы, вам может потребоваться смешать некоторые другие элементы с этими дополнительными ценами, используя такие функции php woocommerce, как:

get_price_suffix( ) // Get the suffix to display after prices > 0.
$currency = esc_attr( get_woocommerce_currency( ) ) // Get the currency code.
get_woocommerce_currency_symbol( $currency ) // Get the currency symbol.
get_tax_class( ) // Returns the tax class.
get_tax_status( ) // Returns the tax status.

Ссылка: WooCommerce WC_Product класс

6
По вопросам рекламы [email protected]