Woocommerce使用Ajax在购物车中添加额外费用

时间:2020-02-19 11:07:07

标签: wordpress woocommerce cart fee

我正在尝试在无页面加载的情况下通过单击按钮在结帐页面中添加额外的费用,但是它不起作用。请看一下代码:

// localizeing script
add_action('init', 'custom_script_init');
function custom_script_init(){  
    wp_register_script('custom_script', get_template_directory_uri() . '/js/custom.js', array('jquery'), '', true );
    wp_enqueue_script('custom_script');        

    wp_localize_script( 'custom_script', 'custom_script_object', array(
                'ajaxurl' => admin_url( 'admin-ajax.php' )
    ));
}    

add_action( 'wp_ajax_nopriv_subscriptionUpdate', 'subscriptionUpdateFunction' );
add_action( 'wp_ajax_subscriptionUpdate', 'subscriptionUpdateFunction' );


// Processing Ajax request    
function subscriptionUpdateFunction(){

    add_action( 'woocommerce_cart_calculate_fees','endo_handling_fee', 20, 1 );

    function endo_handling_fee() {
        global $woocommerce;

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

    wp_die();
}

下面的这段代码可以在'subscriptionUpdateFunction'函数之外正常运行,但是不能在该函数内部运行。

add_action( 'woocommerce_cart_calculate_fees','endo_handling_fee', 20, 1 );

function endo_handling_fee() {
   global $woocommerce;

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

0 个答案:

没有答案
相关问题