在WooCommerce中,我使用以下代码向客户注册表单中添加自定义“隐私”复选框:
// 向注册表单添加复选框 add_action( 'woocommerce_register_form', 'add_privacy_checkbox_registration' ); function add_privacy_checkbox_registration() { $checkbox_text = sprintf( '%s %s', __( 'Я прочитал и согласен с' ), esc_url( site_url('/politic-conf/') ), __( 'политикой конфиденциальности' ) ); ?>add( 'privacy_policy_reg_error', 'Вам нужно принять политику конфиденциальности.' ); } return $errors; }
代码是有效的。复选框已添加。复选框逻辑也有效。 也就是说,如果您不勾选复选框,将无法进行用户注册。
但是存在一个问题。如果未点击复选框,则错误文本不会显示在屏幕上...
这是我的网站上有问题的页面 - 问题页面
有什么想法吗?
你尝试过没有这个吗?
由于过滤器是一个注册过滤器,所以似乎那段代码是不必要的,因为它不会在结账时被调用。尝试注释掉那个代码块,然后再次测试注册。如果它能工作,那么也要测试一下结账流程,确保它没有出错。
return $errors;
会结束函数,错误不会被添加。当然,我会假设is_checkout()
会在注册时返回false,但也许在注册时它会因某种原因返回true?总之,只是一个尝试。
我已经在测试网站上测试了你的代码,对我来说它运行正常,当复选框未被选中时会显示错误提示...
现在在最后一个函数中有一些缺失的东西,你在
add_filter()
部分声明了3个参数,所以还缺少2个。同时我还简化了你的代码这里只是最后一个函数的修改后代码:
现在我不确定这是否能解决你的问题,因为在你的网站上提交后页面会重新加载,所以错误消息没有时间显示。