generalArr = $generalArr; // Hook for adding admin menus add_action('admin_menu', array($this, 'mt_add_pages')); } // action function for above hook public function mt_add_pages() { $generalArr = $this->generalArr; foreach ($generalArr->menus as $key => $value) { if ($value->type === 'cPage') { $handler = (isset($value->handler)) ? $value->handler : 'top_level_handle'; $capability = (isset($value->capability)) ? $value->capability : 'manage_options'; $pageTitle = (isset($value->pageTitle)) ? $value->pageTitle : 'Default Custom page title'; $position = (isset($value->position)) ? $value->position : null; $icon_url = (isset($value->icon_url)) ? $value->icon_url : ''; add_menu_page($pageTitle, $value->label, $capability, $handler, array($this, 'ab_toplevel_page'), $icon_url, $position); } } } public function saveArrayFields($hidden_field_name, $hidden_field_value) { if (empty($_POST)) { return false; } // See if the user has posted us some information // If they did, this hidden field will be set to 'Y' if (isset($_POST[ $hidden_field_name ]) && $_POST[ $hidden_field_name ] == $hidden_field_value) { // Read their posted value $fullPostString = serialize($_POST['cPage']); // Save the posted value in the database update_option($hidden_field_name, $fullPostString); // Put a "settings saved" message on the screen ?>