array( 'title' => __( 'Backgrounds', 'gp-premium' ), 'description' => __( 'Set background images for various HTML elements.', 'gp-premium' ), 'key' => 'generate_package_backgrounds', 'settings' => 'generate_background_settings', 'isActive' => 'activated' === get_option( 'generate_package_backgrounds', false ), 'exportable' => true, ), 'Blog' => array( 'title' => __( 'Blog', 'gp-premium' ), 'description' => __( 'Set blog options like infinite scroll, masonry layouts and more.', 'gp-premium' ), 'key' => 'generate_package_blog', 'settings' => 'generate_blog_settings', 'isActive' => 'activated' === get_option( 'generate_package_blog', false ), 'exportable' => true, ), 'Colors' => array( 'title' => __( 'Colors', 'gp-premium' ), 'key' => 'generate_package_colors', 'isActive' => 'activated' === get_option( 'generate_package_colors', false ), ), 'Copyright' => array( 'title' => __( 'Copyright', 'gp-premium' ), 'description' => __( 'Set a custom copyright message in your footer.', 'gp-premium' ), 'key' => 'generate_package_copyright', 'settings' => 'copyright', 'isActive' => 'activated' === get_option( 'generate_package_copyright', false ), 'exportable' => true, ), 'Disable Elements' => array( 'title' => __( 'Disable Elements', 'gp-premium' ), 'description' => __( 'Disable default theme elements on specific pages or inside a Layout Element.', 'gp-premium' ), 'key' => 'generate_package_disable_elements', 'isActive' => 'activated' === get_option( 'generate_package_disable_elements', false ), ), 'Elements' => array( 'title' => __( 'Elements', 'gp-premium' ), 'description' => __( 'Use our block editor theme builder, build advanced HTML hooks, and gain more Layout control.', 'gp-premium' ), 'key' => 'generate_package_elements', 'isActive' => 'activated' === get_option( 'generate_package_elements', false ), ), 'Hooks' => array( 'title' => __( 'Hooks', 'gp-premium' ), 'description' => __( 'This module has been deprecated. Please use Elements instead.', 'gp-premium' ), 'key' => 'generate_package_hooks', 'settings' => 'generate_hooks', 'isActive' => 'activated' === get_option( 'generate_package_hooks', false ), 'exportable' => true, ), 'Menu Plus' => array( 'title' => __( 'Menu Plus', 'gp-premium' ), 'description' => __( 'Set up a mobile header, sticky navigation or off-canvas panel.', 'gp-premium' ), 'key' => 'generate_package_menu_plus', 'settings' => 'generate_menu_plus_settings', 'isActive' => 'activated' === get_option( 'generate_package_menu_plus', false ), 'exportable' => true, ), 'Page Header' => array( 'title' => __( 'Page Header', 'gp-premium' ), 'description' => __( 'This module has been deprecated. Please use Elements instead.', 'gp-premium' ), 'key' => 'generate_package_page_header', 'settings' => 'generate_page_header_settings', 'isActive' => 'activated' === get_option( 'generate_package_page_header', false ), 'exportable' => true, ), 'Secondary Nav' => array( 'title' => __( 'Secondary Nav', 'gp-premium' ), 'description' => __( 'Add a fully-featured secondary navigation to your site.', 'gp-premium' ), 'key' => 'generate_package_secondary_nav', 'settings' => 'generate_secondary_nav_settings', 'isActive' => 'activated' === get_option( 'generate_package_secondary_nav', false ), 'exportable' => true, ), 'Sections' => array( 'title' => __( 'Sections', 'gp-premium' ), 'description' => __( 'This module has been deprecated. Please consider using our GenerateBlocks plugin instead.', 'gp-premium' ), 'key' => 'generate_package_sections', 'isActive' => 'activated' === get_option( 'generate_package_sections', false ), ), 'Spacing' => array( 'title' => __( 'Spacing', 'gp-premium' ), 'description' => __( 'Set the padding and overall spacing of your theme elements.', 'gp-premium' ), 'key' => 'generate_package_spacing', 'settings' => 'generate_spacing_settings', 'isActive' => 'activated' === get_option( 'generate_package_spacing', false ), 'exportable' => true, ), 'Typography' => array( 'title' => __( 'Typography', 'gp-premium' ), 'description' => __( 'This module has been deprecated. Switch to our dynamic typography system in Customize > General instead.', 'gp-premium' ), 'key' => 'generate_package_typography', 'isActive' => 'activated' === get_option( 'generate_package_typography', false ), ), 'WooCommerce' => array( 'title' => __( 'WooCommerce', 'gp-premium' ), 'description' => __( 'Add colors, typography, and layout options to your WooCommerce store.', 'gp-premium' ), 'key' => 'generate_package_woocommerce', 'settings' => 'generate_woocommerce_settings', 'isActive' => 'activated' === get_option( 'generate_package_woocommerce', false ), 'exportable' => true, ), ); if ( version_compare( PHP_VERSION, '5.4', '>=' ) && ! defined( 'GENERATE_DISABLE_SITE_LIBRARY' ) ) { $modules['Site Library'] = array( 'title' => __( 'Site Library', 'gp-premium' ), 'description' => __( 'Choose from an extensive library of professionally designed starter sites.', 'gp-premium' ), 'key' => 'generate_package_site_library', 'isActive' => 'activated' === get_option( 'generate_package_site_library', false ), ); } if ( function_exists( 'generate_is_using_dynamic_typography' ) && generate_is_using_dynamic_typography() ) { unset( $modules['Typography'] ); } if ( version_compare( generate_premium_get_theme_version(), '3.1.0-alpha.1', '>=' ) ) { unset( $modules['Colors'] ); } $deprecated_modules = apply_filters( 'generate_premium_deprecated_modules', array( 'Page Header', 'Hooks', 'Sections', ) ); foreach ( $deprecated_modules as $deprecated_module ) { if ( isset( $modules[ $deprecated_module ] ) ) { $modules[ $deprecated_module ]['deprecated'] = true; } } ksort( $modules ); return $modules; } /** * Get modules that can have their settings exported and imported. */ public static function get_exportable_modules() { $modules = array( 'Core' => array( 'settings' => 'generate_settings', 'title' => __( 'Core', 'gp-premium' ), 'isActive' => true, ), ); foreach ( self::get_modules() as $key => $data ) { if ( ! empty( $data['exportable'] ) && $data['isActive'] ) { $modules[ $key ] = $data; } } return $modules; } /** * Get options using theme_mods. */ public static function get_theme_mods() { $theme_mods = array( 'font_body_variants', 'font_body_category', 'font_site_title_variants', 'font_site_title_category', 'font_site_tagline_variants', 'font_site_tagline_category', 'font_navigation_variants', 'font_navigation_category', 'font_secondary_navigation_variants', 'font_secondary_navigation_category', 'font_buttons_variants', 'font_buttons_category', 'font_heading_1_variants', 'font_heading_1_category', 'font_heading_2_variants', 'font_heading_2_category', 'font_heading_3_variants', 'font_heading_3_category', 'font_heading_4_variants', 'font_heading_4_category', 'font_heading_5_variants', 'font_heading_5_category', 'font_heading_6_variants', 'font_heading_6_category', 'font_widget_title_variants', 'font_widget_title_category', 'font_footer_variants', 'font_footer_category', 'generate_copyright', ); if ( function_exists( 'generate_is_using_dynamic_typography' ) && generate_is_using_dynamic_typography() ) { $theme_mods = array( 'generate_copyright', ); } return $theme_mods; } /** * Get our setting keys. */ public static function get_setting_keys() { return array( 'generate_settings', 'generate_background_settings', 'generate_blog_settings', 'generate_hooks', 'generate_page_header_settings', 'generate_secondary_nav_settings', 'generate_spacing_settings', 'generate_menu_plus_settings', 'generate_woocommerce_settings', ); } /** * Returns safely the license key. */ public static function get_license_key() { $license_key = get_option( 'gen_premium_license_key', '' ); if ( $license_key && strlen( $license_key ) > 4 ) { $hidden_length = strlen( $license_key ) - 4; $safe_part = substr( $license_key, 0, 4 ); $hidden_part = implode('', array_fill( 0, $hidden_length, '*' ) ); return $safe_part . $hidden_part; } return $license_key; } /** * Add our scripts to the page. */ public function enqueue_scripts() { if ( ! class_exists( 'GeneratePress_Dashboard' ) ) { return; } $dashboard_pages = GeneratePress_Dashboard::get_pages(); $current_screen = get_current_screen(); if ( in_array( $current_screen->id, $dashboard_pages ) ) { wp_enqueue_style( 'generate-pro-dashboard', GP_PREMIUM_DIR_URL . 'dist/style-dashboard.css', array( 'wp-components' ), GP_PREMIUM_VERSION ); if ( 'appearance_page_generate-options' === $current_screen->id ) { wp_enqueue_script( 'generate-pro-dashboard', GP_PREMIUM_DIR_URL . 'dist/dashboard.js', array(), GP_PREMIUM_VERSION, true ); wp_set_script_translations( 'generate-pro-dashboard', 'gp-premium', GP_PREMIUM_DIR_PATH . 'langs' ); wp_localize_script( 'generate-pro-dashboard', 'generateProDashboard', array( 'modules' => self::get_modules(), 'exportableModules' => self::get_exportable_modules(), 'siteLibraryUrl' => admin_url( 'themes.php?page=generatepress-library' ), 'elementsUrl' => admin_url( 'edit.php?post_type=gp_elements' ), 'hasWooCommerce' => class_exists( 'WooCommerce' ), 'licenseKey' => self::get_license_key(), 'licenseKeyStatus' => get_option( 'gen_premium_license_key_status', 'deactivated' ), 'betaTester' => get_option( 'gp_premium_beta_testing', false ), ) ); } } } /** * Enable beta testing if our option is set. * * @since 2.1.0 * @param boolean $value Whether beta testing is on or not. */ public function set_beta_tester( $value ) { if ( get_option( 'gp_premium_beta_testing', false ) ) { return true; } return $value; } /** * Add the container for our start customizing app. */ public function module_list() { echo '
'; } /** * Add the container for our start customizing app. */ public function license_key() { echo ''; } /** * Add the container for our start customizing app. */ public function import_export() { echo ''; } /** * Add the container for our reset app. */ public function reset() { echo ''; } } GeneratePress_Pro_Dashboard::get_instance();