结帐时的 WooCommerce 非欧盟增值税消息 - 更改代码以包含数组而不是单个值
WooCommerce NON EU VAT message on checkout - changing code to include an array instead of single value
我在结帐时使用的是来自 BBloomer 的修改后的代码段。
我查找所选国家,如果国家是挪威 'NO',它会在总金额后回显有关非欧盟国家税务信息的消息。
因为我们现在也运送到英国和斯威奇兰,我想在 mu 脚本中包括这些国家。
这意味着 var countryCode = 'NO';应该像 var countryCode = array( 'NO','UK','CH' );或者?
其余的大神也需要处理数组而不是单个值。
希望大家能帮忙。
// The message
add_action( 'woocommerce_review_order_after_order_total', 'bbloomer_echo_notice_shipping' );
function bbloomer_echo_notice_shipping() {
echo '<tr class="non-eu-tax-notice" style="display:none">
<th>'. __( 'Notice', 'woocommerce' ) .'</th>
<td data-title=" '. __( 'Notice', 'woocommerce' ) .' ">'. __( 'No VAT charged. Please be aware that VAT and customs can be declared in your home country. More info here', 'woocommerce' ) .'</td>
</tr>';
}
// Show or hide message based on billing country
add_action( 'woocommerce_checkout_after_order_review', 'bbloomer_show_notice_shipping' );
function bbloomer_show_notice_shipping(){
wc_enqueue_js( "
// Set the country code that will display the message
var countryCode = 'NO';
// Get country code from checkout
selectedCountry = $('select#billing_country').val();
// Function to toggle message
function toggle_upsell( selectedCountry ) {
if( selectedCountry == countryCode ){
$('.non-eu-tax-notice').show();
}
else {
$('.non-eu-tax-notice').hide();
}
}
// Call function
toggle_upsell( selectedCountry );
$('select#billing_country').change(function(){
toggle_upsell( this.value );
});
" );
}
我可以帮忙! :D
我是 WooCommerce: Show Message Upon Country Selection @ Checkout 教程作者。
在jQuery/JS中可以定义一个数组:
var countryCode = [ 'NO', 'GB', 'CH' ];
此外,您可以使用等效于 PHP 的 in_array() 的 JS,即 inArray() 来查看元素是否在定义的国家/地区列表中:
if ( $.inArray(selectedCountry,countryCode) !== -1 ){
最终代码:
function bbloomer_show_notice_shipping(){
wc_enqueue_js( "
// Set the country code that will display the message
var countryCode = [ 'NO', 'GB', 'CH' ];
// Get country code from checkout
selectedCountry = $('select#billing_country').val();
// Function to toggle message
function toggle_upsell( selectedCountry ) {
if ( $.inArray(selectedCountry,countryCode) !== -1 ){
$('.non-eu-tax-notice').show();
}
else {
$('.non-eu-tax-notice').hide();
}
}
// Call function
toggle_upsell( selectedCountry );
$('select#billing_country').change(function(){
toggle_upsell( this.value );
});
" );
}
我在结帐时使用的是来自 BBloomer 的修改后的代码段。
我查找所选国家,如果国家是挪威 'NO',它会在总金额后回显有关非欧盟国家税务信息的消息。
因为我们现在也运送到英国和斯威奇兰,我想在 mu 脚本中包括这些国家。
这意味着 var countryCode = 'NO';应该像 var countryCode = array( 'NO','UK','CH' );或者?
其余的大神也需要处理数组而不是单个值。
希望大家能帮忙。
// The message
add_action( 'woocommerce_review_order_after_order_total', 'bbloomer_echo_notice_shipping' );
function bbloomer_echo_notice_shipping() {
echo '<tr class="non-eu-tax-notice" style="display:none">
<th>'. __( 'Notice', 'woocommerce' ) .'</th>
<td data-title=" '. __( 'Notice', 'woocommerce' ) .' ">'. __( 'No VAT charged. Please be aware that VAT and customs can be declared in your home country. More info here', 'woocommerce' ) .'</td>
</tr>';
}
// Show or hide message based on billing country
add_action( 'woocommerce_checkout_after_order_review', 'bbloomer_show_notice_shipping' );
function bbloomer_show_notice_shipping(){
wc_enqueue_js( "
// Set the country code that will display the message
var countryCode = 'NO';
// Get country code from checkout
selectedCountry = $('select#billing_country').val();
// Function to toggle message
function toggle_upsell( selectedCountry ) {
if( selectedCountry == countryCode ){
$('.non-eu-tax-notice').show();
}
else {
$('.non-eu-tax-notice').hide();
}
}
// Call function
toggle_upsell( selectedCountry );
$('select#billing_country').change(function(){
toggle_upsell( this.value );
});
" );
}
我可以帮忙! :D
我是 WooCommerce: Show Message Upon Country Selection @ Checkout 教程作者。
在jQuery/JS中可以定义一个数组:
var countryCode = [ 'NO', 'GB', 'CH' ];
此外,您可以使用等效于 PHP 的 in_array() 的 JS,即 inArray() 来查看元素是否在定义的国家/地区列表中:
if ( $.inArray(selectedCountry,countryCode) !== -1 ){
最终代码:
function bbloomer_show_notice_shipping(){
wc_enqueue_js( "
// Set the country code that will display the message
var countryCode = [ 'NO', 'GB', 'CH' ];
// Get country code from checkout
selectedCountry = $('select#billing_country').val();
// Function to toggle message
function toggle_upsell( selectedCountry ) {
if ( $.inArray(selectedCountry,countryCode) !== -1 ){
$('.non-eu-tax-notice').show();
}
else {
$('.non-eu-tax-notice').hide();
}
}
// Call function
toggle_upsell( selectedCountry );
$('select#billing_country').change(function(){
toggle_upsell( this.value );
});
" );
}