如何在自定义字段选择框的更改中添加购物车的运费

时间:2017-07-24 13:46:35

标签: wordpress woocommerce shipping

我正在尝试更新自定义字段更改的运费总成本。我的jQuery代码工作正常,但我的函数wocommerce钩子没有调用。

我正在使用这个jQuery代码:

<script>
jQuery( document ).ready(function( $ ) {

  jQuery('#myfield2').change(function(){
        var data = {
            action: 'wp_ajax_woocommerce_cart_calculate_fees',
            state: '200',
            vals: jQuery(this).val()
        };
        jQuery.ajax({
            type: 'POST',
            url: wc_checkout_params.ajax_url,
            data: data,
            success: function (code) {
                console.log(code);
                jQuery('body').trigger('update_checkout');
            },
            dataType: 'html'
        });

  });
});
</script>

PHP代码:

add_action( 'wp_ajax_woocommerce_cart_calculate_fees','endo_handling_fee' );
function endo_handling_fee() {
     global $woocommerce;
     $post_data="--";
    if ( isset( $_POST) ) {
       parse_str( $_POST['vals'], $post_data );
    }
    print_r($post_data);
    /* if ( is_admin() && ! defined( 'DOING_AJAX' ) )
          return;*/
     //$vals=$_POST['vals']; 
     $fee = 10.00;
         if($vals=='Yes')
     { 
        $fee = 50.00;
     }


     $woocommerce->cart->add_fee( 'Handling', $fee, true, 'standard' );
}

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

在以下行后添加一行 -

add_action( 'wp_ajax_woocommerce_cart_calculate_fees','endo_handling_fee' );

要添加的行 -

add_action( 'wp_ajax_nopriv_woocommerce_cart_calculate_fees','endo_handling_fee' );