3 回答

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個(gè)贊
您可以使用以下內(nèi)容(不使用任何額外的 javascript 或 jQuery 代碼)使賬單公司結(jié)帳字段更新結(jié)帳,并檢查國家“HR” (克羅地亞):
add_filter( 'woocommerce_checkout_fields' , 'billing_company_trigger_update_checkout_on_change', 10, 1 );
function billing_company_trigger_update_checkout_on_change( $fields ) {
$fields['billing']['billing_company']['class'][] = 'update_totals_on_change';
return $fields;
}
add_action( 'woocommerce_checkout_update_order_review', 'checkout_vat_exempt_based_on_billing_company', 10, 1 );
function checkout_vat_exempt_based_on_billing_company( $post_data ) {
parse_str($post_data, $results); // Since Php 7.2, the 2nd argument is recommended in parse_str() function
extract($results);
$customer = WC()->customer;
// When billing company is filled and country is Croatia: Exempt taxes
if ( ! empty($billing_company) && $billing_country === 'HR' && ! $customer->is_vat_exempt() ) {
$customer->set_is_vat_exempt( true );
}
elseif ( $customer->is_vat_exempt() ){
$customer->set_is_vat_exempt( false );
}
}
要處理運(yùn)輸國家而不是計(jì)費(fèi)國家,只需將代碼中的變量替換$billing_country為$shipping_country
代碼位于活動(dòng)子主題(或活動(dòng)主題)的 functions.php 文件中。測試和工作。
注意:一段時(shí)間以來,global $woocommerce和$woocommerce被簡單地替換為WC()

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超13個(gè)贊
因?yàn)樵?#billing_company change 上,沒有更新結(jié)帳的操作。所以你需要一個(gè)javascript來做到這一點(diǎn)
add_action('woocommerce_after_checkout_form',function($checkout){
?>
<script type="text/javascript">
jQuery(function($){
$(document).on('change','#billing_company',function(){
$(document.body).trigger("update_checkout");
});
});
</script>
<?php
});
在 php 中,您可以使用您的代碼和用戶:$billing_country == 'HR' 來檢查克羅地亞國家
add_action( 'woocommerce_checkout_update_order_review', 'bbloomer_taxexempt_checkout_based_on_zip' );
function bbloomer_taxexempt_checkout_based_on_zip( $post_data ) {
global $woocommerce;
$woocommerce->customer->set_is_vat_exempt( false );
$Pay_options=$_POST['Pay_options'];
parse_str($post_data);
if ( $billing_company != null)
$woocommerce->customer->set_is_vat_exempt( true );
if($billing_country == 'HR'){ // Croatia
// Do what you need, for example set TAX
$woocommerce->customer->set_is_vat_exempt( false );
}
}
- 3 回答
- 0 關(guān)注
- 248 瀏覽
添加回答
舉報(bào)