SO网友:Paul G.
有一些事情需要调整。下面的代码可以满足您的需要。
cookie的设置不应查询用户是否登录。不能指望它会回来true 在登录请求时。仅仅依靠wp_login 钩子以确保用户正在登录我设定了一个较长的cookie生存期,即1周。使用WordPress常量WEEK_IN_SECONDS. 您可以通过替换WEEK_IN_SECONDS 你希望它持续一段时间(秒)删除cookie是通过设置一个低/负值来完成的,因此它本质上是;“过期”
Important: 确保将其添加到functions.php 或者任何您可以确保在处理登录请求之前及时执行的地方add_action( \'wp_login\', \'add_custom_cookie\' );
function add_custom_cookie() {
setcookie( \'cookie_name\', \'cookie value\', time()+WEEK_IN_SECONDS );
}
// To Remove Cookie
add_action( \'wp_logout\', \'remove_custom_cookie\' );
function remove_custom_cookie() {
setcookie( \'cookie_name\', \'\', -1000000 );
}