如何强制BuddyPress用户在注册后填写个人资料?

时间:2012-06-30 作者:Carry

对于任何其他网络来说似乎都是合乎逻辑的,但对于buddypress来说则不然:(

我们都知道buddypress中的扩展用户配置文件——问题是,即使某些字段被标记为必需,但“必需”对buddypress开发人员来说似乎没有真正的意义。所以我们有一些“必填”字段,没有人会要求用户填写这些字段。。。“很好”的工作到目前为止。。。

所以问题是。。。我们如何强制新注册的用户在能够使用网站上的任何内容之前,首先填写扩展用户配置文件中所有必需的字段!?

就像他用姓名、prename、电子邮件注册一样,一旦他登录,他将看到一个页面/屏幕,在他能够看到网站上的任何内容之前,他必须首先填写所有其他缺失的必填文件!!?

有人想知道如何做到这一点吗?已经一年多了,我想我在寻找解决方案…:-(

4 个回复
SO网友:kaiser

使用wp_redirect()admin_url() 如果自定义buddypress用户元数据未完全填充,则将用户重定向到其配置文件页面。

从另一个答案中,我看到了以下功能:bp_get_profile_field_data(). 因此,您可以轻松地构建一个模板标记,它可以为您提供完整的好友用户元数据集,或者只需FALSE 返回

如果你得到FALSE 返回,然后可以重定向用户。在get_user_metadata-胡克,你已经拿到了$current_user 设置,以便可以在template_redirect-钩

function wpse57054_is_buddy_complete( $buddy_user_fields = array() )
{
    // convert single field keys to arrays
    $buddy_user_fields = (array) $buddy_user_fields;

    foreach ( $buddy_user_fields as $buddy_user_meta )
    {
        $data = bp_get_profile_field_data( array( 
            \'field\'   => $buddy_user_meta,
            \'user_id\' => wp_get_current_user()->id,
        ) );
        // One field empty/not filled: Abort and return FALSE
        if ( empty( $data ) )
            return false;
    }

    // Return the whole data set
    return $data;
}

SO网友:Tyler Carter

听起来你应该把这些字段放在注册页面上,这样在他们给你这些信息之前他们甚至不会得到用户名或密码。

否则,您和用户都会感到痛苦。

SO网友:rtd2

不是我自己用的,而是PRO版本的一个功能BuddyPress Group-O-Matic 是指除非其个人资料完整,否则成员无法浏览BP网站。

rt。

SO网友:rc183

我刚刚在存储库中发布了我自己的插件,BP Force Profile.

一个插件,用于强制buddypress用户完成其配置文件的必填字段。每个配置文件不完整的用户都将重定向到其配置文件页面,并显示带有必填字段的通知。

结束

相关推荐

如何编辑BuddyPress模板?

我用了一个儿童主题,是二十岁。我已经安装了buddypress,但我需要编辑模板,以便添加到侧栏中。但是1。我找不到合适的模板来编辑类别页面,该页面显示该类别和2下的所有论坛。我正在读关于创建buddypress儿童主题的书,但在我看来,这只是wordpress儿童主题,我一直都有这个。如果可以的话,请帮忙。