Создание сообщений о регистрации пользователей
Как я могу создать, скажем, 3 сообщения после того, как пользователь завершит регистрацию?
Идеальным результатом было бы создать 3 сообщения, используя пользователя в качестве автора сообщений и с некоторыми заранее определенными значениями. (заголовок сообщения и пуля)
Заголовок и заголовок сообщения будут созданы на основе информации, которую пользователь предоставит в регистрационной форме.
Пример:
Пользователь регистрируется и указывает Имя, фамилию, адрес электронной почты (все поля обязательны) Три должности являются создан, и пользователь будет автором каждого поста. В заголовке каждого поста будет указана информация о слаге из регистрационной формы
- 1- Джон Доу Био |джон-доу-био
- 2-Портфель Джона Доу | портфель Джона Доу
- 3-Контакт с Джоном Доу | контакт с Джоном Доу
* В приведенном выше примере кажется ненужным иметь возможность редактировать слаг, но будут сообщения с такими словами, как: в, есть, в и, которые в противном случае будут удалены. Также обратите внимание, что "предварительно определенный ценностями будут: Биография, Портфолио и Контакты.
Это было бы близко к "приветственным" постам, созданным wordpress после установки.
Есть идеи, как это сделать?
Я знаю, что мне нужно использовать wp_insert_post( $my_post );
и, возможно, add_action('user_register', 'some_function');
, но я не знаю, как создать 3 сообщения за один снимок с помощью wp_insert_post( $my_post );
и как запустить это после того, как пользователь завершит процесс регистрации.
Есть идеи, как это сделать? Заранее спасибо.
1 answers
Вы вроде как сами уже ответили на этот вопрос,
Создайте функцию, которая создаст 3 сообщения, например:
function create_new_user_posts($user_id){
if (!$user_id>0)
return;
//here we know the user has been created so to create
//3 posts we call wp_insert_post 3 times.
// Create post object
$my_bio_post = array(
'post_title' => 'bio',
'post_content' => 'This is my post.',
'post_status' => 'publish',
'post_author' => $user_id
);
// Insert the post into the database
$bio = wp_insert_post( $my_bio_post );
$my_portfolio_post = array(
'post_title' => 'portfolio',
'post_content' => 'This is my post.',
'post_status' => 'publish',
'post_author' => $user_id
);
// Insert the post into the database
$portfolio = wp_insert_post( $my_portfolio_post );
$my_contact_post = array(
'post_title' => 'bio',
'post_content' => 'This is my post.',
'post_status' => 'publish',
'post_author' => $user_id
);
// Insert the post into the database
$contact = wp_insert_post( $my_contact_post );
//and if you want to store the post ids in
//the user meta then simply use update_user_meta
update_user_meta($user_id,'_bio_post',$bio);
update_user_meta($user_id,'_portfolio_post',$portfolio);
update_user_meta($user_id,'_contact_post',$contact);
}
И вы подключаете эту функцию, используя user_register
крюк
add_action('user_register','create_new_user_posts');
Обновление
Когда вы подключаете функцию к user_register
, функция получает идентификатор пользователя, чтобы вы могли использовать его для получения любой информации об этом пользователе, например:
$user = get_user_by('id', $user_id);
И теперь $user - это объект ПОЛЬЗОВАТЕЛЯ, поэтому вы можете изменить заголовок сообщения на user информация о пользователе, например:
'post_title' => $user->user_firstname . " ". $user->user_lastname . 'bio'