WooCommerce-在用户检查隐私策略之前禁用“下单”

时间:2018-11-21 作者:user3211760

我使用以下方法在“签出”页面上添加了一个复选框:

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吗?

1 个回复
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: 这是为您的代码测试的脚本。

结束

相关推荐