我使用以下方法在“签出”页面上添加了一个复选框:
add_action( \'woocommerce_review_order_before_submit\', \'add_privacy_checkbox\', 9 );
function add_privacy_checkbox() {
woocommerce_form_field( \'privacy_policy\', array(
\'type\' => \'checkbox\',
\'class\' => array(\'form-row privacy\'),
\'label_class\' => array(\'woocommerce-form__label woocommerce-form__label-for-checkbox checkbox\'),
\'input_class\' => array(\'woocommerce-form__input woocommerce-form__input-checkbox input-checkbox\'),
\'required\' => true,
\'label\' => \'I\\\'ve read and accept the <a href="https://website.com/privacy-policy">Privacy Policy</a>\',
));
}
add_action( \'woocommerce_checkout_process\', \'privacy_checkbox_error_message\' );
function privacy_checkbox_error_message() {
if ( ! (int) isset( $_POST[\'privacy_policy\'] ) ) {
wc_add_notice( __( \'You have to agree to our privacy policy in order to proceed\' ), \'error\' );
}
}
我想禁用签出按钮,直到用户选中“我已经阅读并接受隐私政策。这样做的最佳实践是什么?使用jQuery这是最简单的方法,但可以直接使用php吗?
SO网友:Gufran Hasan
我认为您应该jQuery来启用和禁用checkout按钮。请尝试此脚本。
将此脚本放入footer.php
.
jQuery(window).on(\'load\',function(){
setTimeout(function(){
jQuery(\'#payment #place_order\').attr("disabled","disabled");
console.log(\'Hello\');
},1000);
});
jQuery(document).on(\'change\',\'#privacy_policy_field #privacy_policy\',function() {
var ischecked= jQuery(this).is(\':checked\');
if(!ischecked){
jQuery(\'#payment #place_order\').attr("disabled","disabled");
console.log(\'unchecked\');
}else{
jQuery(\'#payment #place_order\').removeAttr("disabled");
console.log(\'checked\');
}
});
Note: 这是为您的代码测试的脚本。