在Woocommerce中,我在结账页面上添加了两个自定义单选按钮,并在单击时调用 AJAX 函数来添加送货费。
下面是我的代码:
$(document).on('change','#shipping_method_0_local_pickup5',function(e) {
$('.woocommerce-shipping-fields').css({
'display': 'none'
});
$("#deli").css("display","block");
var selected = $("input[type='radio'][name='post-del']:checked");
var selectedVal = selected.val();
var pickurl= "<?php echo admin_url('admin-ajax.php');?>?action=delivery";
$.ajax({
url: pickurl,
type: "POST",
data:{
input:selectedVal,
},
success: function(responseText)
{
jQuery(".order-total .woocommerce-Price-amount").html(responseText);
//$(".discount_code").css("display","block");
}
});
});
当单选按钮单击“我想在我的总价中添加2美元”时。
add_action( 'wp_ajax_delivery', 'delivery' );
add_action( 'wp_ajax_nopriv_delivery', 'delivery' );
function delivery()
{
//My code
do_action( 'woocommerce_cart_calculate_fees', 'prefix_add_discount_line' ); // not working
exit;
}
注意:这是更新代码的钩子
add_action( 'woocommerce_cart_calculate_fees', 'prefix_add_discount_line' );
function prefix_add_discount_line( $cart ) {
$discount = $cart->subtotal + 2;
$cart->add_fee( __( 'Delivery', 'yourtext-domain' ) , +$discount );
}
1条答案
按热度按时间nhhxz33t1#
您应该在问题中给予所有必要的相关代码。请记住 “问题寻求调试帮助(“为什么这段代码不工作?“)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码"。
因此,在下面的代码中,您将找到一个完整的工作解决方案,具有额外的自定义单选按钮,它将根据所选单选按钮和“本地拾取”运输方法动态添加送货费用。
代码 (您需要在其中定义目标“本地拾取”方法ID):
代码放在活动子主题(或活动主题)的functions.php文件中。测试和作品。