jquery 根据所选国家/地区设置WooCommerce结账字段邮政编码默认值[重复]

kd3sttzy  于 12个月前  发布在  jQuery
关注(0)|答案(1)|浏览(182)

此问题在此处已有答案

Set automatic zip value for Hong Kong in WooCommerce checkout fields(1个答案)
20天前关闭。
我需要在账单邮政编码字段中设置一个默认值,具体取决于所选的国家/地区,我使用了以下代码,但它没有正确工作:

add_filter('woocommerce_checkout_fields', 'my_woocommerce_checkout_fields');
add_filter('woocommerce_billing_fields', 'my_woocommerce_billing_fields');

function my_woocommerce_checkout_fields($fields) {
$fields['billing'] = my_woocommerce_billing_fields($fields['billing']);
return $fields;
}

function my_woocommerce_billing_fields($fields) {

global $woocommerce;
$countries = array( 'CO' );

if ( is_checkout() && in_array( $woocommerce->customer->get_billing_country(), $countries ) ){
    
  $fields['billing_postcode']['default'] = '80100';

  $fields['billing_postcode']['custom_attributes']['readonly'] = TRUE;
  $fields['billing_postcode']['custom_attributes']['disabled'] = TRUE;

  return $fields;
 }
}

字符串
我必须刷新页面才能看到更改,我希望账单邮政编码字段自动更新,如果国家是“CO”,否则该字段应该为空。

lpwwtiir

lpwwtiir1#

下面的代码在这个论坛上找到了一个小的修改:

add_action( 'wp_footer', 'custom_checkout_script', 10 );
function custom_checkout_script() {
?>
<script type="text/javascript">
    (function($){
        $( 'form.checkout' ).on( 'change', '#billing_country', function() {
            var location = $('#billing_country option:selected').val();
            if( location == 'CO' ) {
                $('input#billing_postcode').val('80100');
            } else if( location != 'CO' && $('input#billing_postcode').val() == '80100' ) {
                $('input#billing_postcode').val('');
            }
        });
    })(jQuery);
    </script>
<?php
}

字符串

相关问题