将购物车页面的邮编字段(运费计算器)改为下拉式。

问题描述 投票:0回答:1

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

我在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 wordpress templates woocommerce shipping
1个回答
0
投票
<?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; ?>

在模板覆盖修改本节

© www.soinside.com 2019 - 2024. All rights reserved.