/**
  * Print quick guide tips list
  *
  * @since  1.0.0
  * @return void
  */
 public function get_tips()
 {
     $default_label = __('Start', 'monstroid-dashboard');
     foreach ($this->get_tips_list() as $tip) {
         include monstroid_dashboard()->plugin_dir('admin/views/single-tip.php');
     }
 }
    /**
     * Show avaliable backups list
     *
     * @since  1.0.0
     * @return string|null
     */
    public static function backups_list()
    {
        include_once monstroid_dashboard()->plugin_dir('admin/includes/class-monstroid-dashboard-backup-manager.php');
        $backup_manager = Monstroid_Dashboard_Backup_Manager::get_instance();
        $backups = $backup_manager->get_backups();
        if (empty($backups)) {
            return;
        }
        ob_start();
        ?>
		<div class="md-updates-list">
			<h4 class="md-updates-list_title"><?php 
        _e('Monstroid theme backups', 'monstroid-dashboard');
        ?>
</h4>
			<div class="md-updates-list_items">
				<div class="md-updates-list_item heading_item">
					<div class="md-updates-list_item_name">
						<?php 
        _e('File name', 'monstroid-dashboard');
        ?>
					</div>
					<div class="md-updates-list_item_date">
						<?php 
        _e('Created', 'monstroid-dashboard');
        ?>
					</div>
					<div class="md-updates-list_item_download">
						<?php 
        _e('Actions');
        ?>
					</div>
				</div>
				<?php 
        foreach ($backups as $file => $data) {
            // prepare download and delete URLs to use in template
            $download_url = add_query_arg(array('action' => 'monstroid_dashboard_get_backup', 'file' => $data['name']), admin_url('admin-ajax.php'));
            $download_url = wp_nonce_url($download_url, 'monstroid-dashboard', 'nonce');
            $delete_url = add_query_arg(array('action' => 'monstroid_dashboard_delete_backup', 'file' => $data['name']), admin_url('admin-ajax.php'));
            $delete_url = wp_nonce_url($delete_url, 'monstroid-dashboard', 'nonce');
            include monstroid_dashboard()->plugin_dir('admin/views/backup-list-item.php');
        }
        ?>
			</div>
		</div>
		<?php 
        return ob_get_clean();
    }
 /**
  * Load selecte page view
  *
  * @since  1.0.0
  * @param  string     $view    get specific page output.
  * @param  bool|array $depends view dependencies array.
  * @return void|bool false
  */
 public function load_view($view = null, $depends = false)
 {
     if (!$view) {
         return false;
     }
     $subpages = $this->subpages();
     if (false !== $depends) {
         foreach ($depends as $file) {
             if (!file_exists($file)) {
                 continue;
             }
             include_once $file;
         }
     }
     if (file_exists(monstroid_dashboard()->plugin_dir('admin/views/' . $view . '.php'))) {
         include monstroid_dashboard()->plugin_dir('admin/views/' . $view . '.php');
     } else {
         do_action('monstroid_wizard_page_' . $view);
     }
 }
 * @version   1.0.0
 */
// If this file is called directly, abort.
if (!defined('WPINC')) {
    die;
}
?>
<div class="md-content">
	<div class="md-description">
		<h2 class="md-description_title"><?php 
_e('Welcome to Monstroid Dashboard', 'monstroid-dashboard');
?>
</h2>
		<div class="md-description_content">
			<img class="md-description_image" src="<?php 
echo monstroid_dashboard()->plugin_url('assets/images/main-screen.png');
?>
" alt="">
			<div class="md-description_text">
				<div class="md-description_ver">
					<?php 
$update_page = menu_page_url('monstroid-updater', false);
printf(__('Monstroid Version: %1$s %2$s', 'monstroid-dashboard'), monstroid_dashboard_updater()->get_current_version(), monstroid_dashboard_updater()->check_update_messages('(<b></b>', ')', $update_page));
?>
				</div>
				<div class="md-description_author">
					<?php 
printf(__('By %s', 'monstroid-dashboard'), '<a href="http://www.templatemonster.com/" target="_blank">TemplateMonster</a>');
?>
				</div>
				<div class="md-description_about">
 /**
  * Delete existing backup by name
  *
  * @since 1.0.0
  */
 public function delete_backup()
 {
     if (!isset($_REQUEST['nonce'])) {
         wp_die(__('Nonce key not provided', 'monstroid-dashboard'), __('Deleting Error', 'monstroid-dashboard'));
     }
     if (!wp_verify_nonce(esc_attr($_REQUEST['nonce']), 'monstroid-dashboard')) {
         wp_die(__('Incorrect nonce key', 'monstroid-dashboard'), __('Deleting Error', 'monstroid-dashboard'));
     }
     if (!current_user_can('manage_options')) {
         wp_die(__('Permission denied', 'monstroid-dashboard'), __('Deleting Error', 'monstroid-dashboard'));
     }
     $file = isset($_REQUEST['file']) ? esc_attr($_REQUEST['file']) : '';
     if (!$file) {
         wp_die(__('Backup file not provided', 'monstroid-dashboard'), __('Deleting Error', 'monstroid-dashboard'));
     }
     if (!isset($_SERVER['HTTP_REFERER'])) {
         wp_die(__('This action is not allowed directly', 'monstroid-dashboard'), __('Deleting Error', 'monstroid-dashboard'));
     }
     include_once monstroid_dashboard()->plugin_dir('admin/includes/class-monstroid-dashboard-backup-manager.php');
     $backup_manager = Monstroid_Dashboard_Backup_Manager::get_instance();
     $delete = $backup_manager->delete_backup($file);
     if (false == $delete) {
         wp_die($backup_manager->get_message(), __('Deleting Error', 'monstroid-dashboard'));
     }
     wp_safe_redirect(esc_url($_SERVER['HTTP_REFERER']));
     die;
 }
 /**
  * Check if passed plugin version is valid for packages management
  *
  * @since  1.1.0
  * @param  string $plugin plugin slug to check.
  * @return boolean
  */
 public function is_valid_plugin_version($plugin = 'monstroid-wizard')
 {
     $path_data = pathinfo(monstroid_dashboard()->plugin_dir());
     $plugins_dir = isset($path_data['dirname']) ? $path_data['dirname'] : false;
     if (!$plugins_dir) {
         return false;
     }
     if (!file_exists($plugins_dir . '/' . $plugin . '/' . $plugin . '.php')) {
         return false;
     }
     $default_headers = array('Name' => 'Plugin Name', 'PluginURI' => 'Plugin URI', 'Version' => 'Version', 'Description' => 'Description', 'Author' => 'Author', 'AuthorURI' => 'Author URI', 'TextDomain' => 'Text Domain', 'DomainPath' => 'Domain Path', 'Network' => 'Network', '_sitewide' => 'Site Wide Only');
     $plugin_data = get_file_data($plugins_dir . '/' . $plugin . '/' . $plugin . '.php', $default_headers, 'plugin');
     if (!$plugin_data) {
         return false;
     }
     $versions = array('monstroid-wizard' => $this->required_wizard_version, 'cherry-data-manager' => $this->required_data_manager_version);
     if (!isset($versions[$plugin])) {
         return false;
     }
     return version_compare($plugin_data['Version'], $versions[$plugin], '>=');
 }
 /**
  * Pass dependencies file to include into wizard
  *
  * @since  1.1.0
  * @param  array $depends dependencies array.
  * @return array
  */
 public function add_wizard_dependencies($depends)
 {
     $depends[] = monstroid_dashboard()->plugin_dir('admin/includes/class-monstroid-dashboard-packages.php');
     return $depends;
 }
 /**
  * Try to make backup before updating
  *
  * @since  1.0.0
  * @return void|bool
  */
 public function try_make_backup()
 {
     if (!empty($_REQUEST['ignoreBackup'])) {
         return true;
     }
     include_once monstroid_dashboard()->plugin_dir('admin/includes/class-monstroid-dashboard-backup-manager.php');
     $backup_manager = Monstroid_Dashboard_Backup_Manager::get_instance();
     $backup_done = $backup_manager->make_backup();
     if (false === $backup_done) {
         $message = __('Can`t create current theme backup. <a href="#" class="force-run-theme-update">Update anyway</a>', 'monstroid-dashboard');
         wp_send_json_error(array('type' => 'backup_failed', 'message' => $message));
     }
     return $backup_done;
 }
 /**
  * Check creds notice visibility
  *
  * @since  1.0.0
  * @param  array $notice_data notice data.
  * @return void|bool false
  */
 public function check_creds_notice($notice_data)
 {
     if (!current_user_can('manage_options')) {
         return false;
     }
     if (true === monstroid_dashboard()->filesystem->check_filesystem_method()) {
         return false;
     }
     $user_id = get_current_user_id();
     $dismissed = get_user_meta($user_id, 'dismiss_creds', true);
     if ($dismissed) {
         return false;
     }
     $this->show_notices['set_creds'] = $notice_data;
 }
	</div>
	<h3 class="md-items-list_title">
		<?php 
echo $title;
?>
 v<span class="md-new-version"><?php 
echo monstroid_dashboard_updater()->get_current_version();
?>
</span>
	</h3>
	<div class="md-items-list_actions">
		<?php 
if (monstroid_dashboard_updater()->force_has_update()) {
    ?>
		<?php 
    $filesystem_method = monstroid_dashboard()->filesystem->check_filesystem_method();
    $class = true !== $filesystem_method ? ' disabled no-creds' : '';
    ?>
		<a href="#" class="md-button md-success run-theme-update<?php 
    echo $class;
    ?>
">
			<span class="dashicons dashicons-update"></span>
			<?php 
    printf(__('Update to v%s', 'monstroid-dashboard'), monstroid_dashboard_updater()->get_update_data('new_version'));
    ?>
		</a>
		<?php 
    if (true !== $filesystem_method) {
        printf('<div class="md-message md-warning">%s</div>', __('Please, set up filesystem credentials to allow automatic update', 'monstroid-dashboard'));
    }