自定义,注销时有条件重定向

时间:2015-05-08 作者:user2941726

我想实现一个自定义注销功能,该功能仅在满足条件时运行。相反,无论条件是否属实,它都会将我返回主页
下面是应该注销的代码:

function no_cookie() {
    global $noCookiesLeft;
    if($noCookiesLeft) {
         wp_redirect("mysite.com/custom logout");
         exit;
     }
}
add_action(\'wp_logout\',\'no_cookie\',10,2);
下面是触发此操作的代码:

if($cookie_count >= 3) {
    wp_delete_user($id);
    $noCookiesLeft = true;
    wp_logout();   
}
noCookiesLeft是一个全局变量,因为我还没有找到任何其他方法来做到这一点,而谷歌让我失望。

编辑:

function login_cookie($user_login, $user) {
global $wpdb;
global $noCookiesLeft;
$id = $user->ID;

if(!isset($_COOKIE[\'userCookie\'])) {
    if(in_array(\'administrator\', $user->roles))
        $wpdb->delete(\'wp_cookies\',[\'user_id\'=>$id]);

    $cookie_count = $wpdb->get_var("SELECT COUNT(*) FROM wp_cookies WHERE user_id=".$id."");
    if($cookie_count >= 3) {
        wp_delete_user($id);
    }
    else {
        $value = md5($id);;
        setcookie(\'userCookie\', $value, time()+360000*24*100, "", "",false);
        $wpdb->insert("wp_cookies",[
                    \'user_id\'=>$id,
                    \'cookie_value\'=>$value
                ],
                [
                    \'%d\',
                    \'%s\'
                ]);

        }
     }
 }

add_action(\'wp_login\',\'login_cookie\',10,2);

function no_cookie() {
    wp_redirect("/error);
    exit;
}
 }
  add_action(\'delete_user\',\'no_cookie\',10,2);

1 个回复
SO网友:ambroseya

你需要确保你已经注意到全球的noCookiesLeft美元;在if语句中设置之前。当它运行no\\u cookie()函数时,它可能未设置。

结束

相关推荐

Facebook php SDK 4 getSessionFromReDirect()始终为空

我已经安装了wordpress 4.1和以下插件:我插入了facebook sdk的一个功能。代码如下://Footer add_action(\'wp_footer\', \'my_footer\'); function my_footer() { $post_to_check = get_post(get_the_ID()); if ( is_singular() && has_shortcode( $post_to_check->