109 lines
2.3 KiB
PHP
109 lines
2.3 KiB
PHP
<?php
|
|
namespace FBPATCH;
|
|
|
|
/*
|
|
* it means someone outside wp is accessing the file, in this case kill it.
|
|
*/
|
|
if (!defined('ABSPATH')) {
|
|
die('You can not access this file!');
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function toggle_menu($menu_page_title, $menu_title, $menu_capability, $menu_slug, $menu_callback) {
|
|
$toggle_menu = Fbpatch::OPTION_TOGGLE_MENU;
|
|
|
|
if (false === get_option($toggle_menu['_name'])) {
|
|
add_option($toggle_menu['_name'], $toggle_menu['hide']);
|
|
}
|
|
|
|
$toggle = get_option($toggle_menu['_name']);
|
|
|
|
if ($toggle === $toggle_menu['hide']) {
|
|
remove_menu_page($menu_slug);
|
|
}
|
|
else if ($toggle === $toggle_menu['show']) {
|
|
add_menu_page($menu_page_title, $menu_title, $menu_capability, $menu_slug, $menu_callback);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
* add link under the plugin in the plugins admin page
|
|
*
|
|
*/
|
|
function add_link_to_plugin($links) {
|
|
$slug_toggle = Fbpatch::SLUG_TOOGLE_ADMIN_MENU;
|
|
$toggle_menu = Fbpatch::OPTION_TOGGLE_MENU;
|
|
|
|
$toggle = get_option($toggle_menu['_name']);
|
|
|
|
if ($toggle === $toggle_menu['hide']) {
|
|
$links[] = '<a href="/'.$slug_toggle['_name'].'?'.$slug_toggle['toggle'].'='.$slug_toggle['show'].'">show menu</a>';
|
|
}
|
|
else if ($toggle === $toggle_menu['show']) {
|
|
$links[] = '<a href="/'.$slug_toggle['_name'].'?'.$slug_toggle['toggle'].'='.$slug_toggle['hide'].'">hide menu</a>';
|
|
}
|
|
return $links;
|
|
}
|
|
add_filter('plugin_action_links_fbpatch/fbpatch.php', __NAMESPACE__.'\add_link_to_plugin');
|
|
|
|
|
|
|
|
|
|
/*
|
|
* handle the toggle menu when url is reached
|
|
*
|
|
*/
|
|
function toggle_plugin_menu() {
|
|
$slug_toggle = Fbpatch::SLUG_TOOGLE_ADMIN_MENU;
|
|
$toggle_menu = Fbpatch::OPTION_TOGGLE_MENU;
|
|
|
|
global $wp;
|
|
$current_slug = $wp->request;
|
|
if ($current_slug !== $slug_toggle['_name']) {
|
|
return;
|
|
}
|
|
|
|
$show = null;
|
|
if (!isset($_GET)) {
|
|
$show = null;
|
|
}
|
|
else if (empty($_GET)) {
|
|
$show = null;
|
|
}
|
|
if (!isset($_GET[$slug_toggle['toggle']])) {
|
|
$show = null;
|
|
}
|
|
else if ($_GET[$slug_toggle['toggle']] === $slug_toggle['show']) {
|
|
$show = true;
|
|
}
|
|
else if ($_GET[$slug_toggle['toggle']] === $slug_toggle['hide']) {
|
|
$show = false;
|
|
}
|
|
|
|
if ($show === true) {
|
|
update_option($toggle_menu['_name'], $toggle_menu['show']);
|
|
}
|
|
else if ($show === false) {
|
|
update_option($toggle_menu['_name'], $toggle_menu['hide']);
|
|
}
|
|
|
|
$plugins_menu_url = admin_url('plugins.php');
|
|
wp_redirect($plugins_menu_url, 301);
|
|
exit;
|
|
}
|
|
add_action('template_redirect', __NAMESPACE__.'\toggle_plugin_menu');
|
|
|
|
|
|
|
|
|
|
|
|
?>
|