1 回答
TA贡献1851条经验 获得超4个赞
PHP 不是这种方式,因为这是“客户端” (而不是“服务器端”)的事件,因此它需要使用 jQuery。因此,要隐藏特定运输方式的运输字段部分,您将使用以下内容:
// Auto Show hide checkout shipping fields section based on chosen shipping methods
add_action( 'wp_footer', 'custom_checkout_field_script' );
function custom_checkout_field_script() {
// Only on checkout page
if( is_checkout() && ! is_wc_endpoint_url() ):
// HERE below define your local pickup shipping method
$local_pickup = 'local_pickup:1';
// Jquery code start
?>
<script>
jQuery(function($){
var a = 'checked',
b = 'input#ship-to-different-address-checkbox',
c = 'input[name^="shipping_method"]',
d = '<?php echo $local_pickup; ?>',
e = c + ':' + a
f = 'div.woocommerce-shipping-fields,' + b;
// 1. On load: when the chosen shipping method is our defined shipping method
if( $(e).val() === d ) {
// Hide shipping fields section
$(f).hide();
}
// 2. On shipping method "change" (Live event)
$( 'form.checkout' ).on( 'change', c, function() {
// When the chosen shipping method is our defined shipping method
if( $(e).val() === d ) {
// if the checkbox is checked, uncheck it first
if ( $(b).prop(a) ) {
$(b).click();
}
// Hide shipping fields section
$(f).hide();
} else if ( $(e).val() !== d ) {
// show closed shipping fields section with (unchecked checkbox)
$(f).show();
}
});
});
</script>
<?php
endif;
}
代码进入您的活动子主题(或活动主题)的 functions.php 文件。测试和工作。
- 1 回答
- 0 关注
- 127 浏览
添加回答
举报