Домой Wp-Recall WP-Recall: Пишем свое дополнение и кастомизация Уведомление о регистрации новых пользователей (Произвольные поля)
6ответ(ов) в теме
maksim.buradchuk
не в сети 6 лет
На сайте с 08.09.2018
Участник
Тем 1
Сообщения 4
1
17:07
Версия WP-Recall: 16.15.9

Добрый день, помогите разобраться. Стоит задача при регистрации нового пользователя присылать всю информацию о нем на почту (включая поля которые добавлялись вручную). Нашел тут на форуме вот такой код и немного его доработал:

add_action('user_register','send_mail_user_register');
function send_mail_user_register($user_id){

	//Получаем все данные пользователя
	$user = get_user_by('id',$user_id);
	$all_meta_for_user = array_map( function( $a ){ return $a[0]; }, get_user_meta( $user->ID ) ); // моя доработка
	$text = '<p>Данные зарегистрированного пользователя:</p>
	<p>Идентификатор: '.$user->ID.'</p>
	<p>Логин: '.$user->data->user_login.'</p>
	<p>Емейл: '.$user->data->user_email.'</p>
	<p>Название клуба: '.$all_meta_for_user["nazvanie_kluba_pitomnika_43"].'</p> // моя доработка
	<p>Отображаемое имя: '.$user->data->display_name.'</p>';
	//кому отправляем 
	$to = 'maxsaur@mail.ru'; 
         //Заголовок письма
	$subject = 'Пользователь зарегистрировался!';
	
	rcl_mail($to,$subject,$text);
}

Но в теле письма поле "Название клуба:" все равно остается пустым, хотя если этот код, точнее переменную $text вывести где-то в шаблоне, то "название клуба" отображается. Может кто знает, что я делаю не так, или тут при формировании текста письма как-то по-другому нужно обращаться к метаданным.

Редакции сообщения
08.09.2018 17:07maksim.buradchukПричина: не указано
0
Андрей CS
не в сети 3 часа
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16928
2
17:17

вместо

$all_meta_for_user["nazvanie_kluba_pitomnika_43"]

прописать
get_user_meta( $user->ID,  "nazvanie_kluba_pitomnika_43", 1 )

соответственно это:
$all_meta_for_user = array_map( function( $a ){ return $a[0]; }, get_user_meta( $user->ID ) );

без надобности

0
maksim.buradchuk
не в сети 6 лет
На сайте с 08.09.2018
Участник
Тем 1
Сообщения 4
3
17:18

Пробовал, результат аналогичный((

0
maksim.buradchuk
не в сети 6 лет
На сайте с 08.09.2018
Участник
Тем 1
Сообщения 4
4
17:20

Такое чувство, что эти переменные еще не успели записаться в базу, или такого быть не может?)

0
Андрей CS
не в сети 3 часа
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16928
5
19:07

это вполне возможно, можно получить значение поля и через $_POST['nazvanie_kluba_pitomnika_43'], в этом случае, там будет даже вернее

1
maksim.buradchuk
не в сети 6 лет
На сайте с 08.09.2018
Участник
Тем 1
Сообщения 4
6
19:48

Большое спасибо, через $_POST работает.
Скорее всего через get_user_meta( $user->ID, "nazvanie_kluba_pitomnika_43", 1 ) и правда переменные в момент вызова еще пусты, так как если вместо $user->ID подставить другой ID (пользователя который уже есть в базе), то информация по дополнительным полям подтягивается.

0
Тема закрыта. Публикация новых сообщений запрещена.