关于使用jQuery Array进行结帐的国际运输通知

时间:2019-12-22 17:37:25

标签: woocommerce

我的代码有一个例外。我不知道如何将国家代码转换为数组。我尝试使用{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
}

1 个答案:

答案 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))){