首页 文章

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

提问于
浏览
0

我在我的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

    我没试过这个,但可以给你一些指针,你可以试试 . 使用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将返回一个post数据值

    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条件 .

    希望这可以帮助 .

相关问题