我使用WordPress,Woocommerce和插件,WooReer(按距离交付成本).
目标:如果太远,则禁用交付选项,并添加消息传递以让用户知道它太远。(如果总额低于30美元,则无法交付)。
到目前为止:
我已经设置了999,999美元的交货成本,如果它是在交货区之外,我想用一些话来代替,比如,“太远了,交货”。
我有一个子主题,并有一些代码,工程-但它似乎只有工作时,我刷新购物车页面。我需要找到一种方法,让它工作时,产品数量更新的购物车页面上,当一个交货地址更新。
下面是我的代码:
shipping_method_0_local_pickup20 -本地拾取的无线电输入的名称shipping_method_0_wcsdm16 -交货的无线电输入的名称
jQuery(document).ready(function($) {
var total = jQuery('.order-total').text().replace(',','').match(/(\d+)/g)[0];
if(jQuery('#shipping_method_0_local_pickup20').prop('type') == 'hidden' & total >=30 ) {
var newText = jQuery('.woocommerce-shipping-destination').parent().html().replace("Delivery address", "Enter delivery address");
jQuery('.woocommerce-shipping-destination').parent().html(newText);
} else if(jQuery('#shipping_method_0_local_pickup20').prop('type') == 'hidden') {
jQuery('.woocommerce-shipping-destination').hide();
jQuery('.shipping-calculator-button').hide();
jQuery('#shipping_method_0_local_pickup20').show();
jQuery('#shipping_method_0_local_pickup20').prop('checked', true);
}
else if(jQuery('#shipping_method_0_wcsdm16').parent().text().indexOf('999,999') != -1 ) {
jQuery('#shipping_method_0_wcsdm16').hide();
jQuery('#shipping_method_0_wcsdm16').parent().html('<b>Address too far for delivery</b>') ;
} else {
// do nothing
}
}
)
1条答案
按热度按时间wnrlj8wa1#
第一件事
1.我认为在第一个if语句中,对于AND语句,你需要使用'&&':
1.如果你不想刷新页面来查看更改,你需要 AJAX 方法,使用admin-ajax API或wp-rest api。不幸的是,我不认为WooReer AJAX 方法来立即更新交付条件而不刷新。你可以自己写(这并不复杂),但如果你觉得这很麻烦
1.一些插件如this AJAX 方法来检查地址。
现在,一些sidenotes:
随着时间的推移,这种去嵌套风格会感觉更自然。