Edit File by line
/home/zeestwma/ceyloniy.../wp-conte.../plugins/extendif.../app/Shared/Services
File: AdminMenuList.php
<?php
[0] Fix | Delete
[1] Fix | Delete
namespace Extendify\Shared\Services;
[2] Fix | Delete
[3] Fix | Delete
class AdminMenuList
[4] Fix | Delete
{
[5] Fix | Delete
public static $transient = 'extendify_admin_pages_menu';
[6] Fix | Delete
[7] Fix | Delete
public static function init()
[8] Fix | Delete
{
[9] Fix | Delete
\add_action("admin_menu", [self::class, "populate"], 999);
[10] Fix | Delete
\add_action('upgrader_process_complete', [self::class, 'remove']);
[11] Fix | Delete
[12] Fix | Delete
// Upgrader process completed does not fire on activating/deactivating a plugin,
[13] Fix | Delete
// so we need to regenerate the menu after activate/deactivate the plugin
[14] Fix | Delete
\add_action('activate_plugin', [self::class, 'remove']);
[15] Fix | Delete
\add_action('deactivate_plugin', [self::class, 'remove']);
[16] Fix | Delete
}
[17] Fix | Delete
[18] Fix | Delete
/**
[19] Fix | Delete
* Retrieves all WordPress admin page slugs (menu and submenu items).
[20] Fix | Delete
* Results are cached for performance.
[21] Fix | Delete
*
[22] Fix | Delete
* @return void
[23] Fix | Delete
*/
[24] Fix | Delete
public static function populate()
[25] Fix | Delete
{
[26] Fix | Delete
global $menu, $submenu;
[27] Fix | Delete
[28] Fix | Delete
if (get_transient(self::$transient) !== false || !is_array($menu) || !is_array($submenu)) {
[29] Fix | Delete
return;
[30] Fix | Delete
}
[31] Fix | Delete
[32] Fix | Delete
$adminUrl = admin_url();
[33] Fix | Delete
$allPages = [];
[34] Fix | Delete
[35] Fix | Delete
foreach ($menu as $menuItem) {
[36] Fix | Delete
if (empty($menuItem[0]) || !isset($menuItem[2])) {
[37] Fix | Delete
continue;
[38] Fix | Delete
}
[39] Fix | Delete
$allPages[] = $menuItem[2];
[40] Fix | Delete
}
[41] Fix | Delete
[42] Fix | Delete
foreach ($submenu as $parent => $submenuItems) {
[43] Fix | Delete
if (!isset($parent) || strpos($parent, '.php') === false) {
[44] Fix | Delete
$parent = 'admin.php';
[45] Fix | Delete
}
[46] Fix | Delete
[47] Fix | Delete
$subItems = array_map(function ($item) use ($parent) {
[48] Fix | Delete
return strpos($item, '.php') === false ? sprintf('%s?page=%s', $parent, $item) : $item;
[49] Fix | Delete
}, array_column($submenuItems, 2));
[50] Fix | Delete
[51] Fix | Delete
array_push($allPages, ...$subItems);
[52] Fix | Delete
}
[53] Fix | Delete
[54] Fix | Delete
$allPages = array_values(array_filter($allPages, function ($page) {
[55] Fix | Delete
return strpos($page, 'http') === false;
[56] Fix | Delete
}));
[57] Fix | Delete
[58] Fix | Delete
foreach ($allPages as &$page) {
[59] Fix | Delete
$page = str_replace($adminUrl, '', $page);
[60] Fix | Delete
[61] Fix | Delete
if (strpos($page, '.php') === false) {
[62] Fix | Delete
$page = 'admin.php?page=' . $page;
[63] Fix | Delete
}
[64] Fix | Delete
}
[65] Fix | Delete
unset($page);
[66] Fix | Delete
[67] Fix | Delete
set_transient(self::$transient, $allPages);
[68] Fix | Delete
}
[69] Fix | Delete
[70] Fix | Delete
public static function remove($plugin)
[71] Fix | Delete
{
[72] Fix | Delete
\delete_transient(self::$transient);
[73] Fix | Delete
}
[74] Fix | Delete
}
[75] Fix | Delete
[76] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function