我的代码有一个例外。我不知道如何将国家代码转换为数组。我尝试使用{1, 2, 3};
和[1, 2, 3];
和["1", "2"];
以及其他格式都没有成功。
我需要国家代码作为数组。
感谢米尔尼,这是有效的版本:
add_action( 'woocommerce_before_checkout_billing_form', 'international_shipping_notice' );
function international_shipping_notice() {
echo '<div class="international-shipping-notice woocommerce-info" style="display:none">Please allow 5-10 business days for delivery after order processing.</div>';
}
add_action( 'woocommerce_after_checkout_form', 'show_international_shipping_notice' );
function show_international_shipping_notice(){ ?>
<script>
jQuery(document).ready(function($){
var countryCode = ["DK", "SE"];
$('select#billing_country').change(function(){
selectedCountries = $(this).val();
if (countryCode.some(r => selectedCountries.includes(r))){
$('.international-shipping-notice').show();
} else {
$('.international-shipping-notice').hide();
}
});
});
</script>
<?php
}
答案 0 :(得分:1)
这将定义一个数组:
var countryCodes = ["UK"];
但是这在其余的代码中似乎没有任何意义……您真的是说您得到一个数组并想检查其中是否包含国家代码吗?
if ( selectedCountry.indexOf(countryCode) != -1)
如果要检查数组中是否有任何个值,则更可能是这样:
if(selectedCountry.some(r => countryCode.includes(r))){
假设您有一个select元素,例如
<select id="billing_country" multiple>
然后此代码将起作用:
var countryCodes = ['UK'];
$('select#billing_country').change(function(){
selectedCountries = $(this).val();
if (countryCodes.some(r => selectedCountries.includes(r))){