如何防止多个用户帐户具有相同的元字段?

时间:2019-10-11 作者:Robert Anderson

我在wordpress上运行一个电子商务网站。

用户在与我结账时填写一个特定的元字段。假设它是用户的地址。

我想设置我的网站,这样,没有两个用户可以签出/创建具有相同地址的帐户。

与wordpress内置的功能非常相似,因此没有两个用户可以拥有相同的电子邮件。唯一的区别是,它将基于用户上的自定义元字段。

或者,另一种方法是在签出时运行一个定制php钩子,该钩子将查询站点上的所有用户,并查看是否有任何用户包含匹配的元字段。从这里,我可以拒绝订单&;向用户发送电子邮件,通知他们该问题,以便我可以跟进并尝试解决他们的问题。有没有一种方法可以向所有用户查询匹配的元字段,而不会给服务器带来沉重的负载?我想我可以只为这个元字段创建一个单独的数据库条目,以便快速查询它,但我觉得这可能是设计过度了。

这两种方法都可以奏效。

非常感谢你的建议!

1 个回复
SO网友:KGreene

您可以使用add\\u post\\u meta和update\\u post\\u meta过滤器来完成此操作。如果在这些过滤器中返回除null以外的任何内容,则不会保存post meta。

add_filter(\'add_post_metadata\', \'check_metadata\', 10, 5);

function check_metadata($check, $object_id, $meta_key, $meta_value, $prev_value){

/*** Check if the metadata exists via sql ***/
    if($exists) {
         /*** Notify you or something ***/
         return true;
     else {
         return;
     }
}

相关推荐

Users activity history

当我们更改代码上的一些问题时,wordpress web出现了一些问题,我想确定是哪些更改导致了web崩溃。我尝试了一些插件作为简单的历史记录,但问题是,您无法在安装插件之前获得所做的活动。有人知道即使我们没有安装插件,我如何才能获得网站的全部活动吗?提前谢谢。