Run JS Code on userlog out

时间:2016-02-06 作者:Uriahs Victor

当用户注销WordPress时,我试图删除存储在本地存储中的变量,下面的两个代码块对我都不起作用,都已在我的函数中测试过。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\');

1 个回复
SO网友:Mark Kaplun

wp_logout 当用户注销时,正在服务器端触发,但被触发的事实并不表示另一端有浏览器实际触发了它。例如,用户可能通过Ajax注销,然后JS代码将不会被评估。

在任何情况下,最好将注销用户定义为没有身份验证cookie的用户。你可以这样做

if (value in local storage) {
  if (wordpress cookie exists)
    remove value from local storage
}
无论如何,如果您希望能够从服务器控制客户端数据,您应该使用cookie而不是本地存储。