当用户注销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\');
SO网友:Mark Kaplun
wp_logout
当用户注销时,正在服务器端触发,但被触发的事实并不表示另一端有浏览器实际触发了它。例如,用户可能通过Ajax注销,然后JS代码将不会被评估。
在任何情况下,最好将注销用户定义为没有身份验证cookie的用户。你可以这样做
if (value in local storage) {
if (wordpress cookie exists)
remove value from local storage
}
无论如何,如果您希望能够从服务器控制客户端数据,您应该使用cookie而不是本地存储。