theme = $theme; $theme = wp_get_theme(); $arr = array( 'theme-name' => $theme->get( 'Name' ), 'theme-slug' => $theme->get( 'TextDomain' ), 'theme-version' => $theme->get( 'Version' ), ); $this->theme = wp_parse_args( $this->theme, $arr ); /** * If PHP Version is older than 5.3, we switch back to default theme */ add_action( 'admin_init', array( $this, 'php_version_check' ) ); /** * Backward compatibility */ add_action( 'admin_init', array( $this, 'backward_compatibility' ) ); /** * Add a notice for the MachoThemes feedback */ add_action( 'admin_init', array( $this, 'add_feedback_notice' ) ); /** * Start theme setup */ add_action( 'after_setup_theme', array( $this, 'theme_setup' ) ); /** * Enqueue styles and scripts */ add_action( 'wp_enqueue_scripts', array( $this, 'enqueues' ) ); /** * Customizer enqueues & controls */ add_action( 'customize_register', array( $this, 'customize_register_init' ) ); /** * Declare content width */ add_action( 'after_setup_theme', array( $this, 'content_width' ), 10 ); /** * Init epsilon dashboard */ add_filter( 'epsilon-dashboard-setup', array( $this, 'epsilon_dashboard' ) ); add_filter( 'epsilon-onboarding-setup', array( $this, 'epsilon_onboarding' ) ); /** * Grab all class methods and initiate automatically */ $methods = get_class_methods( 'MedZone_Lite' ); foreach ( $methods as $method ) { if ( false !== strpos( $method, 'init_' ) ) { $this->$method(); } } } /** * Adds a feedback notice if conditions are met */ public function add_feedback_notice() { if ( get_user_meta( get_current_user_id(), 'notification_feedback', true ) ) { return; } $page_on_front = 'page' == get_option( 'show_on_front' ) ? true : false; $id = absint( get_option( 'page_on_front', 0 ) ); if ( $page_on_front && 0 !== $id ) { $revisions = wp_get_post_revisions( $id ); if ( count( $revisions ) > 3 ) { /** * Revision keys are ID's, and it's not incremental */ $first = end( $revisions ); $revision_time = new DateTime( $first->post_modified ); $today = new DateTime( 'today' ); $interval = $today->diff( $revision_time )->format( '%d' ); if ( 2 <= absint( $interval ) ) { $this->_notify_feedback(); } } } } /** * Notify of feedback */ private function _notify_feedback() { if ( ! class_exists( 'Epsilon_Notifications' ) ) { return; } $html = '

'; $html .= vsprintf( // Translators: 1 is Theme Name, 2 is opening Anchor, 3 is closing. __( 'We\'ve been working hard on making %1$s the best one out there. We\'re interested in hearing your thoughts about %1$s and what we could do to make it even better. %2$sSend your feedback our way%3$s.

Note: A 10%% discount coupon will be emailed to you after form submission. Please use a valid email address.', 'medzone-lite' ), array( 'MedZone Lite', '', '', ) ); $notifications = Epsilon_Notifications::get_instance(); $notifications->add_notice( array( 'id' => 'notification_feedback', 'type' => 'notice epsilon-big', 'message' => $html, ) ); } /** * Backward compatibility */ public function backward_compatibility() { $theme = wp_get_theme(); $version = $theme->get( 'Version' ); $backward = get_theme_mod( 'medzone_lite_updated_to_104', false ); if ( wp_doing_ajax() ) { return; } if ( version_compare( '1.0.4', $version ) >= 0 && ! $backward ) { $page = MedZone_Lite_Notify_System::is_not_static_page(); if ( $page ) { $id = get_option( 'page_on_front' ); $options = get_post_meta( Epsilon_Content_Backup::get_instance()->setting_page, 'medzone_lite_frontpage_sections', true ); $imported = get_theme_mod( $this->theme['theme-slug'] . '_content_imported', false ); if ( $imported ) { return; } $sanitized = array(); $sanitized[ 'medzone_lite_frontpage_sections_' . $id ] = array(); foreach ( $options as $k => $v ) { $sanitized[ 'medzone_lite_frontpage_sections_' . $id ] = $v; }; update_post_meta( $id, 'medzone_lite_frontpage_sections_' . $id, $sanitized ); set_theme_mod( $this->theme['theme-slug'] . '_content_imported', true ); set_theme_mod( 'medzone_lite_updated_to_104', true ); } } } /** * Check PHP Version and switch theme */ public function php_version_check() { if ( version_compare( PHP_VERSION, '5.3.0' ) >= 0 ) { return true; } switch_theme( WP_DEFAULT_THEME ); return false; } /** * Initiate the epsilon framework */ public function init_epsilon() { new Epsilon_Framework(); $this->start_typography_controls(); $this->start_color_schemes(); } /** * Initiate the Hooks in MedZone_Lite */ public function init_hooks() { new MedZone_Lite_Hooks(); } /** * Initiate the user profiles */ public function init_user_profile() { new MedZone_Lite_Profile_Fields(); } /** * Loads sidebars and widgets */ public function init_sidebars() { new MedZone_Lite_Sidebars(); } /** * Initiate the setting helper */ public function customize_register_init() { new MedZone_Lite_Customizer(); } /** * Initiate the welcome screen */ public function init_dashboard() { Epsilon_Dashboard::get_instance( array( 'tracking' => $this->theme['theme-slug'] . '_tracking_enable', ) ); $dashboard = MedZone_Lite_Dashboard_Setup::get_instance(); $dashboard->add_admin_notice(); $upsells = get_option( $this->theme['theme-slug'] . '_theme_upsells', false ); if ( $upsells ) { add_filter( 'epsilon_upsell_control_display', '__return_false' ); } } /** * Loads the typography controls required scripts */ public function start_typography_controls() { /** * Instantiate the Epsilon Typography object */ $options = array( 'medzone_lite_typography_headings', 'medzone_lite_paragraphs_typography', ); $handler = 'medzone-lite-main'; Epsilon_Typography::get_instance( $options, $handler ); } /** * Load color scheme controls */ private function start_color_schemes() { $handler = 'medzone-style-overrides'; $args = array( 'fields' => array( 'epsilon_accent_color' => array( 'label' => esc_html__( 'Accent Color #1', 'medzone-lite' ), 'description' => esc_html__( 'Theme main color.', 'medzone-lite' ), 'default' => '#cc263d', 'section' => 'colors', 'hover-state' => true, ), 'epsilon_accent_color_second' => array( 'label' => esc_html__( 'Accent Color #2', 'medzone-lite' ), 'description' => esc_html__( 'The second main color.', 'medzone-lite' ), 'default' => '#364d7c', 'section' => 'colors', 'hover-state' => false, ), 'epsilon_text_color' => array( 'label' => esc_html__( 'Text Color', 'medzone-lite' ), 'description' => esc_html__( 'The color used for paragraphs.', 'medzone-lite' ), 'default' => '#777777', 'section' => 'colors', 'hover-state' => false, ), 'epsilon_title_color' => array( 'label' => esc_html__( 'Title Color', 'medzone-lite' ), 'description' => esc_html__( 'The color used for titles.', 'medzone-lite' ), 'default' => '#1a171c', 'section' => 'colors', 'hover-state' => false, ), 'epsilon_contrast_color' => array( 'label' => esc_html__( 'Contrast Color', 'medzone-lite' ), 'description' => esc_html__( 'The color used for paragraphs in a contrast background.', 'medzone-lite' ), 'default' => '#d1d5de', 'section' => 'colors', 'hover-state' => false, ), 'epsilon_footer_bg' => array( 'label' => esc_html__( 'Footer Background Color', 'medzone-lite' ), 'description' => esc_html__( 'The background color of footer.', 'medzone-lite' ), 'default' => '#364d7c', 'section' => 'colors', 'hover-state' => false, ), 'epsilon_footer_text_color' => array( 'label' => esc_html__( 'Footer Text Color', 'medzone-lite' ), 'description' => esc_html__( 'The color used for footer paragraphs.', 'medzone-lite' ), 'default' => '#ffffff', 'section' => 'colors', 'hover-state' => false, ), 'epsilon_footer_copyright_bg' => array( 'label' => esc_html__( 'Footer Copyright Background Color', 'medzone-lite' ), 'description' => esc_html__( 'The background color of copyright.', 'medzone-lite' ), 'default' => '#cc263d', 'section' => 'colors', 'hover-state' => false, ), 'epsilon_footer_copyright_text_color' => array( 'label' => esc_html__( 'Footer Copyright Text Color', 'medzone-lite' ), 'description' => esc_html__( 'The color used for text in the copyright section.', 'medzone-lite' ), 'default' => '#d1d5de', 'section' => 'colors', 'hover-state' => false, ), ), 'css' => Epsilon_Color_Scheme::load_css_overrides( get_template_directory() . '/assets/css/style-overrides.css' ), ); Epsilon_Color_Scheme::get_instance( $handler, $args ); } /** * Separate setup from init * * @param array $setup * * @return array */ public function epsilon_dashboard( $setup = array() ) { $dashboard = new MedZone_Lite_Dashboard_Setup(); $setup['actions'] = $dashboard->get_actions(); $setup['tabs'] = $dashboard->get_tabs( $setup ); $setup['plugins'] = $dashboard->get_plugins(); $setup['privacy'] = $dashboard->get_privacy_options(); $setup['edd'] = $dashboard->get_edd( $setup ); $tab = get_user_meta( get_current_user_id(), 'epsilon_active_tab', true ); $setup['activeTab'] = ! empty( $tab ) ? absint( $tab ) : 0; return $setup; } /** * Add steps to onboarding * * @param array $setup * * @return array */ public function epsilon_onboarding( $setup = array() ) { $dashboard = new MedZone_Lite_Dashboard_Setup(); $setup['steps'] = $dashboard->get_steps(); $setup['plugins'] = $dashboard->get_plugins( true ); $setup['privacy'] = $dashboard->get_privacy_options(); return $setup; } /** * Register Scripts and Styles for the theme */ public function enqueues() { $theme = wp_get_theme(); /** * Register scripts */ wp_register_style( 'font-awesome', get_template_directory_uri() . '/assets/vendors/font-awesome/css/font-awesome.min.css' ); wp_register_script( 'superfish-hoverIntent', get_template_directory_uri() . '/assets/vendors/superfish/hoverIntent.min.js', array(), $theme['Version'], true ); wp_register_script( 'superfish', get_template_directory_uri() . '/assets/vendors/superfish/superfish.min.js', array(), $theme['Version'], true ); wp_register_script( 'bxslider', get_template_directory_uri() . '/assets/vendors/bxslider/jquery.bxslider.min.js', array(), $theme['Version'], true ); wp_register_style( 'bxslider', get_template_directory_uri() . '/assets/vendors/bxslider/jquery.bxslider.css' ); wp_register_style( 'slick', get_template_directory_uri() . '/assets/vendors/slick/slick.css' ); wp_register_script( 'slick', get_template_directory_uri() . '/assets/vendors/slick/slick.min.js', array(), $theme['Version'], true ); wp_register_script( 'stickem', get_template_directory_uri() . '/assets/vendors/stickem/jquery.stickem.js', array(), $theme['Version'], true ); wp_register_script( 'offscreen', get_template_directory_uri() . '/assets/vendors/offscreen/offscreen.min.js', array(), $theme['Version'], true ); /** * Google fonts */ wp_enqueue_style( 'medzone-google-fonts', '//fonts.googleapis.com/css?family=Lato:300,400|Poppins:300,400,600', array(), $theme['Version'], 'all' ); /** * Load stylesheet */ wp_enqueue_style( 'medzone-lite', get_stylesheet_uri() ); wp_enqueue_style( 'medzone-lite-main', get_template_directory_uri() . '/assets/css/main.css', array( 'font-awesome', 'bxslider', 'slick', 'medzone-lite', ), $theme['Version'] ); wp_enqueue_style( 'medzone-style-overrides', get_template_directory_uri() . '/assets/css/overrides.css' ); /** * Load scripts */ wp_enqueue_script( 'medzone-lite-main', get_template_directory_uri() . '/assets/js/main.js', array( 'jquery', 'superfish-hoverIntent', 'superfish', 'bxslider', 'slick', 'stickem', 'offscreen', ), $theme['Version'], true ); if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) { wp_enqueue_script( 'comment-reply' ); } } /** * MedZone_Lite Theme Setup */ public function theme_setup() { /** * Load theme text-domain */ load_theme_textdomain( 'medzone-lite', get_template_directory() . '/languages' ); /** * Load framework text-domain */ load_textdomain( 'epsilon-framework', '' ); /** * Load menus */ register_nav_menus( array( 'primary' => esc_html__( 'Primary Navigation', 'medzone-lite' ), 'footer' => esc_html__( 'Footer Navigation', 'medzone-lite' ), ) ); /** * Theme supports */ add_theme_support( 'automatic-feed-links' ); add_theme_support( 'title-tag' ); add_theme_support( 'post-thumbnails' ); add_theme_support( 'customize-selective-refresh-widgets' ); add_theme_support( 'custom-logo', array( 'height' => 35, 'width' => 130, 'flex-width' => true, ) ); add_theme_support( 'post-formats', array( 'aside', 'image', 'quote', 'link', 'gallery', 'video', 'status', 'audio', 'chat', ) ); add_theme_support( 'custom-header', array( 'width' => 1920, 'height' => 400, 'flex-height' => true, 'flex-width' => true, 'default-text-color' => '', 'header-text' => false, 'uploads' => true, 'video' => false, ) ); /** * Image sizes */ add_image_size( 'medzone-blog-image', 1140, 760, true ); add_image_size( 'medzone-hospital-slider', 1100, 500, true ); add_image_size( 'medzone-doctor-portrait', 500, 700, true ); add_image_size( 'medzone-testimonial-portrait', 260, 300, true ); } /** * Content width */ public function content_width() { if ( ! isset( $GLOBALS['content_width'] ) ) { $GLOBALS['content_width'] = 600; } } }