在Woocommerce中,只要选择“送货”或“拾取”,我都试图隐藏付款领域。我已经尝试了几次从 Conditionally hide a Checkout field in WooCommerce based on chosen shipping 答案代码。
我希望何时选择送货方式:
我的脚本:
// 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
}