【发布时间】:2020-07-26 19:53:56
【问题描述】:
我正在建立我的网站。我安装了 WooCommerce 插件,并且我居住的国家/地区没有邮政编码或邮政编码。所以要计算我使用地区的运费。我在(计算运费)区域和结帐页面的购物车页面中将所有地区添加为下拉菜单。在结帐页面的代码下方
function custom_override_default_postcode_field( $address_fields ) {
// Your postcodes array
$postcode_array = array(
'ALMOHAMMDIAH' => "ALMOHAMMDIAH",
'ALNAEEM' => "ALNAEEM",
'ALZAHRRA' => "ALZAHRRA"
);
$address_fields['postcode']['type'] = 'select';
$address_fields['postcode']['options'] = $postcode_array;
return $address_fields;
}
并在下面的(计算运费)区号中添加购物车页面中的地区
'woocommerce_shipping_calculator_enable_postcode', true ) ) : ?>
<p class="form-row form-row-wide" id="calc_shipping_postcode_field">
<?php
// HERE <===== define your array of cities
$postcodes = array('ALMOHAMMDIAH','ALNAEEM','ALZAHRRA');
$current_postcode = esc_attr( WC()->customer->get_shipping_postcode() );
?>
<select name="calc_shipping_postcode" id="calc_shipping_postcode">
<option value=""><?php _e( 'Select a District…', 'woocommerce' ); ?></option>
<?php foreach( $postcodes as $postcode ):
echo '<option value="'.$postcode.'" '.selected( $current_postcode, $postcode ).'>'.$postcode.'</option>';
endforeach; ?>
</select>
</p>
然后我将邮政编码/邮政编码更改为下面这个核心的地区
function my_text_strings( $translated_text, $text, $domain ) {
switch ( $translated_text ) {
case 'Postcode / ZIP' :
$translated_text = __( 'District', 'woocommerce' );
break;
}
return $translated_text;
}
add_filter( 'gettext', 'my_text_strings', 20, 3 );
上面的所有代码都是我在网上找到的,改了一些文字,就可以正常工作了。
现在的问题是 WooCommerce 后端的邮政编码迫使我使用全部大写。有些地区必须有空间,我需要这样做,但我想不通。如何使后端的邮政编码接受空格或至少 - 或 _ ?
喜欢(AL MOHAMMDIAH 或 AL-MOHAMMDIAH)而不是(ALMOHAMMDIAH)
顺便说一句,上面的代码我限制了所有地区,因此计算有效。如果我添加了空格,_ 或 - 它会崩溃并且什么都没有显示。
【问题讨论】:
标签: php wordpress woocommerce