=== Switcher ===
Contributors: kostyatereshchuk
Tags: toolbar, admin bar, navigation, switch, admin
Requires at least: 5.0
Tested up to: 7.1
Requires PHP: 7.3
Stable tag: 1.3.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

One toolbar button that switches between the admin page and the public page you viewed last.

== Description ==

Switcher adds one icon button to the WordPress toolbar. On an admin page it opens the public page you viewed last; on a public page it opens the admin page you viewed last. Before you have viewed anything it opens the home page or the dashboard.

* No settings, no extra files to load, nothing stored on the server.
* Two cookies in your browser remember the last page on each side for 30 days (`switcher_public_url`, `switcher_admin_url`); they are set with the Secure (on HTTPS), HttpOnly and SameSite=Lax attributes.
* Only real page views count: not AJAX or REST calls, feeds, embeds, 404 pages, previews or form submissions.
* The button only ever opens an address on this site.
* Keyboard shortcut: Ctrl+Alt+S (also on a Mac) switches sides without touching the mouse; it is ignored while you type in a field. The tooltip shows where the button leads.
* Works for every logged-in user who sees the toolbar; visitors get nothing.

Developers: `switcher_cookie_lifetime` filters the 30 days, `switcher_cookie_options` the arguments passed to `setcookie()`, `switcher_shortcut` the key combination (return an empty array to disable it).

== Installation ==

1. Install Switcher from "Plugins > Add New" (search for "switcher toolbar") or upload the `switcher` folder to `/wp-content/plugins/`.
2. Activate it. The button appears at the right end of the toolbar.

== Frequently Asked Questions ==

= I hide the toolbar on the front end. Does the button still work? =

The button lives in the toolbar, so it is visible only where the toolbar is. Your public page views are still remembered, so the button on the admin side keeps working.

= Does it store anything in the database? =

No. The two cookies live in your browser only.

= Can I change or disable the keyboard shortcut? =

Yes, with the `switcher_shortcut` filter: return an array with `ctrl`, `alt`, `shift`, `meta` flags and a `code` such as `KeyS`, or an empty array to disable it.

== Changelog ==

= 1.3.0 =
* Rewritten: the server remembers the page you view and computes the button's target when the toolbar is rendered; the only script left is a few lines for the shortcut, inline on the toolbar's own script.
* The target is validated as an address on this site; a cookie can no longer point the button elsewhere.
* Cookies are set with the Secure, HttpOnly and SameSite=Lax attributes and use the site's own cookie path, so sites in sub-directories no longer share one cookie. The 2017 cookies are ignored and expire by themselves.
* Only real page views are remembered: no AJAX or REST calls, feeds, embeds, 404 pages, previews or form submissions.
* Fixed: a script error on public pages for users who hide the toolbar.
* The button has an accessible name and a tooltip that shows where it leads; strings are translatable.
* New: keyboard shortcut Ctrl+Alt+S (filter `switcher_shortcut`).
* Requires WordPress 5.0 and PHP 7.3; tested up to 7.1.

= 1.2 =
* Switch between the recently viewed admin page and the recently viewed public page.

== Upgrade Notice ==

= 1.3.0 =
Same button, rebuilt: safer cookies, a validated target, no error when the toolbar is hidden, an accessible name, and a Ctrl+Alt+S shortcut. Requires WordPress 5.0 and PHP 7.3.
