BuddyPress用户注册验证不使用自定义SELECT查询

时间:2017-03-20 作者:Terungwa

我已经创建了一个电话号码作为Buddypress配置文件字段。我需要检查两个或更多的用户帐户是否共享同一个电话号码。我下面的查询没有强制执行该限制。

我需要帮助来解决这个问题。

function bp_phone_number_validate() {
   global $bp;
   global $wpdb;

  // check if phone number is in use
  $result=$bp->get_var("SELECT COUNT(*) FROM {$bp->profile->wp_bp_xprofile_data} WHERE value = \'{$_POST[\'field_2\']}\' GROUP BY id;");

  if($result > 0){
    $bp->signup->errors[\'field_2\'] = __( \'Phone number is already in use.\', \'buddypress\' );
  }   
}
add_action( \'bp_signup_validate\', \'bp_phone_number_validate\');

1 个回复
SO网友:shanebp

没有这样的事情$bp->get_var. 尝试使用$wpdb->get_var.

或者试试这个:

function validate_user_signup($result) {
   global $wpdb;

   $result = $wpdb->get_var("SELECT user_id FROM wp_bp_xprofile_data WHERE value = \'{$_POST[\'field_2\']}\'");

   if( $result != NULL ){

      $new_error = new WP_Error();

      $new_error->add( \'field_2\', __( \'Phone number is already in use.\', \'buddypress\' ) );

      $result[\'errors\'] = $new_error;
   } 

   return $result;
}
add_filter(\'bp_core_validate_user_signup\', \'validate_user_signup\', 10, 1);

相关推荐

按用户‘xprofile’自定义域筛选BuddyPress用户帖子

嗨,我正在努力找出如何根据用户的个人资料字段为用户的帖子制作过滤器。。示例=用户注册表选择了2017、2018学年的下拉配置文件字段,然后他们创建了一个帖子。按毕业年份的分类筛选所有帖子。。所以你只能看到那个学年的人发的帖子。有没有人知道一个插件可以做到这一点。令人困惑的是,帖子正在加载,但会根据成员详细信息进行过滤。两个单独的目录。请提供帮助或建议