Как я могу получить текущего пользователя в WordPress через Javascript? - PullRequest
0 голосов
/ 25 октября 2018

У меня есть следующий код, который работает.(Когда я нажимаю кнопку «тест», отображается в форме ввода.

<script src="https://cdnjs.cloudflare.com/ajax/libs/babel- 
 core/6.1.19/browser.min.js"></script>
<script>
function btn1() {
document.getElementsByName("admin-status")[0].value = "test";
}
</script>

Я хочу получить имя пользователя, поэтому я подумал, что добавил его правильно, но он говорит, что не определено.

<script src="https://cdnjs.cloudflare.com/ajax/libs/babel- 
 core/6.1.19/browser.min.js"></script>
<script>
global $current_user;
$current_user = wp_get_current_user();
function btn1() {
document.getElementsByName("admin-status")[0].value = $current_user;
}
</script>

Что мне не хватает? Спасибо. Нуб здесь.

Ответы [ 2 ]

0 голосов
/ 25 октября 2018

Лучший способ добавить скрипт локализации

add_action( 'wp_enqueue_scripts', 'wp12311_enqueue_scripts' );

function wp12311_enqueue_scripts() {
     wp_enqueue_script( 'wp12311-scripts', 'your_script_path/test.js', array( 'jquery' ), false, true );
     wp_localize_script( 'wp12311-scripts', 'test', array(
         'current_user' => wp_get_current_user()
     ) ) );
}

Теперь в файле test.js вы можете получить доступ к текущим данным пользователя, например

var displayName = test.current_user.display_name;
0 голосов
/ 25 октября 2018

Вы, вероятно, увидите «не определено» в консоли js и / или другие ошибки.Обратите внимание, что вы забыли php <?php и ?> вокруг php-кода, и $current_user будет "<?php echo $current_user ?>

Если вы делаете что-то более чем в один строковый скрипт, вам действительно следует поставьте в очередь скрипт и затем локализуйте скрипт для переменной, которую вы можете использовать в js на странице где угодно, не смешивайте php и js!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...