main_page(); $this->plugins_shortcut(); } private function plugins_shortcut() { // Settings link in plugin overview on plugins page add_filter('plugin_row_meta', function ($links, $file_name) { if ($file_name == 'almefy/plugin.php') { return array_merge($links, ['settings' => "" . __('Settings', 'almefy-me') . ""]); } return $links; }, 10, 2); } // Add settings page to admin panel. private function main_page() { add_action('admin_enqueue_scripts', function ($hook) { if ($hook == $this->page_suffix) { wp_enqueue_style('almefy-settings-style', plugin_dir_url(__FILE__) . "style.css", ['almefy-global'], '1'); } }); add_action('admin_menu', function () { $this->page_suffix = add_menu_page('Almefy Settings', 'Almefy', 'manage_options', 'almefy', function () { if (!current_user_can('manage_options')) { return; } require_once(dirname(__FILE__) . '/header.php'); // show settings saved info if (isset($_GET['settings-updated'])) { add_settings_error('almefy_messages', 'almefy_message', __('Settings Saved', 'almefy-me'), 'updated'); } // show messages/errors settings_errors('almefy_messages'); // Render Settings ?>