La mejor manera de crear un usuario programáticamente

2

Quiero crear un usuario a través de un script independiente. Deseo que se envíe un correo electrónico de activación, de la misma manera que cuando se crea un usuario desde la pantalla Agregar usuario. Se establece un correo electrónico con un enlace para crear la contraseña. No hay contraseña en el correo electrónico.

Parece que hay varias funciones para crear nuevos usuarios.

También hay

  • wp-admin / user-new.php

Debajo está el código que tengo. Crea un nuevo usuario, pero no es el correo electrónico de notificación. He comprobado que wp-mail () y php mail () funcionan correctamente.

No estoy seguro de que esta sea la dirección correcta. Siento que podría haber una manera más fácil de hacerlo. Si esta es la dirección correcta, ¿hay alguna indicación sobre por qué no se envía la notificación?

Gracias.

<?php
define( 'SHORTINIT', true );
require_once( '/var/www/html/mysite/wp-load.php' );
require_once ('/var/www/html/mysite/wp-includes/user.php');
require_once ('/var/www/html/mysite/wp-includes/formatting.php');
require_once ('/var/www/html/mysite/wp-includes/capabilities.php');
require_once ('/var/www/html/mysite/wp-includes/pluggable.php');
require_once ('/var/www/html/mysite/wp-includes/kses.php');
require_once ('/var/www/html/mysite/wp-includes/meta.php');
function __() {}
wp_create_user ( 'testuser8', 'apsswd', '[email protected]' );
wp_new_user_notification ( testuser8,null,'both' );
?>
    
pregunta user3185563 24.10.2015 - 19:31

2 respuestas

4

Debería leer la página del códice re wp_create_user .

No describe el contexto en el que se ejecuta su código. No deberías necesitar todas esas llamadas require_once .

De todos modos, en esta línea wp_new_user_notification ( testuser8,null,'both' ); , ¿qué es testuser8 ? No es una variable, no es una cadena, es solo un texto que probablemente arroje un error.

Prueba:

$user_id = wp_create_user ( 'testuser8', 'apsswd', '[email protected]' );
if( is_wp_error( $user_id ) ) 
    var_dump( $user_id );
else
    wp_new_user_notification ( $user_id, null,'both' );
    
respondido por el shanebp 24.10.2015 - 20:17
2

Utilice User Create de WP-CLI y póngalo en un script.

  

wp user create - Crear un usuario.

$ wp user create testuser8 [email protected] --user_pass=apsswd--role=author --send-email
Success: Created user 3.
    
respondido por el jgraup 08.11.2016 - 23:08

Lea otras preguntas en las etiquetas