Измените поле почтового индекса на странице корзины (Калькулятор доставки) на выпадающий список - PullRequest
0 голосов
/ 29 апреля 2020

Я хотел бы создать раскрывающееся поле, когда кто-то пытается ввести почтовый индекс в калькуляторе доставки на странице корзины, чтобы он мог выбрать это поле, а не набирать его.

Мне удалось сделать это в поле проверки, смотря на то, как другие люди делали это в StackOverflow.

Это код, который я ввел в функцию. 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;
} 

Затем я поместил калькулятор доставки. php в мою тему woocommerce cart php file, и я не могу понять, как сделать раскрывающееся поле в корзине.

Это код для ввода почтового индекса из 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; ?>

Как сделать так, чтобы он был выпадающим, пожалуйста?

1 Ответ

0 голосов
/ 29 апреля 2020
<?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; ?>

Изменить этот раздел в шаблоне переопределения

...