you can add this to your functions.php file or plugin.
add_action("set_logged_in_cookie", "one_cookie", 10, 5);
function one_cookie($logged_in_cookie, $expire, $expiration, $user_id, $logged_in) {
$secure = apply_filters('secure_logged_in_cookie', false, $user_id, is_ssl());
$cookie = uniqid();
update_user_meta($user_id, "one_cookie", $cookie);
setcookie("one_cookie", $cookie, $expire, COOKIEPATH, COOKIE_DOMAIN, $secure, true);
return;
}
add_action("init", "check_one_cookie", 1);
function check_one_cookie() {
$user = wp_get_current_user();
if ($user->ID == 0) { return; }
$storedcookie = get_user_meta($user->ID, 'one_cookie');
print_r(array('$storedcookie'=>$storedcookie));
if (!empty($storedcookie) && $_COOKIE['one_cookie'] != $storedcookie) {
wp_logout();
}
}
add_action('wp-logout', 'one_cookie_logout');
function one_cookie_logout() {
setcookie("one_cookie", "", 1);
}
This will only work in one direction. Each time a new login is processed, it blocks the old one. If you want to undo this, you probably need to write a lot more code so that the user can break the lock, etc.
, 'wp-includes/pluggable.php'
WordPress 3.1.