更改送货方式如何取决于自定义结帐现场数据woocommerce?

时间:2016-11-14 14:19:03

标签: wordpress woocommerce

我已在我的woocommerce结帐页面添加了自定义结帐字段。

add_filter( 'woocommerce_checkout_fields' , 'dropdown' );

function dropdown( $fields ) {
    $fields['billing']['ilce'] = array(
        'label'       => __('İlçe', 'woocommerce'),
        'placeholder' => _x('İlçe', 'placeholder', 'woocommerce'),
        'required'    => true,
        'class'       => array(
            'form-row-wide',
            'update_totals_on_change'
        ),
        'clear'       => true,
        'id'          => 'ilcepicker',
        'type'        => 'select',
        'options'     => array(
            'Ataşehir' => __('Ataşehir', 'woocommerce' ),
            'Şişli'    => __('Şişli', 'woocommerce' )
        )//end of options
    );

    return $fields;
}

我想根据从我的自定义字段中选择的选项更改送货方式。我怎样才能实现它?我找不到办法。

1 个答案:

答案 0 :(得分:0)

我还没有尝试过,但可以给出一些你可以尝试的指示。使用jquery查找所选值并将其发送到woocommerce ajax功能

function woocommerce_add_gift_box() {
    if (is_checkout()) {
    ?>
    <script type="text/javascript">
        jQuery( document ).ready(function( $ ) {            
            $('#selectedfield').click(function(){
                jQuery('body').trigger('update_checkout');
            });

        });
    </script>
    <?php
    }
}

Ajax将返回一个后期数据值

if ( ! $_POST || ( is_admin() && ! is_ajax() ) ) {
        return;
    }

    if ( isset( $_POST['post_data'] ) ) {
        parse_str( $_POST['post_data'], $post_data );
    } else {
        $post_data = $_POST; // fallback for final checkout (non-ajax)
    }

    $varField = $post_data['selectedfield'];

您可以使用此方法修改运输方式。使用if条件。

希望这有帮助。