如何在Asgaros论坛发帖前添加GDPR隐私同意复选框
为Asgaros论坛添加发帖/发主题前必填GDPR隐私同意复选框
以下是适配Asgaros论坛的PHP代码,可实现发帖和创建主题前必须勾选隐私政策同意的功能,符合GDPR合规要求:
// 在发帖表单和主题创建表单中添加隐私同意复选框 add_action('asgarosforum_before_new_post_form', 'add_asgaros_privacy_checkbox'); add_action('asgarosforum_before_new_topic_form', 'add_asgaros_privacy_checkbox'); function add_asgaros_privacy_checkbox() { ?> <div class="asgarosforum-privacy-checkbox"> <label for="asgaros_privacy_agree"> <input type="checkbox" id="asgaros_privacy_agree" name="asgaros_privacy_agree" required> 我已阅读并同意<a href="/privacy-policy">隐私政策</a> </label> </div> <?php } // 验证发帖提交时的隐私同意状态 add_filter('asgarosforum_validate_new_post', 'validate_asgaros_privacy_agreement', 10, 2); // 验证主题创建提交时的隐私同意状态 add_filter('asgarosforum_validate_new_topic', 'validate_asgaros_privacy_agreement', 10, 2); function validate_asgaros_privacy_agreement($errors, $data) { // 检查复选框是否被勾选 if (!isset($_POST['asgaros_privacy_agree']) || $_POST['asgaros_privacy_agree'] !== 'on') { $errors[] = __('请阅读并同意我们的隐私政策后再提交内容。', 'asgarosforum'); } return $errors; }
代码说明:
- 插入复选框:借助Asgaros论坛原生钩子
asgarosforum_before_new_post_form和asgarosforum_before_new_topic_form,将隐私同意复选框嵌入发帖、主题创建表单的前置位置。 - 双重验证:前端通过
required属性强制用户勾选;后端通过表单提交验证钩子拦截未勾选的请求,避免绕过前端限制的违规提交。 - 错误提示:未勾选时会在表单顶部弹出自定义提示,引导用户完成合规操作。
使用提示:
- 将代码添加至WordPress主题的
functions.php文件,或通过自定义代码插件(如Code Snippets)导入。 - 替换代码中的
/privacy-policy为你网站实际的隐私政策页面路径。 - 如需调整样式,可通过
.asgarosforum-privacy-checkbox类编写自定义CSS规则。
内容的提问来源于stack exchange,提问作者Luka Soldo
相关产品推荐
相关产品推荐

