我正在尝试更改购物车上的“税务”标签,结帐订单审核和电子邮件。
我试图用'woocommerce_get_order_item_totals'和'woocommerce_get_formatted_order_total'创建一个函数。它要么全部删除,要么添加新行,但是更改了$ tax_totals [$ code]-> label
我有一个复选框,使客户可以为订单申请免税。这一切都很好。 如果选择此项,则会将“ TAX Amount”设置为0.00,但标签会保留在VAT或TAX或BTW上(荷兰标签) 我在后端添加了零利率, 用于识别增值税的短语匹配(增值税,增值税,增值税,增值税,增值税,TVA,增值税,BTW,B.T.W。,免税,vrijgesteld van BTW) 我按国家/地区代码添加了零费率 GB免税(0%) NL vrijgesteld van BTW(0%)
无论在哪个国家/地区,它仍然以增值税或(BTW)的形式显示在购物车,结帐,订单审核和电子邮件上。
答案 0 :(得分:0)
我已经寻找了好几天没有运气的可行解决方案。 但是我刚刚找到了一个解决方案,不确定是破解还是良好的编码,但是对我有用。 我的函数中有这段代码。
add_action( woocommerce_checkout_update_order_review','taxexempt_checkout_based_on_checkbox');
function taxexempt_checkout_based_on_checkbox( $post_data) {
global $woocommerce;
$woocommerce->customer->set_is_vat_exempt( false );
parse_str($post_data);
if ( $billing_taxexempt === '1' && $billing_confirmed === '1' &&
!empty($billing_signature) && ! empty($billing_declaration)){
$woocommerce->customer->set_is_vat_exempt( true );
}
}
这将对订单应用免税。 我在.... set_is_vat_exempt(true)下面添加了一个过滤器。
add_filter( 'woocommerce_countries_tax_or_vat', function () { return __( 'Tax Exempt', 'woocommerce' ); });
然后我添加了一个发现的函数// Change "Billing Details" text to "Shipping Details" on Woocommerce checkout page
我做了一点修改,但是对我有用。
function wc_change_field_strings( $translated_text, $text, $domain ) {
$language = get_locale();
$domain = 'woocommerce';
if($language == 'en_GB' ){
switch ( $translated_text ) {
case 'Tax Exempt' :
$translated_text = __( 'Tax Exempt', $domain );
break;
}
return $translated_text;
}
if($language == 'nl_NL' ){
switch ( $translated_text ) {
case 'Tax Exempt' :
$translated_text = __( 'vrijgesteld van BTW', $domain);
break;
}
return $translated_text;
}
}
add_filter( 'gettext', 'wc_change_field_strings', 20, 3 );
必须添加默认大小写,稍后会做,但适用于该解决方案。 也许对其他人有用,或者如果您有更好的解决方案,请告诉我。