Erhalten Sie aktuelle Benutzerinformationen mit wp_localize_script in functions.php

Ich muss die Informationen von wp_get_current_user() an das Frontend für ein Skript übergeben, das es verwendet. Um dies zu erreichen, verwende ich wp_localize_script() , um die Informationen zu übergeben. Ich lege den Code an die Spitze meiner functions.php Datei, aber es funktioniert nicht.

Hier ist es. Die Idee ist, dass beim Login-Ereignis die function add_to_login() ausgetriggers wird, deren Aufgabe es ist, den wp_enqueue_scripts eine function namens add_to_enqueue() . Schließlich add_to_enqueue() ich in add_to_enqueue() die Informationen an das lokalisierte Skript weiter. Ich habe das bisher nur mit wp_enqeue_scripts versucht, also ohne wp_login dazu. Es schien das Problem zu sein, dass der aktuelle Benutzer erst nach dem wp_enqueue_scripts zum Abrufen wp_enqueue_scripts .

 function add_to_enqueue() { $current_user = wp_get_current_user(); $dataToBePassed = array( 'userId' => $current_user['user_login'], 'userName' => $current_user['display_name'], ); wp_register_script('getUserInfo', get_template_directory_uri().'/assets/js/getUserInfo.js'); wp_localize_script('getUserInfo', 'php_vars', $dataToBePassed); wp_enqueue_script('getUserInfo'); } function add_to_login() { add_action('wp_enqueue_scripts', 'add_to_enqueue'); do_action('wp_enqueue_scripts'); } add_action('wp_login', 'add_to_login'); 

Solutions Collecting From Web of "Erhalten Sie aktuelle Benutzerinformationen mit wp_localize_script in functions.php"

Wenn Sie über diese Aktion hier lesen.

Sie werden sehen, dass dieser Hook Zugriff auf die beiden Parameter $user->user_login (string) und $user ( WP_User ) $user ( WP_User .

Wenn Sie es so verwenden, sehen Sie alle Informationen, auf die Sie zugreifen können:

 function add_to_login($user_login, $user) { echo "
".print_r($user, true)."

"; } add_action('wp_login', 'add_to_login', 10, 2);

Aber nach ein paar Tests sehe ich nicht, wie Sie diese Informationen mit Ihrem JS verwenden können, da der Benutzer sofort nach dieser Aktion umgeleitet wird. Dein Skript wird keine Zeit haben, etwas zu tun.

 function hook_javascript() { if(is_user_logged_in()) { $output=""; echo $output; } else { $output=""; echo $output; } } add_action('wp_head','hook_javascript');