我想做一个下拉字段,当有人试图在购物车页面的运费计算器中输入邮政编码时,他可以选择这个字段,而不是输入它。
我在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;
}
然后我在我的主题woocommerce cart的php文件中放了shipping-calculator.php,但我不知道如何在Cart做一个下拉字段。
这是输入邮政编码的代码从woocommerce一个航运计算器.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; ?>
在模板覆盖修改本节