php - 如何在 wordpress 中为多个用户角色创建单个表单
问题描述
我正在构建一个 WordPress 网站,在该网站中我需要一个表单,两个用户将填写这个表单。
就像第 1 部分将由来宾填写,第 2 部分也将是现有用户一样,我需要在仪表板中显示表单记录。
此外,必须为来宾用户禁用第二部分。
解决方案
您至少有 2 个非常强大的选项。
“免费”的方式是使用 PHP 构建您自己的表单,并利用 WordPress 的is_user_logged_in()
功能来显示/隐藏第二部分。(您会希望下半部分甚至不呈现到页面,而不仅仅是作为最佳实践“隐藏”)。
另一种方法是使用可以说是最强大的 WordPress 表单生成器插件之一:GravityForms。请注意,我不隶属于他们,但我的机构已经使用 Gravity Forms 十年了,而且它的可扩展性令人难以置信。与原生 WordPress 一样,Gravity Forms 有大量的 Hooks 和 Filters 来修改表单、输出、管理显示等。
您可以构建整个表单并使用gform_pre_render
过滤器根据返回的值修改表单is_user_logged_in()
。这样做的缺点是它是一个高级插件,但它有一个庞大的社区,用它做了一些非常巧妙的事情。一个好处是它已经完成了仪表板条目显示,因此您不需要在这方面做太多事情。
无论哪种方式,您都需要完成大量工作(无论是使用自定义构建的 PHP 表单还是插件),但要显示哪些部分背后的逻辑非常简单,并且仅基于is_user_logged_in()
函数。
推荐阅读
- java - 如何将 ListActivity 转换为 AppCompatActivity
- sql - 如何按相关权限过滤查询
- c# - 一旦我添加了自定义 ExceptionFilter,Serilog 就会停止记录异常
- amazon-web-services - 参数部分中的交叉堆栈引用
- flutter - Flutter RichText 或其他动态内容标记
- java - 使用 Java 的数据库测试自动化 - 触发 ETL 作业
- c - 在 Windows 中发送原始 arp 回复数据包
- excel - 获取命名范围值
- python - 创建模型对象时如何分配外键相关字段
- python - 列 res_company.write_uid_id 不存在