2015-06-20 101 views
3

如何获取单选按钮组,以更新WooCommerce结帐页上选中的结算总计中列出的Surchage,然后选择其中一个。单选按钮A的选择需要增加0.05%作为附加,因为单选按钮B将增加0.10%。WooCommerce基于结账中的单选按钮的动态Surchage

我知道我可以添加静态收费有以下:

add_action('woocommerce_cart_calculate_fees','woocommerce_custom_surcharge'); 
function woocommerce_custom_surcharge() { 
global $woocommerce; 

if (is_admin() && ! defined('DOING_AJAX')) 
    return; 

// $percentage is what will change based on which button is selected A or B 
// however this is not executed after the page is loaded 
$percentage = 0.05; 

$surcharge = ($woocommerce->cart->cart_contents_total + $woocommerce->cart->shipping_total) * $percentage;  
$woocommerce->cart->add_fee('Service Fee', $surcharge, true, 'standard'); 

} 

回答

1

所以我通过AJAX解决了这个问题,处理按钮更改并调用设置WC-> session-> set变量的PHP回调函数。然后在AJAX中发布一个location.reload,强制functions.php重新加载。在我的收费过滤器中,我检查了会话变量,并根据会话值添加了费用。

0

也许这样的事情会让你开始。我不认为它会自动添加费,但我没有测试它,它只是一个想法:

jQuery(document).ready(function($){ 

    if (typeof wc_checkout_form === 'undefined' ||) { 
     return false; 
    } 

    $checkout_form = $('form.checkout'); 
    $checkout_form.on('change', '.your_radio_buttons_class', function(){ 
     wc_checkout_form.wc_checkout_form(); 
    }); 

}); 

我相信你会需要利用checkout script,所以你要确保你的自定义脚本在checkout.js之后加载。