Enviar correo electrónico automático al usuario después de wp_create_user

2

Entonces, aquí hay un código que se me ocurrió. ¿Funciona, pero ahora lo necesito para enviar el nombre de usuario y la contraseña que generó a esa dirección de correo electrónico automáticamente? También el nombre y apellido no es la grabación? Gracias !!

require('wordpress/wp-blog-header.php');

$user_email = trim(isset($_POST['payer_email']) ? $_POST['payer_email'] : "");
$user_name = trim(isset($_POST['first_name']) ? $_POST['first_name'] : "");

$user_id = username_exists( $user_name );
if ( !$user_id ) {
    $random_password = wp_generate_password( 12, false );
    $user_id = wp_create_user( $user_name, $random_password, $user_email );
} else {
    $random_password = __('User already exists.  Password inherited.');
}
    
pregunta eberswine 29.01.2012 - 20:43

4 respuestas

4

Puedes usar esto: wp_new_user_notification( $user_id, $random_password);

    
respondido por el user2407144 16.06.2013 - 04:26
3

Hay el user_register gancho, que se ejecuta al final de la inserción del usuario y tiene $ user_id como parámetro, puede aprovechar eso para enviar el nombre de usuario y la contraseña, pero debe update_user_meta() antes de que puedas obtener el primer nombre y todo lo demás, por lo que sería mejor hacerlo al final de la creación del usuario y la inserción del usuario.

Lo único que crea un usuario es insertarlo en la base de datos, debe usar update_user_meta() para agregar los valores de usuario. get_the_author_meta() tiene una lista de los valores de usermeta predeterminados, si inserta algo con la clave de uno de ellos, aparecer en profile.php de forma predeterminada, de lo contrario tendrá que extender el perfil de usuario para mostrarlo.

También, solo una nota, parece que está configurando $random_password en un valor no aleatorio y, probablemente, más importante, configurándolo DESPUÉS de que se haya utilizado.

    
respondido por el mor7ifer 29.01.2012 - 21:01
0

Yo usaría wp_insert_user en lugar de wp_create_user para que pueda agregar tantos datos de usuario como desee en primera instancia. Compruebe el códice de Wordpress para todo lo que puede insertar. (wp_create_user simplemente llama a esta función de todos modos!) Para enviar los detalles de inicio de sesión del usuario, puede llamar a wp_mail ($ user_email, $ subject, $ message); Por supuesto, querrá establecer $ message para incluir el nombre de usuario y la contraseña en el cuerpo del texto del mensaje. Otra cosa, creo que puede crear la función wp_new_user_notification que es una función conectable y se llama en el registro de nuevo usuario, puede poner la función de correo en eso, sé que los complementos como Register Plus Redux y Pie Register lo hacen de esta manera.

    
respondido por el Tony 29.11.2012 - 15:16
0

Creo que esto es lo que estás buscando. Esto agregará el nombre y el apellido al meta del usuario y enviará un correo al usuario sobre la adición del nombre y el apellido.

 add_action('user_register', 'add_user_custom_meta');

function add_user_custom_meta($user_id) {
    $user_info=get_userdata( $user_id );
if ( isset( $_POST['first_name'] ) )
    update_user_meta($user_id, 'first_name', $_POST['first_name']);

if ( isset( $_POST['last_name'] ) )
    update_user_meta($user_id, 'last_name', $_POST['last_name']);

wp_mail($user_info->user_email, 'User first and last name', sprintf('Hi we have added your first name :-% and last name:- % to our site.',$_POST['first_name'],$_POST['last_name']));
}
    
respondido por el Vikas Bhardwaj 16.06.2013 - 04:47

Lea otras preguntas en las etiquetas