php WooCommerce购物车和结账中的“包括{country}的$x增值税估计”

btxsgosb  于 2023-04-28  发布在  PHP
关注(0)|答案(2)|浏览(83)

我把增值税设置为包括数字产品的税收。在我的购物车和结帐中,税显示在总金额之后:
“(包括$xy增值税)”
我更喜欢我在其他网站上看到的:
“(包括德国的$xy增值税估计值)”
我的问题是:
1)这是我使用的主题的自定义,它是一个插件还是我可以自己在WooCommerce中设置它?购物车上的估计国家/地区是否由地理位置设置?
2)我可以用钩子或过滤器将预估税文本放在价格之前吗?

mdfafbf1

mdfafbf11#

对于问题2给予这个

add_filter( 'woocommerce_cart_total', 'wc_prefix_text_on_price' ); 

function wc_prefix_text_on_price( $price ) {
    $prefix = 'estimated tax';
    return  $prefix . $price;
}
pvabu6sv

pvabu6sv2#

要更改WooCommerce结账页面上的“includes -- VAT estimated for [country]”消息,您可以使用woocommerce_cart_totals_shipping_html过滤器。
以下是如何更改消息的示例:

add_filter( 'woocommerce_cart_totals_shipping_html', 'custom_checkout_vat_message' );

function custom_checkout_vat_message( $shipping_html ) {
// Get the customer's country
$customer_country = WC()->customer->get_shipping_country();

// Get the tax rate for the customer's country
$tax_rate = WC_Tax::get_rates( $customer_country )[1]['rate'];

// Calculate the VAT amount
$vat_amount = WC()->cart->shipping_total * $tax_rate / 100;

// Format the VAT amount as a price
$formatted_vat = wc_price( $vat_amount );

// Replace the message with your custom message
$new_message = 'Price includes VAT of ' . $formatted_vat . ' for ' . $customer_country;
$shipping_html = str_replace( 'includes ' . wc_price( WC()->cart->get_shipping_tax() ) . ' VAT estimated for ' . $customer_country, $new_message, $shipping_html );

return $shipping_html;

}
在本例中,我们使用WC_Tax::get_rates()方法获取客户所在国家/地区的税率,然后根据购物车的运费总额计算增值税金额。然后我们使用wc_price()将VAT金额格式化为价格,并使用str_replace()将原始消息替换为自定义消息。

相关问题