/** * 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')); }