web-dev-qa-db-fra.com

Est-il possible d'obtenir le nom d'utilisateur connecté dans un script jQuery?

Comment obtenir le nom d'utilisateur connecté dans un script jQuery?

Contexte:

Je travaille avec des champs de répéteur ACF et je souhaite remplir automatiquement un sous-champ avec le nom d'utilisateur connecté . Ceci doit être exécuté chaque fois que l'utilisateur ajoute une nouvelle ligne dans le champ répétable.

Tout semble assez bien, mais je suis bloqué au point d'obtenir le nom d'utilisateur connecté dans jQuery. Je ne sais pas comment l'obtenir. Toute orientation sera appréciée!

3
Capiedge

Vous devez utiliser la fonction wp_localize_script() qui vous permet de créer un objet JavaScript, de le remplir avec des données en utilisant PHP, puis de le transférer dans le fichier JavaScript.

Ceci est fait dans votre fichier functions.php dans la fonction où vous mettez votre fichier JavaScript en file d'attente. Vous devrez lui transmettre le descripteur de la mise en file d'attente de votre script, le nom de l'objet que vous souhaitez utiliser en JavaScript et un tableau de propriétés et de valeurs pour cet objet.

A partir de là, utilisez simplement la fonction wp_get_current_user() pour obtenir vos valeurs.

Par exemple:

function theme_scripts() {
   global $current_user;
   $current_user = wp_get_current_user();

   wp_enqueue_script( 'theme-script', get_template_directory_uri() . '/js/functions.js', array( 'jquery' ), '', true );
   wp_localize_script( 'theme-script', 'theUser', array (
      'username' => $current_user->user_login,
   ) );
}
add_action( 'wp_enqueue_scripts', 'theme_scripts' );

Le fait est que $current_user n'est pas renseigné par défaut dans votre fonction de mise en file d'attente. Vous devrez donc l'appeler quelque part à l'avance, comme suit:

global $current_user;
$current_user = wp_get_current_user();

Cet objet est désormais accessible dans votre script avec les propriétés de chaque clé que vous placez dans le tableau. Donc, dans ce cas, vous accéderiez au nom de connexion de l'utilisateur en tant que theUser.username.

3
Cedon