WordPress CPT具有登录和注册的能力

时间:2016-08-12 16:49:15

标签: php wordpress

我们负责一个WordPress插件,作为其功能的一部分,它有一个名为“申请人”的自定义帖子类型。这些是希望购买房产的申请人,因此可以记录他们可以记录联系方式和搜索要求等内容。

现在......我们需要让这些申请人能够登录并执行各种操作,例如将属性保存到“收藏夹”列表,或编辑他们自己的要求。

如果我们从头开始构建插件,我会把它们作为用户完成,但是这是一个数百人使用的插件,所以我们没有那么奢侈,必须把它作为CPT。

我的问题是......在允许这些人登录和注册的同时,我怎样才能保持CPT。

我最初的两个想法是:

  1. 对于每个自定义帖子,您都有一个WordPress用户并保持两个同步(即如果用户被删除,则同时删除自定义帖子)。这样你就可以使用WordPress提供的内置登录和安全功能,但你有这个噩梦,试图让两者保持同步。
    1. 我们构建自己的自定义“登录”和“注册”功能。我们将电子邮件地址和密码存储在自定义帖子中,并使用它来验证它们。然后还执行我们自己的会话管理等。
      1. 最后一个选择是我们完全废弃CPT并只使用'用户'。然后编写某种迁移脚本,将CPT移交给用户。
      2. 希望这是有道理的。任何想法/想法都是最受欢迎的。

2 个答案:

答案 0 :(得分:3)

根据我的经验,我已经为WooThemes Storefront,WooThemes Canvas和WooCommerce以及一些独立的插件编写和管理了2个页面构建器和十几个其他插件...

  

最后一个选项是我们完全废弃CPT并只使用“用户”#。然后编写某种迁移脚本,将CPT移交给用户。

根据我的经验,迁移脚本适用于小的更改,例如,在您的情况下为帖子类型添加新的默认元字段,但更改对插件函数如此重要的内容不仅需要大量工作(如查询)用户而不是帖子)但也会让你的用户疯狂,他们使用的可能就像使用自定义的帖子循环...所以这是不推荐

  

我们建立自己的自定义'登录'并且'注册'功能。我们将电子邮件地址和密码存储在自定义帖子中,并使用它来验证它们。然后还执行我们自己的会话管理等。

对于内置于WordPress中的内容来说,这又是太多的工作......也可以跳过这个......

  

对于每个自定义帖子,您都有一个WordPress用户并保持两个同步(即如果用户被删除,则同时删除自定义帖子)。这样你就可以使用WordPress提供的内置登录和安全功能,但是你有这个噩梦,试图让两者保持同步。

所以事实证明第一个选项似乎是最好的选择...你可以简单地使用user_registerprofile_update钩子来保持帖子与用户同步并save_post挂钩让用户与帖子同步。还有一个plugin activation hook可以在激活新版本时从帖子中生成用户。

希望有所帮助。

答案 1 :(得分:2)

我更愿意在wordpress中使用具有角色的用户。

您可以创建另一个角色“申请人”并为其分配所需的功能。这样它就会成为用户模块的一部分,你可以在user_meta中添加尽可能多的信息,这是wordpress默认用来存储用户的额外信息。

很少有关于添加用户角色和功能以及user_meta的参考。

Add Role

Add Capability

Add User Meta

希望这可以帮助您以wordpress CMS的标准方式进行。