我要做的是阻止hook_profile2_presave更新用户配置文件,或者能够在保存之前调整某些字段。我知道我可以使用验证功能,但我试图达到与email_confirm模块中使用的效果相同的效果。
有人知道为什么以下代码无效。
function mymodule_profile2_presave($profile) {
$account = user_load($profile->uid);
if (isset($_SESSION['switch_with_the_old_profile'])) {
$profile_old = profile2_load_by_user($account, 'my_profile');
$profile = $profile_old;
}
}
答案 0 :(得分:0)
我不得不为$ profile中的每个字段手动设置一个值,现在它正在工作。我做了这样的事情:
function mymodule_profile2_presave($profile) {
$account = user_load($profile->uid);
if (isset($_SESSION['switch_with_the_old_profile'])) {
$profile->field_test[LANGUAGE_NONE][0]['value'] = $profile_old->field_test[LANGUAGE_NONE][0]['value'];
}
}