Я пытаюсь изменить существующий код для достижения следующего:
1) Извлечь данные xprofile для Institute (которые пользователь отправляет при регистрации) и дать название группе, созданной из него. 2) Определите и остановите дубликаты.
У меня есть более или менее потянувшаяся кодировка, которая создает новую группу, как только пользователь регистрируется, так что я на 80% пути. Кредит lou ie здесь
Но, как вы увидите в коде, имя группы заполняется user_nicename. Я попытался изменить это, но все еще не работает! Затем я попытался создать свою собственную функцию, чтобы потом работать, но это тоже не работает, вот она:
add_action( 'user_register', 'user_school_signup');
function user_school_signup($user_id){
$school_name = xprofile_get_field_data('Institute' .$user_id);
return $school_name;
}
add_action('user_register', 'greenbox_add_user_to_new_buddypress_group'); //this should only fire on create user, therefore no problem with dupe groups
function greenbox_add_user_to_new_buddypress_group($user_id) {
$id_group = greenbox_create_bp_group($user_id);
greenbox_add_user_to_group($user_id, $id_group);
}
function greenbox_create_bp_group($user_id) {
$info = get_userdata($user_id);
$group_args = array();
$group_args['name'] = "This". xprofile_get_field_data('Institute'.$user_id); /*** Issue is her **/
$group_args['description'] = "A group to hold the files of ";
$group_args['creator_id'] = 1;
$group_args['status'] = 'private'; // could be hidden or public
$id_group = groups_create_group($group_args);
return $id_group;
}
function greenbox_add_user_to_group($user_id, $group_id) {
if (!$user_id)
return false;
groups_accept_invite($user_id, $group_id);
}