【发布时间】:2019-02-18 19:23:17
【问题描述】:
让我们浏览一下场景:
客户在结账页面,有一个带有文字的复选框:“这是礼物吗?”
如果选中复选框,下面的字段将淡入以记录笔记。
基于这个线程和其他一些线程是我的代码:
add_filter( 'woocommerce_checkout_fields' , 'display_checkbox_and_new_checkout_field' );
function display_checkbox_and_new_checkout_field( $fields ) {
$fields['billing']['checkbox_trigger'] = array(
'type' => 'checkbox',
'label' => __('Checkbox label', 'woocommerce'),
'class' => array('form-row-wide'),
'clear' => true
);
$fields['billing']['new_billing_field'] = array(
'label' => __('New Billing Field Label', 'woocommerce'),
'placeholder' => _x('New Billing Field Placeholder', 'placeholder', 'woocommerce'),
'class' => array('form-row-wide'),
'clear' => true
);
return $fields;
}
add_action( 'woocommerce_after_checkout_form', 'conditionally_hide_show_new_field', 6 );
function conditionally_hide_show_new_field() {
?>
<script type="text/javascript">
jQuery('input#checkbox_trigger').change(function(){
if (this.checked) {
jQuery('#new_billing_field_field').fadeOut();
jQuery('#new_billing_field_field input').val('');
} else {
jQuery('#new_billing_field_field').fadeIn();
}
});
</script>
<?php
}
问题是选中框时应该淡入的字段已经可见。
如何更改脚本以使其在加载时不可见?
【问题讨论】:
-
您可以在脚本标签中添加类似的内容以在页面加载时隐藏元素:
$(document).ready(function() { $("#new_billing_field").hide(); }); -
@tshimkus 我应该在哪里添加它?该脚本应该专门在结帐页面上加载,但我应该使用哪个文件?
-
它可以去任何地方,但是代码中现有的脚本标签可以工作。它会在页面加载时隐藏表单。
标签: php jquery wordpress woocommerce checkout