我想添加一个woocommerce功能,创建一个显示产品页面中单个产品的税额的短代码。
最佳解决方案是直接在php函数中进行数学运算(productprice * 0,25)并回显结果,因为我们的产品不含税。这个脚本的原因是向我们的客户展示他们在从非欧盟国家进口产品期间将支付多少税款。
即。 产品价格:100美元 税率25% 税金25美元
我想用短代码显示税额,如下所示:
此产品的总税额:$ 25
谢谢!
答案 0 :(得分:1)
使用以下代码可以轻松完成此操作:
if( ! function_exists('get_formatted_product_tax_amount') ) {
function get_formatted_product_tax_amount( $atts ) {
// Attributes
$atts = shortcode_atts( array(
'id' => '0',
), $atts, 'tax_amount' );
global $product, $post;
if( ! is_object( $product ) || $atts['id'] != 0 ){
if( is_object( $post ) && $atts['id'] == 0 )
$product_id = $post->ID;
else
$product_id = $atts['id'];
$product = wc_get_product( $product_id );
}
if( is_object( $product ) ){
$price_excl_tax = wc_get_price_excluding_tax($product);
$price_incl_tax = wc_get_price_including_tax($product);
$tax_amount = $price_incl_tax - $price_excl_tax;
return wc_price($tax_amount);
}
}
add_shortcode( 'tax_amount', 'get_formatted_product_tax_amount' );
}
代码放在活动子主题(或活动主题)的function.php文件中。
经过测试和工作
USAGE (示例):
1)在单个产品页面中,简短描述文本编辑器:
Total tax amount for this product: [tax_amount]
2)对于单个产品页面,在php代码中:
$text = __('Total tax amount for this product', 'woocommerce');
echo '<p>' . $text . ': ' . do_shortcode("[tax_amount]") . '</p>';
3)在其他页面上,在文本编辑器中(将产品ID设置为参数):
Total tax amount for this product: [tax_amount id="37"]
4)无处不在,在PHP代码中(将产品ID设置为参数):
$text = __('Total tax amount for this product', 'woocommerce');
echo '<p>' . $text . ': ' . do_shortcode("[tax_amount id='37']") . '</p>';