ADD_USER_META允许多次点击并插入一个以上的值

时间:2018-06-28 作者:Jake Punton

我刚刚检查了我的表单上的双击,它插入了新的用户元,实际上插入了两次!问题是,我实际上需要这些值是非唯一的,以便可以多次插入。

我的目标很简单,将表单中的数据发布到user_meta表格只从表格中插入一次,但似乎插入了两次、三次。。。我点击提交按钮的次数。

我尝试了以下Javascript:

var wasSubmitted = false;    
function checkBeforeSubmit(){
  if(!wasSubmitted) {
    wasSubmitted = true;
    return wasSubmitted;
  }
  return false;
}  
什么都没发生,我想知道,我如何用PHP做到这一点?或者甚至是一点Javascript都可以实际工作。

理想情况下,我不想使用jQuery,我更喜欢简单的JS。

2 个回复
SO网友:Otto

如果您查看add\\u user\\u meta,则不知道,但它需要一个可选的第四个参数。

function add_user_meta( $user_id, $meta_key, $meta_value, $unique = false )
将“true”发送到$唯一值,它不会插入两次。

https://developer.wordpress.org/reference/functions/add_user_meta/

SO网友:not_a_generic_user

尝试在JS中执行此操作的效率远远低于在后端执行此操作的效率。让JS随意调用脚本,只需让PHP防止重复。不幸的是,似乎没有内置的方法。你必须手动检查,但这不是很难。而不是:

add_user_meta($userid,$yourkey,$valuetoadd);
执行以下操作:

$yourkey_arr = get_user_meta($user_id,\'yourkey\');
if (!in_array($valuetoadd,$yourkey_arr))
    add_user_meta($user_id,\'yourkey\',$valuetoadd);

结束

相关推荐