Как проверить роль пользователя из WordPress в angular приложении - PullRequest
0 голосов
/ 07 апреля 2020

Я устанавливаю angular приложение внутри темы WordPress. Некоторые элементы Angular должны проверять, вошел ли пользователь в систему, и имеют определенную роль c для отображения некоторого содержимого. Wordpress - это система PHP cms, а Angular основана на машинописи. Как это заархивировать.

Что я могу сделать, это.

 console.log(document.body.classList.contains( 'logged-in' ));

Но это кажется очень небезопасным и это просто состояние входа в систему и не имеет проверки роли пользователя.

1 Ответ

1 голос
/ 07 апреля 2020

Вы можете передать PHP данные JavaScript, используя wp_localize_script :

function so61079973_enqueue_scripts() {
    // Register the script
    wp_register_script( 'your-script', 'path/to/myscript.js' );

    // Get the user object.
    $user = get_userdata( $user_id );

    // Get all the user roles as an array.
    $user_roles = $user->roles;

    // Localize the script with new data
    $data_array = array(
        'is_logged_in' => is_user_logged_in(),
        'user_roles' => json_encode( $user_roles )
    );

    wp_localize_script( 'your-script', 'user_data', $data_array );

    // Enqueued script with localized data.
    wp_enqueue_script( 'your-script' );
}
add_action('wp_enqueue_scripts', 'so61079973_enqueue_scripts');

Затем, в JavaScript, вы можете получить данные, вызвав user_data объект:

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