postRequestCustomMenu(); $this->postRequestExistingMenu(); return $this->getAllOptionsPagesAndFields(); } public function getAllOptionsPagesAndFields() { $data = Data::getAllFromPageValueColumn(); if (isset($_POST['menu_id'])) { $data = $data->whereNotIn('menu_id', [$_POST['menu_id']]); } return $data->map(function ($item) { if (isset($item['menu'])) { (new MenuPage())->run($item['menu']); } return $item['pages']; })->flatten(1)->filter(function ($page) { (new SingleOptionsPage())->run($page); if (!isset($_REQUEST['page']) && $_SERVER['PHP_SELF'] !== '/wp-admin/options.php') { return; } return $_REQUEST['page'] === $page['menu_slug'] || $_SERVER['PHP_SELF'] === '/wp-admin/options.php'; })->map(function ($page) { return (new OptionsFields())->run($page['fields']); }); } public function postRequestCustomMenu() { if (!isset($_POST['menu']) || !isset($_POST['pages'])) { return; } $validate = new Validation; if (!$validate->customMenu()) { return; } (new MenuPage())->run((new Input())->menuPageForCustomMenu($validate)); return Collection::make($_POST['pages'])->map(function ($subpage, $key) use ($validate) { $validatedSubpageTab = (isset($subpage['subpage_tab']) && $subpage['subpage_tab'] === '1') ? true : false; $validatedParentSlug = $validate->alphanumericDashesAll($_POST['pages'][0]['subpage_slug']); $validatedMenuSlug = ($key === 0) ? $validatedParentSlug : $validate->alphanumericDashesAll($subpage['subpage_slug']); (new SingleOptionsPage())->run([ 'parent_slug' => $validatedParentSlug, 'menu_title' => $validate->textField($subpage['menu_title']), 'capability' => 'manage_options', 'menu_slug' => $validatedMenuSlug, 'include_tab' => $validatedSubpageTab, 'select_title' => $validate->textField($subpage['select_title']) ]); }); } public function postRequestExistingMenu() { if (!isset($_POST['existing_menu']) || !isset($_POST['pages'])) { return; } $validate = new Validation; return Collection::make($_POST['pages'])->map(function ($subpage, $key) use ($validate) { $validatedSubpageTab = (isset($subpage['subpage_tab']) && $subpage['subpage_tab'] === '1') ? true : false; $validatedParentSlug = $_POST['existing_menu']['menu_slug']; (new SingleOptionsPage())->run([ 'parent_slug' => $validatedParentSlug, 'menu_title' => $validate->textField($subpage['menu_title']), 'capability' => 'manage_options', 'menu_slug' => $validate->alphanumericDashesAll($subpage['subpage_slug']), 'include_tab' => $validatedSubpageTab, 'select_title' => $validate->textField($subpage['select_title']) ]); }); } }