'menu', // Submenu default settings 'page_title' => __( 'Theme Options', 'wprmenu'), 'menu_title' => __('Theme Options', 'wprmenu'), 'capability' => 'edit_theme_options', 'menu_slug' => 'wprmenu-framework', 'parent_slug' => 'themes.php', // Menu default settings 'icon_url' => 'dashicons-menu', 'position' => '61' ); return apply_filters( 'wpr_optionsframework_menu', $menu ); } /** * Add a subpage called "Theme Options" to the appearance menu. * * @since 1.7.0 */ function add_wprmenu_options_page() { $menu = $this->menu_settings(); switch( $menu['mode'] ) { case 'menu': $this->options_screen = add_menu_page( $menu['page_title'], $menu['menu_title'], $menu['capability'], $menu['menu_slug'], array( $this, 'wprmenu_render_options_page' ), $menu['icon_url'], $menu['position'] ); break; default: // http://codex.wordpress.org/Function_Reference/add_submenu_page $this->options_screen = add_submenu_page( $menu['parent_slug'], $menu['page_title'], $menu['menu_title'], $menu['capability'], $menu['menu_slug'], array( $this, 'wprmenu_render_options_page' ) ); break; } } public function wprmenu_admin_url() { return untrailingslashit( plugins_url( '/inc/', WPRMENU_FILE ) ); } /** * Loads the required stylesheets * * @since 1.7.0 */ function enqueue_admin_styles( $hook ) { if ( $this->options_screen != $hook ){ return; } //Register styles. wp_register_style( 'wprmenu_settings_framework_styles', $this->wprmenu_admin_url() . '/assets/css/wprmenu-settings-framework.css', array(), WPRMENU_VERSION ); wp_register_style( 'wprmenu_icons', $this->wprmenu_admin_url() . '/assets/icons/wpr-icons.css', array(), WPRMENU_VERSION ); wp_register_style( 'wprmenu_iconpicker', $this->wprmenu_admin_url() . '/assets/css/jquery.fonticonpicker.min.css', array(), WPRMENU_VERSION ); wp_register_style( 'wprmenu_bootflat', $this->wprmenu_admin_url() . '/assets/css/site.min.css', array(), WPRMENU_VERSION ); //Enqueue styles. wp_enqueue_style( 'wprmenu_settings_framework_styles' ); wp_enqueue_style( 'wprmenu_icons' ); wp_enqueue_style( 'wprmenu_iconpicker' ); wp_enqueue_style( 'wprmenu_bootflat' ); wp_enqueue_style( 'wp-color-picker' ); } public function wprm_demo_import_styles( $hook ) { $screen = get_current_screen(); $current_page = 'wpr-menu_page_wprmenu-demo-import'; wp_register_style( 'Sweetalert2-css', $this->wprmenu_admin_url() . '/assets/css/sweetalert2.min.css', array(), WPRMENU_VERSION ); wp_register_style( 'wpr_import_demo', $this->wprmenu_admin_url() . '/assets/css/wpr_import_demo.css', array(), WPRMENU_VERSION ); if( $screen->id !== $current_page ) return; // Enqueue SweetAlert2 Style wp_enqueue_style( 'Sweetalert2-css' ); wp_enqueue_style( 'wpr_import_demo' ); } function wprm_demo_import_scripts( $hook ) { $screen = get_current_screen(); $current_page = 'wpr-menu_page_wprmenu-demo-import'; if( $screen->id !== $current_page ){ return; } $options = get_option( 'wprmenu_options' ); //Exit Intent wp_register_script( 'wpr-exit-intent', $this->wprmenu_admin_url() . '/assets/js/wpr-exit-intent.js', array( 'jquery' ), WPRMENU_VERSION ); // Enqueue SweetAlert2 JS wp_register_script( 'Sweetalert2-js', $this->wprmenu_admin_url() . '/assets/js/sweetalert2.all.min.js', array( 'jquery'), WPRMENU_VERSION ); wp_register_script( 'wprmenu-import-demo', $this->wprmenu_admin_url() . '/assets/js/wprmenu-import-demo.js', array('jquery', 'wpr-exit-intent', 'Sweetalert2-js'), WPRMENU_VERSION ); $enable_preview = !empty( $options->wpr_live_preview ) ? $options->wpr_live_preview : 0; $params = array( 'ajax_url' => admin_url( 'admin-ajax.php' ), 'please_wait' => __('Please Wait !', 'wprmenu'), 'import_done' => __('Import Done', 'wprmenu'), 'please_reload' => __('Please reload the page by doing click the button below', 'wprmenu'), 'navigating_away' => __('Seems like navigating away', 'wprmenu'), 'confirm_message' => __('Are you sure to navigate away? Please save all the changes otherwise the recent changes will be reverted back', 'wprmenu'), 'options_saved' => __( 'Options Saved!', 'wprmenu'), 'options_not_saved' => __( 'Options Not Saved!', 'wprmenu'), 'options_saved_msg' => __( 'The options has been saved. Please reload this page by doing click on the button below.', 'wprmenu'), 'import_error_title' => __('Oops...', 'wprmenu'), 'pro_version_error' => __('Please upgrade to PRO Version to import this demo.', 'wprmenu'), 'preview_url' => home_url(), 'enable_preview' => $enable_preview, 'import_error' => __('Something went wrong', 'wprmenu'), 'nonce' => wp_create_nonce( 'wprmenu-nonce' ), ); wp_localize_script( 'wprmenu-import-demo' , 'wprmenu_params', $params ); wp_enqueue_script( 'wpr-exit-intent' ); wp_enqueue_script( 'Sweetalert2-js' ); wp_enqueue_script( 'wprmenu-import-demo' ); } /** * Loads the required javascript * * @since 1.7.0 */ function enqueue_admin_scripts( $hook ) { if ( $this->options_screen != $hook ){ return; } // Register scripts. wp_register_script( 'wpr-bootstrap', 'https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js', array( 'jquery'), WPRMENU_VERSION ); wp_register_script( 'wpr-ace', WPRMENU_OPTIONS_FRAMEWORK_DIRECTORY . 'assets/js/ace-min-noconflict/ace.js', array( 'jquery' ), WPRMENU_VERSION ); wp_register_script( 'wpr-ace-theme-chrome', WPRMENU_OPTIONS_FRAMEWORK_DIRECTORY . 'assets/js/ace-min-noconflict/theme-chrome.js', array( 'jquery' ), WPRMENU_VERSION ); wp_register_script( 'wpr-ace-mode-css', WPRMENU_OPTIONS_FRAMEWORK_DIRECTORY . 'assets/js/ace-min-noconflict/mode-css.js', array( 'jquery' ), WPRMENU_VERSION ); wp_register_script( 'icon-picker', WPRMENU_OPTIONS_FRAMEWORK_DIRECTORY . 'assets/js/jquery.fonticonpicker.min.js', array( 'jquery' ), WPRMENU_VERSION ); wp_enqueue_style( 'wpr_select2_style', $this->wprmenu_admin_url() . '/assets/css/select2.min.css', WPRMENU_VERSION ); wp_register_script( 'Select2-js', $this->wprmenu_admin_url() . '/assets/js/select2.full.js', array( 'jquery'), WPRMENU_VERSION ); wp_register_script( 'wpr-exit-intent', WPRMENU_OPTIONS_FRAMEWORK_DIRECTORY . 'assets/js/wpr-exit-intent.js', array( 'jquery' ), WPRMENU_VERSION ); wp_enqueue_style( 'Sweetalert2-css', WPRMENU_OPTIONS_FRAMEWORK_DIRECTORY . 'assets/css/sweetalert2.min.css', WPRMENU_VERSION ); wp_register_script( 'Sweetalert2-js', WPRMENU_OPTIONS_FRAMEWORK_DIRECTORY . 'assets/js/sweetalert2.all.min.js', array( 'jquery'), WPRMENU_VERSION ); wp_register_script( 'wprmenu-options', WPRMENU_OPTIONS_FRAMEWORK_DIRECTORY . 'assets/js/wprmenu-options.js', array( 'jquery','wp-color-picker', 'Select2-js', 'wpr-ace', 'wpr-exit-intent', 'Sweetalert2-js' ), WPRMENU_VERSION ); $params = array( 'options_path' => WPRMENU_OPTIONS_FRAMEWORK_DIRECTORY, 'ajax_url' => admin_url( 'admin-ajax.php' ), 'view_demo' => __('View Demo', 'wprmenu'), 'preview_done' => __('Preview Done', 'wprmenu'), 'loading_preview' => __('Loading Preview', 'wprmenu'), 'import_demo' => __('Import Demo', 'wprmenu'), 'import_error' => __('Something went wrong', 'wprmenu'), 'please_wait' => __('Please Wait !', 'wprmenu'), 'please_reload' => __('Please reload the page by doing click the button below', 'wprmenu'), 'reload' => __('Reload', 'wprmenu'), 'import_error_title' => __('Oops...', 'wprmenu'), 'import_error' => __('Something went wrong', 'wprmenu'), 'import_done' => __('Import Done', 'wprmenu'), 'update_license_key' => __('Please Update Your License Key To Import Demo', 'wprmenu'), 'pro_message' => __('Import requires PRO version', 'wprmenu'), 'site_url' => get_site_url(), 'please_reload' => __('Please reload the page by doing click the button below', 'wprmenu'), 'reload' => __('Reload', 'wprmenu'), 'navigating_away' => __('Seems like navigating away', 'wprmenu'), 'confirm_message' => __('Are you sure to navigate away? Please save all the changes otherwise the recent changes will be reverted back', 'wprmenu'), 'pro_version_text' => __('Pro Version', 'wprmenu'), 'pro_version_upgrade_error' => __('This demo requires pro version to be activated', 'wprmenu'), 'upgrade_to_pro' => __('Upgrade to PRO to use this option.', 'wprmenu'), 'ugrade_pro_link' => WPRMENU_PRO_LINK, 'preview_url' => get_home_url(), 'social_link_remove_confirmation' => __( 'Do you really want to remove this social link?', 'wprmenu' ), ); wp_localize_script( 'wprmenu-options', 'wprmenu_params' , $params ); wp_enqueue_script( 'wpr-bootstrap' ); wp_enqueue_script( 'wpr-ace' ); wp_enqueue_script( 'wpr-ace-theme-chrome' ); wp_enqueue_script( 'wpr-ace-mode-css' ); wp_enqueue_script( 'icon-picker' ); wp_enqueue_script( 'Select2-js' ); wp_enqueue_script( 'wpr-exit-intent' ); wp_enqueue_script( 'Sweetalert2-js' ); wp_enqueue_script( 'wprmenu-options' ); // Inline scripts from options-interface.php add_action( 'admin_head', array( $this, 'wpr_of_admin_head' ) ); } function wpr_of_admin_head() { // Hook to add custom scripts do_action( 'wpr_optionsframework_custom_scripts' ); } /** * Builds out the options panel. * * If we were using the Settings API as it was intended we would use * do_settings_sections here. But as we don't want the settings wrapped in a table, * we'll call our own custom wpr_optionsframework_fields. See options-interface.php * for specifics on how each individual field is generated. * * Nonces are provided using the settings_fields() * * @since 1.7.0 */ function wprmenu_render_options_page() { ?>