Запустить JS-код в пользовательском логе

Я пытаюсь удалить переменную, хранящуюся в локальном хранилище, когда пользователь выходит из WordPress, ни один из двух кодовых блоков ниже не работает для меня, оба были протестированы в моем файле functions.php по одному за раз.

function del_local_reload_var() { $str = <<<HD <script> localStorage.removeItem("justOnce"); </script> HD; echo $str; } add_action('wp_logout', 'del_local_reload_var'); 

Второй метод:

  function del_local_reload_var() { echo '<script type="text/javascript">'; echo 'localStorage.removeItem( "justOnce" )'; echo '</script>'; } add_action('wp_logout', 'del_local_reload_var'); 

Solutions Collecting From Web of "Запустить JS-код в пользовательском логе"

wp_logout запускается на стороне сервера, когда пользователь выходит из системы, но тот факт, что он запускается, не указывает на наличие браузера с другой стороны, который фактически вызвал его. Например, пользователь может выйти из системы через Ajax, а затем код JS не будет оцениваться.

В любом случае гораздо лучше определить зарегистрированного пользователя, который не имеет cookie аутентификации. Вы можете сделать что-то вроде

 if (value in local storage) { if (wordpress cookie exists) remove value from local storage } 

В любом случае, если вы хотите контролировать данные клиента с сервера, вы должны использовать файлы cookie вместо локального хранилища.