将购物车页面(运费计算器)中的邮政编码字段更改为下拉列表



当有人试图在购物车页面的运输计算器中键入邮政编码时,我想制作一个下拉字段,这样他就可以选择该字段,而不是键入它。

我已经成功地在结账现场做到了,看看其他人是如何在StackOverflow做到的。

这是我放在function.php中的代码,它在结账时工作:

add_filter( 'woocommerce_default_address_fields' , 'custom_override_default_postcode_field' );
function custom_override_default_postcode_field( $address_fields ) {
// Your postcodes array
$postcode_array = array(
'70101' => "70101",
'70202' => "70202",
'70220' => "70220",
'70223' => "70223",
'89245' => "89245",
'89247' => "89247"
);
$address_fields['postcode']['type'] = 'select';
$address_fields['postcode']['options'] = $postcode_array;
return $address_fields;
} 

然后我把shipping-calculator.php放在我的主题wooccommerce购物车php文件中,我不知道如何在购物车中创建下拉字段。

这是从woocommerce an shipping-calculator.php输入邮政编码的代码:

<?php if ( apply_filters( 'woocommerce_shipping_calculator_enable_postcode', true ) ) : ?>
<p class="form-row form-row-wide" id="calc_shipping_postcode_field">
<input type="text" class="input-text" value="<?php echo esc_attr( WC()->customer->get_shipping_postcode() ); ?>" placeholder="<?php esc_attr_e( 'Postcode / ZIP', 'woocommerce' ); ?>" name="calc_shipping_postcode" id="calc_shipping_postcode" />
</p>
<?php endif; ?>

请问我该如何使它成为下拉列表?

<?php if ( apply_filters( 'woocommerce_shipping_calculator_enable_postcode', true ) ) : ?>
<p class="form-row form-row-wide" id="calc_shipping_postcode_field">
<select name="calc_shipping_postcode" id="calc_shipping_postcode">
<option value=""><?php _e( 'PostCode;', 'woocommerce' ); ?></option>
<?php
$postcode_array = array(
'70101'  => "70101",
'70202'  => "70202",
'70220'  => "70220",
'70223'  => "70223",
'89245'  => "89245",
'89247'  => "89247"
);
foreach ( $postcode_array as $key => $value ) {
?>
<option value="<?php echo $key; ?>"  <?php selected( esc_attr( WC()->customer->get_shipping_postcode() ), $key, 1 ) ?>><?php echo $value; ?></option>
<?php
}
?>
</select>

</p>
<?php endif; ?>

在模板覆盖中修改此部分

相关内容

最新更新