如何解决根据选择的运输有条件地隐藏 WooCommerce 中的付款字段
在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 举报,一经查实,本站将立刻删除。