Bei der Benutzerregistrierung, wenn Begrüßungsmail gesendet wurde, fügen Sie einen Beitrag mit einem neuen Benutzer als Autor hinzu

Ich versuche, einen neuen Beitrag zu erstellen (später wird es in einen benutzerdefinierten Beitragstyp umgewandelt), wenn sich ein neuer Benutzer auf der Website registriert und die Begrüßungs-E-Mail erfolgreich gesendet wurde. Das Problem ist, dass ich den neuen Benutzer als den Autor des neuen Posts hinzufügen möchte. Später werden alle Benachrichtigungs-E-Mails von einer speziellen Seite aus zugänglich sein.

Ich versuche den wp_mail Filter zu verwenden:

 add_filter( 'wp_mail', 'my_wp_mail_filter' ); function my_wp_mail_filter( $args ) { $new_wp_mail = array( 'to' => $args['to'], 'subject' => $args['subject'], 'message' => $args['message'], 'headers' => $args['headers'], 'attachments' => $args['attachments'], ); $new_post = array( 'post_title' => $args['subject'] . ' - ' . date('Ymd H:i:s'), 'post_content' => $new_wp_mail, 'post_status' => 'publish', 'post_date' => date('Ymd H:i:s'), 'post_author' => $user_id, 'post_type' => 'post', 'post_category' => array(0) ); $post_id = wp_insert_post( $new_post ); return $new_wp_mail; } 

Ich weiß nicht, wie ich die Benutzer-ID erhalten soll.

Irgendeine Idee?

Solutions Collecting From Web of "Bei der Benutzerregistrierung, wenn Begrüßungsmail gesendet wurde, fügen Sie einen Beitrag mit einem neuen Benutzer als Autor hinzu"

Verwenden wp_mail anstelle des wp_mail Filters die Aktion user_register :

 function fpw_new_user_post( $user_id ) { global $wpdb; update_user_meta( $user_id, $wpdb->base_prefix . 'capabilities', array( 'author' => TRUE ) ); $new_post = array ( 'post_title' => 'User ' . get_user_by( 'id', $user_id )->user_login . ' registered @ ' . date( 'Ymd H:i:s', current_time( 'timestamp' ) ), 'post_content' => 'This is my first post.', 'post_status' => 'publish', 'post_author' => $user_id, 'post_category' => array( 0 ) ); $post_id = wp_insert_post( $new_post ); if ( 0 == $post_id ) { // do some error action } } add_action( 'user_register', 'fpw_new_user_post', 10, 1 ); 

Basierend auf der Annahme, dass dieser Benutzer später andere Beiträge veröffentlichen soll, habe ich seine Rolle als author geändert. Natürlich können Sie einen neuen Beitrag Ihren Bedürfnissen anpassen.