theme_name = esc_html__( 'Blogig', 'blogig' ); $this->version = wp_get_theme()->get( 'Version' ); $this->demofile = include get_template_directory() . '/inc/admin/assets/demos.php'; $this->blogig_disable_admin_notices = get_theme_mod( 'blogig_disable_admin_notices', false ); $this->restriction_message = esc_html__( "You dont have permission to perform this action", "blogig" ); //Add the theme page add_action( 'admin_menu', array( $this, 'add_theme_info_menu' ) ); if( ! $this->blogig_disable_admin_notices ) : add_action( 'admin_notices', array( $this, 'add_welcome_admin_notice' ) ); add_action( 'admin_notices', array( $this, 'add_review_admin_notice' ) ); endif; add_action( 'admin_enqueue_scripts', array( $this, 'theme_info_scripts' ) ); add_action( 'wp_ajax_blogig_importer_plugin_action', array( $this, 'blogig_importer_plugin_action' ) ); add_action( 'wp_ajax_blogig_set_ajax_transient', array( $this, 'blogig_set_ajax_transient' ) ); add_action( 'wp_ajax_blogig_dismiss_welcome_notice', array( $this, 'blogig_dismiss_welcome_notice' ) ); add_action( 'wp_dashboard_setup', array( $this, 'add_dashboard_widgets' ) ); } /** * Enqueue scripts * */ function theme_info_scripts($hook) { if( ! $this->blogig_disable_admin_notices ) : $blogig_welcome_notice_dismiss = get_option( 'blogig_welcome_notice_dismiss' ); if( ! $blogig_welcome_notice_dismiss ) { wp_enqueue_style( 'blogig-welcome-notice', get_template_directory_uri() . '/inc/admin/assets/welcome-notice.css', array(), esc_attr( $this->version ), 'all' ); } if( ! get_transient( 'blogig_show_review_notice' ) ) : wp_enqueue_style( 'blogig-admin-notice', get_template_directory_uri() . '/inc/admin/assets/admin-notice.css', array(), esc_attr( $this->version ), 'all' ); endif; wp_enqueue_script( 'blogig-admin-notice', get_template_directory_uri() . '/inc/admin/assets/admin-notice.js', array( 'jquery' ), esc_attr( $this->version ), true ); wp_localize_script( 'blogig-admin-notice', 'blogigThemeInfoObject', array( 'ajaxUrl' => esc_url( admin_url( 'admin-ajax.php' ) ), '_wpnonce' => wp_create_nonce( 'blogig-theme-info-nonce' ), 'dismissingText' => esc_html__( 'Dismissing', 'blogig' ) )); endif; if( $hook != "appearance_page_blogig-info" ) { return; } wp_enqueue_style( 'blogig-info', get_template_directory_uri() . '/inc/admin/assets/info-page.css', array(), esc_attr( $this->version ), 'all' ); wp_enqueue_script( 'blogig-info', get_template_directory_uri() . '/inc/admin/assets/info-page.js', array( 'jquery' ), esc_attr( $this->version ), true ); wp_localize_script( 'blogig-info', 'blogigThemeInfoObject', array( 'ajaxUrl' => esc_url( admin_url( 'admin-ajax.php' ) ), '_wpnonce' => wp_create_nonce( 'blogig-theme-info-nonce' ) )); } // Register admin menu for theme info function add_theme_info_menu() { $theme_info = add_theme_page( esc_html__( 'Blogig Options', 'blogig' ), esc_html__( 'Blogig Options','blogig' ), 'manage_options', 'blogig-info', array( $this, 'info_page_callback' ) ); } /** * Theme info page callback * * renders the theme info structure */ function info_page_callback() { ?>

theme_name ). ' - ' . esc_attr( $this->version ); ?>

importer_status = $this->plugin_active_status('blaze-demo-importer/blaze-demo-importer.php'); switch( $this->importer_status ) { case 'inactive' : printf( esc_html__( 'Activate Blazethemes Demo Importer Now and Import any available demo in One Click', 'blogig') . ' %s', '' ); break; case 'install' : printf( esc_html__( 'Install BlazeThemes Demo Importer and Import any available demo in One Click', 'blogig') . ' %s', '' ); break; default: esc_html_e( 'All Ready for demo import!! Setup your site exactly like demo', 'blogig' ); } ?>
theme_display_demos(); ?>
demofile) && !is_null($this->demofile) && !empty($this->demofile)) { $tags = array(); foreach ($this->demofile as $demo_slug => $demo_pack) { if (isset($demo_pack['tags']) && is_array($demo_pack['tags'])) { foreach ($demo_pack['tags'] as $key => $tag) { $tags[$key] = $tag; } } } asort($tags); if ( !empty( $tags ) ) { ?>
demofile as $demo_slug => $demo_pack) { $tags = $class = ''; if (isset($demo_pack['tags'])) { $tags = implode(' ', array_keys($demo_pack['tags'])); } $classes = $tags; $type = isset($demo_pack['type']) ? $demo_pack['type'] : 'free'; ?>

importer_status === 'active' ) { ?>
' .esc_html( $pagebuilder ). ''; } } ?>
demofile) && !is_null($this->demofile)) { foreach ($this->demofile as $demo_slug => $demo_pack) { ?>
restriction_message ); $_plugin_action = isset( $_REQUEST['plugin_action'] ) ? sanitize_text_field( $_REQUEST['plugin_action'] ) : ''; $file_path = 'blaze-demo-importer/blaze-demo-importer.php'; if( $_plugin_action === 'activate' ) { if( $file_path ) { activate_plugin( $file_path, '', false, true ); } $this->ajax_response['status'] = true; $this->ajax_response['message'] = esc_html__( 'Demo importer plugin activated', 'blogig' ); $this->send_ajax_response(); } else if( $_plugin_action === 'install' ) { $download_link = esc_url( 'https://downloads.wordpress.org/plugin/blaze-demo-importer.zip' ); // Include required libs for installation require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'; require_once ABSPATH . 'wp-admin/includes/class-wp-ajax-upgrader-skin.php'; require_once ABSPATH . 'wp-admin/includes/class-plugin-upgrader.php'; $skin = new WP_Ajax_Upgrader_Skin(); $upgrader = new Plugin_Upgrader($skin); $upgrader->install( $download_link ); activate_plugin( $file_path, '', false, true ); $this->ajax_response['status'] = true; $this->ajax_response['message'] = esc_html__( 'Demo importer plugin installed and activated', 'blogig' ); $this->send_ajax_response(); } $this->ajax_response['status'] = false; $this->ajax_response['message'] = esc_html__( 'Error while trying to install or active the plugin.', 'blogig' ); $this->send_ajax_response(); } /** * Set transient required for theme * */ function blogig_set_ajax_transient() { check_ajax_referer( 'blogig-theme-info-nonce', '_wpnonce' ); if ( ! current_user_can( 'manage_options' ) ) { // Check if the current user can manage options (an administrator) wp_die( $this->restriction_message ); } set_transient( 'blogig_show_review_notice', 'hide' ); $this->ajax_response['status'] = true; $this->ajax_response['message'] = esc_html__( 'Review notice hidden.', 'blogig' ); $this->send_ajax_response(); } /** * Set transient required for theme * */ function blogig_dismiss_welcome_notice() { check_ajax_referer( 'blogig-theme-info-nonce', '_wpnonce' ); if ( ! current_user_can( 'manage_options' ) ) { // Check if the current user can manage options (an administrator) wp_die( $this->restriction_message ); } update_option( 'blogig_welcome_notice_dismiss', true ); $this->ajax_response['status'] = true; $this->ajax_response['message'] = esc_html__( 'Welcom notice hidden', 'blogig' ); $this->send_ajax_response(); } public function send_ajax_response() { $json = wp_json_encode( $this->ajax_response ); echo $json; die(); } /** * Add welcome notice to the admin dashboard * * @since 1.1.0 */ function add_welcome_admin_notice() { if ( ! current_user_can( 'manage_options' ) ) { // Check if the current user can manage options (an administrator) return; } if ( isset( $_GET['activate'] ) ) unset( $_GET['activate'] ); $blogig_welcome_notice_dismiss = get_option( 'blogig_welcome_notice_dismiss' ); if( $blogig_welcome_notice_dismiss ) { return; } if( isset( $_GET['page'] ) ) { if( $_GET['page'] == 'blogig-info' ) { return; } } ?>

'; foreach( $responseBody as $item ) : ?>
  • title->rendered ); ?>
    excerpt->rendered ); ?>
  • '; ?> name = $name; $this->type = $type; $this->dismiss_url = $dismiss_url; $this->temporary_dismiss_url = $temporary_dismiss_url; $this->pricing_url = 'https://blazethemes.com/theme/blogig-pro/'; $this->current_user_id = get_current_user_id(); // Notice markup. add_action('admin_notices', array($this, 'notice')); if ( $this->is_dismiss_notice() ) { add_action( 'admin_enqueue_scripts', array( $this, 'add_scripts' ) ); } $this->dismiss_notice(); $this->dismiss_notice_temporary(); } public function notice() { if ( ! $this->is_dismiss_notice() ) { $this->notice_markup(); } } // add notice scripts public function add_scripts() { wp_enqueue_style( 'blogig-upgrade-notice', get_template_directory_uri() . '/inc/admin/assets/upgrade-notice.css', array(), '1.0.3', 'all' ); } private function is_dismiss_notice(){ return apply_filters('blogig_' . $this->name . '_notice_dismiss', true); } public function notice_markup(){ echo ''; } /** * Hide a notice if the GET variable is set. */ public function dismiss_notice() { if (isset($_GET['blogig_notice_dismiss']) && isset($_GET['_blogig_upgrade_notice_dismiss_nonce'])) { // WPCS: input var ok. if (!wp_verify_nonce(wp_unslash($_GET['_blogig_upgrade_notice_dismiss_nonce']), 'blogig_upgrade_notice_dismiss_nonce')) { // phpcs:ignore WordPress.VIP.ValidatedSanitizedInput.InputNotSanitized wp_die(__('Action failed. Please refresh the page and retry.', 'blogig')); // WPCS: xss ok. } if (!current_user_can('publish_posts')) { wp_die(__('Cheatin’ huh?', 'blogig')); // WPCS: xss ok. } $dismiss_notice = sanitize_text_field(wp_unslash($_GET['blogig_notice_dismiss'])); // Hide. if ($dismiss_notice === $_GET['blogig_notice_dismiss']) { add_user_meta(get_current_user_id(), 'blogig_' . $dismiss_notice . '_notice_dismiss', 'yes', true); } } } public function dismiss_notice_temporary() { if (isset($_GET['blogig_notice_dismiss_temporary']) && isset($_GET['_blogig_upgrade_notice_dismiss_temporary_nonce'])) { // WPCS: input var ok. if (!wp_verify_nonce(wp_unslash($_GET['_blogig_upgrade_notice_dismiss_temporary_nonce']), 'blogig_upgrade_notice_dismiss_temporary_nonce')) { // phpcs:ignore WordPress.VIP.ValidatedSanitizedInput.InputNotSanitized wp_die(__('Action failed. Please refresh the page and retry.', 'blogig')); // WPCS: xss ok. } if (!current_user_can('publish_posts')) { wp_die(__('Cheatin’ huh?', 'blogig')); // WPCS: xss ok. } $dismiss_notice = sanitize_text_field(wp_unslash($_GET['blogig_notice_dismiss_temporary'])); // Hide. if ($dismiss_notice === $_GET['blogig_notice_dismiss_temporary']) { add_user_meta(get_current_user_id(), 'blogig_' . $dismiss_notice . '_notice_dismiss_temporary', 'yes', true); } } } } class Blogig_Upgrade_Notice extends Blogig_Notice { public function __construct() { if ( ! current_user_can( 'publish_posts' ) ) { return; } $dismiss_url = wp_nonce_url( add_query_arg( 'blogig_notice_dismiss', 'upgrade', admin_url() ), 'blogig_upgrade_notice_dismiss_nonce', '_blogig_upgrade_notice_dismiss_nonce' ); $temporary_dismiss_url = wp_nonce_url( add_query_arg( 'blogig_notice_dismiss_temporary', 'upgrade', admin_url() ), 'blogig_upgrade_notice_dismiss_temporary_nonce', '_blogig_upgrade_notice_dismiss_temporary_nonce' ); parent::__construct( 'upgrade', 'info', $dismiss_url, $temporary_dismiss_url ); $this->set_notice_time(); $this->set_temporary_dismiss_notice_time(); $this->set_dismiss_notice(); } private function set_notice_time() { if ( ! get_option( 'blogig_upgrade_notice_start_time' ) ) { update_option( 'blogig_upgrade_notice_start_time', time() ); } } private function set_temporary_dismiss_notice_time() { if ( isset( $_GET['blogig_notice_dismiss_temporary'] ) && 'upgrade' === $_GET['blogig_notice_dismiss_temporary'] ) { update_user_meta( $this->current_user_id, 'blogig_upgrade_notice_dismiss_temporary_start_time', time() ); } } public function set_dismiss_notice() { /** * Do not show notice if: * * 1. It has not been 5 days since the theme is activated. * 2. If the user has ignored the message partially for 2 days. * 3. Dismiss always if clicked on 'Dismiss' button. */ if ( get_option( 'blogig_upgrade_notice_start_time' ) > strtotime( '-5 day' ) || get_user_meta( get_current_user_id(), 'blogig_upgrade_notice_dismiss', true ) || get_user_meta( get_current_user_id(), 'blogig_upgrade_notice_dismiss_temporary_start_time', true ) > strtotime( '-2 day' ) ) { add_filter( 'blogig_upgrade_notice_dismiss', '__return_true' ); } else { add_filter( 'blogig_upgrade_notice_dismiss', '__return_false' ); } } public function notice_markup() { ?>

    ' . esc_html( $current_user->display_name ) . '', 'Blogig', 'BLOGIG10', '10%' ); ?>