BuddyPress-挂钩以更新自定义配置文件字段

时间:2011-09-16 作者:Joseph Leedy

我正在为一个客户端开发自定义应用程序,该客户端需要用户配置文件中的一些额外字段。我已经成功创建了一个保存自定义字段的注册页面,现在我需要对“编辑配置文件”页面执行相同的操作。我用来在注册时保存自定义字段的函数非常通用,我想我也可以将其用于更新。不过,我找不到合适的钩子来让它工作。我尝试了“profile\\u update”、“edit\\u user\\u profile\\u update”和“personal\\u options\\u update”,但没有成功。这里有我遗漏的东西吗?

2 个回复
最合适的回答,由SO网友:Joseph Leedy 整理而成

在今天艰难地阅读了BP的源代码之后,我相信我终于找到了答案。BuddyPress中用于更新概要文件字段的挂钩是“xprofile\\u data\\u before\\u save”。如果有人知道更好的,请告诉我!

SO网友:chifliiiii

您还可以使用buddypress中包含的扩展概要文件功能来创建额外的概要文件组/字段。

然后,只需替换循环,即可将所有组放入寄存器或编辑页面

<?php if ( function_exists( \'bp_has_profile\' ) ) : if ( bp_has_profile( \'profile_group_id=1\' ) ) : while ( bp_profile_groups() ) : bp_the_profile_group(); ?>
使用:

<?php if ( function_exists( \'bp_has_profile\' ) ) : if ( bp_has_profile() ) : while ( bp_profile_groups() ) : bp_the_profile_group(); ?>
这样,您将在注册页面中显示所有配置文件组。您可以对“编辑”执行相同的操作。php显示编辑配置文件页面中的所有字段。

要使其正常工作,您知道需要进行一些小调整。您需要将移出循环,然后保存所有字段ID,如下所示:

您还可以将其移出循环,使其看起来:

<?php endwhile; endif; endif; ?>
<input type="hidden" name="signup_profile_field_ids" id="signup_profile_field_ids" value="<?php echo implode(",",$fields_ids);?>" />
</form>
最后一部分是确保所有字段都保存到数据库中。希望有帮助,我用在编辑上。php,但它在寄存器上的工作方式应该相同。php

当做

结束