web-dev-qa-db-fra.com

Meilleure façon de créer un utilisateur par programme

Je veux créer un utilisateur via un script autonome. Je souhaite qu'un e-mail d'activation soit envoyé, de la même manière que lorsqu'un utilisateur est créé à partir de l'écran Ajouter un utilisateur. Un email est mis en place avec un lien pour créer le mot de passe. Il n'y a pas de mot de passe dans l'email.

Il semble y avoir diverses fonctions pour créer de nouveaux utilisateurs.

Il y a aussi

  • wp-admin/user-new.php

Ci-dessous le code que j'ai. Il crée un nouvel utilisateur, mais ce n'est pas le courrier électronique de notification. J'ai vérifié que wp-mail () et php mail () fonctionnaient correctement.

Je ne suis pas sûr que ce soit la bonne direction. Je pense qu'il pourrait y avoir un moyen plus facile de le faire. Si c'est la bonne direction, des indications sur la raison pour laquelle la notification n'est pas envoyée?

Merci.

<?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' );
?>
2
user3185563

Vous devriez lisez la page de codex sur wp_create_user .

Vous ne décrivez pas le contexte dans lequel votre code est exécuté. Vous ne devriez pas avoir besoin de tous ces appels require_once.

Quoi qu'il en soit, dans cette ligne wp_new_user_notification ( testuser8,null,'both' ); qu'est-ce que testuser8? Ce n'est pas une variable, ce n'est pas une chaîne, c'est juste un texte qui génère probablement une erreur.

Essayer:

$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' );
4
shanebp

Utilisez WP/CLI User Create et insérez un script.

wp user create - Créer un utilisateur.

$ wp user create testuser8 [email protected] --user_pass=apsswd--role=author --send-email
Success: Created user 3.
2
jgraup