问题描述
在Woocommerce中,只要选择“送货”或“拾取”,我都试图隐藏付款领域。我已经尝试了几次从 Conditionally hide a Checkout field in WooCommerce based on chosen shipping 答案代码。
我希望何时选择送货方式:
- 带走: - '隐藏' .payment_method_cod -> (OK WORKS) - 'show' .payment_method_cheque ->(不工作)
- 交货:
- '隐藏' .payment_method_cheque -> (OK WORKS)
- 'show' .payment_method_cod ->(不工作)
我该怎么做?
我的脚本:
// Conditional Show o hide checkout fields based on chosen shipping methods
add_action( 'wp_footer','hide_any_parts' );
function hide_any_parts(){
// Only on checkout page
if( ! is_checkout() ) return;
// HERE your shipping methods rate ID "Home delivery" - Take-Away Ritiro presso il Ristorante
$home_delivery = 'flat_rate:9'; //delivery
$take_away = 'flat_rate:11'; //take-away
?>
<script>
jQuery(function($){
// Choosen shipping method selectors slug
var shipMethod = 'input[name^="shipping_method"]',shipMethodChecked = shipMethod+':checked';
// Function that shows or hide imput select fields
function showHide( actionTodo='show',selector='' ){
if( actionTodo == 'show' )
$(selector).show( 200,function(){
$(this).addClass("validate-required");
});
else
$(selector).hide( 200,function(){
$(this).removeClass("validate-required");
});
$(selector).removeClass("woocommerce-validated");
$(selector).removeClass("woocommerce-invalid woocommerce-invalid-required-field");
}
//DElivery: #coderockz_woo_delivery_delivery_date_section,#coderockz_woo_delivery_delivery_time_section
// take away: #coderockz_woo_delivery_pickup_date_datepicker,#coderockz_woo_pickup_time_section
// Initialising: Hide if choosen shipping method is "Home delivery"
if( $(shipMethodChecked).val() == '<?PHP echo $home_delivery; ?>' )
showHide('hide',' .payment_method_cheque' ) ; //delivery
// Initialising: Hide if choosen shipping method is "take_away"
else if( $(shipMethodChecked).val() == '<?PHP echo $take_away; ?>' )
showHide('hide',' .payment_method_cod' ); //take-away
// Live event (When shipping method is changed)
$( 'form.checkout' ).on( 'change',shipMethod,function() {
if( $(shipMethodChecked).val() == '<?PHP echo $home_delivery; ?>' )
showHide('hide',' .payment_method_cheque') ; //delivery
else if( $(shipMethodChecked).val() == '<?PHP echo $take_away; ?>' )
showHide('hide',' .payment_method_cod' ); //take-away
else
showHide('show',' .payment_method_cod,.payment_method_cheque ');
});
});
</script>
<?PHP
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)