如何将输入字段“地址”添加到运输计算器?

问题描述

我的运费计算器表格有问题。

我想添加一个地址字段,并在更新用户地址时更改它。

我目前有此代码

defined( 'ABSPATH' ) || exit;

do_action( 'woocommerce_before_shipping_calculator' ); ?>

<form class="woocommerce-shipping-calculator" action="<?PHP echo esc_url( wc_get_cart_url() ); ?>" method="post">

    <?PHP printf( '<a href="#" class="shipping-calculator-button">%s</a>',esc_html( ! empty( $button_text ) ? $button_text : __( 'Calculate shipping','woocommerce' ) ) ); ?>

    <section class="shipping-calculator-form" style="display:none;">

        <?PHP if ( apply_filters( 'woocommerce_shipping_calculator_enable_country',true ) ) : ?>
            <p class="form-row form-row-wide" id="calc_shipping_country_field">
                <select name="calc_shipping_country" id="calc_shipping_country" class="country_to_state country_select" rel="calc_shipping_state">
                    <option value=""><?PHP esc_html_e( 'Select a country / region&hellip;','woocommerce' ); ?></option>
                    <?PHP
                    foreach ( WC()->countries->get_shipping_countries() as $key => $value ) {
                        echo '<option value="' . esc_attr( $key ) . '"' . selected( WC()->customer->get_shipping_country(),esc_attr( $key ),false ) . '>' . esc_html( $value ) . '</option>';
                    }
                    ?>
                </select>
            </p>
        <?PHP endif; ?>

        <?PHP if ( apply_filters( 'woocommerce_shipping_calculator_enable_state',true ) ) : ?>
            <p class="form-row form-row-wide" id="calc_shipping_state_field">
                <?PHP
                $current_cc = WC()->customer->get_shipping_country();
                $current_r  = WC()->customer->get_shipping_state();
                $states     = WC()->countries->get_states( $current_cc );

                if ( is_array( $states ) && empty( $states ) ) {
                    ?>
                    <input type="hidden" name="calc_shipping_state" id="calc_shipping_state" placeholder="<?PHP esc_attr_e( 'State / County','woocommerce' ); ?>" />
                    <?PHP
                } elseif ( is_array( $states ) ) {
                    ?>
                    <span>
                        <select name="calc_shipping_state" class="state_select" id="calc_shipping_state" data-placeholder="<?PHP esc_attr_e( 'State / County','woocommerce' ); ?>">
                            <option value=""><?PHP esc_html_e( 'Select an option&hellip;','woocommerce' ); ?></option>
                            <?PHP
                            foreach ( $states as $ckey => $cvalue ) {
                                echo '<option value="' . esc_attr( $ckey ) . '" ' . selected( $current_r,$ckey,false ) . '>' . esc_html( $cvalue ) . '</option>';
                            }
                            ?>
                        </select>
                    </span>
                    <?PHP
                } else {
                    ?>
                    <input type="text" class="input-text" value="<?PHP echo esc_attr( $current_r ); ?>" placeholder="<?PHP esc_attr_e( 'State / County','woocommerce' ); ?>" name="calc_shipping_state" id="calc_shipping_state" />
                    <?PHP
                }
                ?>
            </p>
        <?PHP endif; ?>

        <?PHP if ( apply_filters( 'woocommerce_shipping_calculator_enable_city',true ) ) : ?>
            <p class="form-row form-row-wide" id="calc_shipping_city_field">
                <input type="text" class="input-text" value="<?PHP echo esc_attr( WC()->customer->get_shipping_city() ); ?>" placeholder="<?PHP esc_attr_e( 'City','woocommerce' ); ?>" name="calc_shipping_city" id="calc_shipping_city" />
            </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">
                <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; ?>
        
        <!-- Start New Field -->
        <p class="form-row form-row-wide" id="shipping_address_field">
            <input type="text" class="input-text" value="<?PHP echo esc_attr( WC()->customer->get_shipping_address() ); ?>" id="shipping_address_field" name="shipping_address_field" placeholder="Ingrese su nueva dirección">
        </p>
        <!-- End New Field -->

        <p><button type="submit" name="calc_shipping" value="1" class="button"><?PHP esc_html_e( 'Update','woocommerce' ); ?></button></p>
        <?PHP wp_nonce_field( 'woocommerce-shipping-calculator','woocommerce-shipping-calculator-nonce' ); ?>
    </section>
</form>

<?PHP do_action( 'woocommerce_after_shipping_calculator' ); ?>

我可以添加地址字段,但无法使用它,如何从运输计算器中更新用户的地址?送货是免费的,我只想更新地址。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)