我正在尝试创建一个有条件的复选框,该复选框根据结帐期间用户的运输和开票状态显示/隐藏。目前,我找不到有条件地显示此信息的方法。我只需要在用户从加利福尼亚退房时显示该复选框即可。我也有一个警告文本框,需要根据州进行显示,并且能够进行此操作。由于某些原因,当选择加利福尼亚州作为州时,我似乎无法仅显示该复选框。
我尝试使用允许文本警告显示/隐藏的脚本,但不适用于该复选框。
** / add_action('woocommerce_after_checkout_form','my_custom_checkout_field');
function my_custom_checkout_field($ checkout){
echo '<div id="my-new-field"><h3>'.__(' ').'</h3>';
woocommerce_form_field( '', array(
'type' => 'checkbox',
'class' => array('input-checkbox'),
'label' => __('Yes, I Understand.'),
'required' => true,
), $checkout->get_value( '' ));
echo '</div>';
}
/ ** *处理结帐 ** / add_action('woocommerce_checkout_process','my_custom_checkout_field_process');
function my_custom_checkout_field_process(){ 全球$ woocommerce;
// Check if set, if its not set add an error.
if (!$_POST['my_checkbox'])
$woocommerce->add_error( __('Please agree to my checkbox.') );
}
//第一步 //创建Prop 65警告消息,并将其挂接到Order Review之后的WooCommerce中 //“ display:none”默认情况下,我们已隐藏警告消息
add_action('woocommerce_after_checkout_form','show_prop_message');
function show_prop_message(){ echo'placeholderforpicture” /> 警告,在此商店网站上出售的某些产品可能包含加利福尼亚州已知的化学物质,从而导致癌症,出生缺陷或其他生殖伤害。详细信息
//第二步 //根据帐单和运输状态显示或隐藏警告消息 //如果未选中“发送到其他地址”复选框,则会在结算状态选择时触发第一个触发器 //如果勾选了“发送到其他地址”复选框,则会触发第二个触发器 //最初,“ display:none”默认情况下隐藏警告消息
add_action('woocommerce_before_checkout_form','show_warning_message');
函数show_warning_message(){
?>
<script>
jQuery(document).ready(function($){
// Set the shipping state 2 char code (This selection will fire the warning message display)
// Fires secondary if shipping state is set to California
var stateCode = 'CA';
$('select#shipping_state').change(function(){
selectedState = $('select#shipping_state').val();
if( selectedState == stateCode ){
$('.prop65-warning').show();
}
else {
$('.prop65-warning').hide();
}
});
});
</script>
<script>
jQuery(document).ready(function($){
// Set the billing state 2 char code (This selection will fire the warning message display)
// Fires initially if billing state is California
var stateCode = 'CA';
$('select#billing_state').change(function(){
selectedState = $('select#billing_state').val();
if( selectedState == stateCode ){
$('.prop65-warning').show();
}
else {
$('.prop65-warning').hide();
}
});
});
</script>