6ответ(ов) в теме
Добрый день, помогите разобраться. Стоит задача при регистрации нового пользователя присылать всю информацию о нем на почту (включая поля которые добавлялись вручную). Нашел тут на форуме вот такой код и немного его доработал:
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:07Причина: не указано
Большое спасибо, через $_POST работает.
Скорее всего через get_user_meta( $user->ID, "nazvanie_kluba_pitomnika_43", 1 ) и правда переменные в момент вызова еще пусты, так как если вместо $user->ID подставить другой ID (пользователя который уже есть в базе), то информация по дополнительным полям подтягивается.
Тема закрыта. Публикация новых сообщений запрещена.