显示含税和不含税的 Woocommerce 产品价格和税额
Display Woocommerce product price with and without tax and tax amount
我正在使用适用于 WordPress 的 WooCommerce,我正在列出不含税的项目。
我需要在产品页面上单独显示价格(不含税)、税金和价格+税金(如结帐页面)。
我没能找到执行此操作的插件。
我该怎么做?
WooCommerce v3.0.0 及更高版本
从 WooCommerce 3.0 版开始,函数 woocommerce_price() is deprecated, as is the method get_price_including_tax(). Instead, you should use wc_get_price_including_tax:
<?php echo wc_price( wc_get_price_including_tax( $product ) ); ?>
WooCommerce v3.0.0 之前
您需要修改模板。 不要 修改核心 WooCommerce 模板,而是使用 WooCommerce 模板覆盖系统将其复制到您的主题中。如需这方面的帮助,请参阅有关使用 template override system.
的 WooCommerce 文档
在 price.php
模板中,您将在需要价格(含税(VAT))的地方添加这段代码:
<?php echo woocommerce_price( $product->get_price_including_tax() ); ?>
注意:您修改的price.php
模板应该位于wp-content/themes/[your theme folder]/woocommerce/single-product/price.php
中
更新 2018/2019 (对于 Woocommerce 3+)
显示不含税价格+含税金额+含税价格(分行显示):
第一次阅读"How to override Woocommerce templates via your theme"
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 ?>
文档:
• Template structure and how to override Woocommerce templates via your theme
• 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>
由于附加价格未格式化,您可能需要使用一些 woocommerce php 函数将一些其他元素与此附加价格混合,例如:
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 设置中进行设置:
- Woocommerce:税收选项卡:在商店中显示价格/在购物车和结账时显示价格
是的,您无需编辑模板即可显示增值税。转到 Woocommerce 设置 > 增值税 > 价格显示后缀。您可以添加:{price_excluding_tax} 显示不含增值税。
我正在使用适用于 WordPress 的 WooCommerce,我正在列出不含税的项目。
我需要在产品页面上单独显示价格(不含税)、税金和价格+税金(如结帐页面)。
我没能找到执行此操作的插件。
我该怎么做?
WooCommerce v3.0.0 及更高版本
从 WooCommerce 3.0 版开始,函数 woocommerce_price() is deprecated, as is the method get_price_including_tax(). Instead, you should use wc_get_price_including_tax:
<?php echo wc_price( wc_get_price_including_tax( $product ) ); ?>
WooCommerce v3.0.0 之前
您需要修改模板。 不要 修改核心 WooCommerce 模板,而是使用 WooCommerce 模板覆盖系统将其复制到您的主题中。如需这方面的帮助,请参阅有关使用 template override system.
在 price.php
模板中,您将在需要价格(含税(VAT))的地方添加这段代码:
<?php echo woocommerce_price( $product->get_price_including_tax() ); ?>
注意:您修改的price.php
模板应该位于wp-content/themes/[your theme folder]/woocommerce/single-product/price.php
更新 2018/2019 (对于 Woocommerce 3+)
显示不含税价格+含税金额+含税价格(分行显示):
第一次阅读"How to override Woocommerce templates via your theme"
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 ?>
文档:
• Template structure and how to override Woocommerce templates via your theme
• 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>
由于附加价格未格式化,您可能需要使用一些 woocommerce php 函数将一些其他元素与此附加价格混合,例如:
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 设置中进行设置:
- Woocommerce:税收选项卡:在商店中显示价格/在购物车和结账时显示价格
是的,您无需编辑模板即可显示增值税。转到 Woocommerce 设置 > 增值税 > 价格显示后缀。您可以添加:{price_excluding_tax} 显示不含增值税。