Создание сообщений о регистрации пользователей


Как я могу создать, скажем, 3 сообщения после того, как пользователь завершит регистрацию?

Идеальным результатом было бы создать 3 сообщения, используя пользователя в качестве автора сообщений и с некоторыми заранее определенными значениями. (заголовок сообщения и пуля)

Заголовок и заголовок сообщения будут созданы на основе информации, которую пользователь предоставит в регистрационной форме.

Пример:

Пользователь регистрируется и указывает Имя, фамилию, адрес электронной почты (все поля обязательны) Три должности являются создан, и пользователь будет автором каждого поста. В заголовке каждого поста будет указана информация о слаге из регистрационной формы

  • 1- Джон Доу Био |джон-доу-био
  • 2-Портфель Джона Доу | портфель Джона Доу
  • 3-Контакт с Джоном Доу | контакт с Джоном Доу

* В приведенном выше примере кажется ненужным иметь возможность редактировать слаг, но будут сообщения с такими словами, как: в, есть, в и, которые в противном случае будут удалены. Также обратите внимание, что "предварительно определенный ценностями будут: Биография, Портфолио и Контакты.

Это было бы близко к "приветственным" постам, созданным wordpress после установки.

Есть идеи, как это сделать?

Я знаю, что мне нужно использовать wp_insert_post( $my_post ); и, возможно, add_action('user_register', 'some_function');, но я не знаю, как создать 3 сообщения за один снимок с помощью wp_insert_post( $my_post ); и как запустить это после того, как пользователь завершит процесс регистрации.

Есть идеи, как это сделать? Заранее спасибо.

Author: user983248, 2012-05-25

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'
 13
Author: Bainternet, 2012-05-26 13:51:30