plugin_name = $plugin_name; $this->version = $version; } public function current_user_show_toolbar($show_toolbar, $capability) { if(is_admin()&¤t_user_can('manage_options')) { $show_toolbar=true; } return $show_toolbar; } public function add_log_tab_page($setting_array) { $setting_array['backup_log_page'] = array('index' => '1', 'tab_func' => array($this, 'wpvivid_add_tab_log'), 'page_func' => array($this, 'wpvivid_add_page_log')); //$setting_array['read_log_page'] = array('index' => '2', 'tab_func' => array($this, 'wpvivid_add_tab_read_log'), 'page_func' => array($this, 'wpvivid_add_page_read_log')); return $setting_array; } public function get_screen_ids($screen_ids) { $screen_ids[]='toplevel_page_'.$this->plugin_name; $screen_ids[]='wpvivid-backup_page_wpvivid-transfer'; $screen_ids[]='wpvivid-backup_page_wpvivid-setting'; $screen_ids[]='wpvivid-backup_page_wpvivid-schedule'; $screen_ids[]='wpvivid-backup_page_wpvivid-remote'; $screen_ids[]='wpvivid-backup_page_wpvivid-website'; $screen_ids[]='wpvivid-backup_page_wpvivid-log'; $screen_ids[]='wpvivid-backup_page_wpvivid-key'; $screen_ids[]='wpvivid-backup_page_wpvivid-mainwp'; $screen_ids[]='wpvivid-backup_page_wpvivid_premium'; return $screen_ids; } public function get_toolbar_menus($toolbar_menus) { $menu['id']='wpvivid_admin_menu'; $menu['title']='WPvivid Backup'; $toolbar_menus[$menu['id']]=$menu; $admin_url = admin_url(); $menu['id']='wpvivid_admin_menu_backup'; $menu['parent']='wpvivid_admin_menu'; $menu['title']=__('Backup & Restore', 'wpvivid-backuprestore'); $menu['tab']='admin.php?page=WPvivid&tab-backup'; $menu['href']=$admin_url . 'admin.php?page=WPvivid&tab-backup'; $menu['capability']='administrator'; $menu['index']=1; $toolbar_menus[$menu['parent']]['child'][$menu['id']]=$menu; return $toolbar_menus; } public function get_admin_menus($submenus) { $submenu['parent_slug']=$this->plugin_name; $submenu['page_title']='WPvivid Backup'; $submenu['menu_title']=__('Backup & Restore', 'wpvivid-backuprestore'); $submenu['capability']='administrator'; $submenu['menu_slug']=$this->plugin_name; $submenu['function']=array($this, 'display_plugin_setup_page'); $submenu['index']=1; $submenus[$submenu['menu_slug']]=$submenu; $submenu['parent_slug']=$this->plugin_name; $submenu['page_title']='WPvivid Backup'; $submenu['menu_title']=__('Settings', 'wpvivid-backuprestore'); $submenu['capability']='administrator'; $submenu['menu_slug']='wpvivid-setting'; $submenu['function']=array($this, 'display_plugin_setup_page'); $submenu['index']=5; $submenus[$submenu['menu_slug']]=$submenu; return $submenus; } public function wpvivid_add_side_bar($html, $show_schedule = false){ $wpvivid_version = WPVIVID_PLUGIN_VERSION; $wpvivid_version = apply_filters('wpvivid_display_pro_version', $wpvivid_version); ?>
screen_ids=apply_filters('wpvivid_get_screen_ids',$this->screen_ids); if(in_array(get_current_screen()->id,$this->screen_ids)) { wp_enqueue_style($this->plugin_name, WPVIVID_PLUGIN_DIR_URL . 'css/wpvivid-admin.css', array(), $this->version, 'all'); do_action('wpvivid_do_enqueue_styles'); } } /** * Register the JavaScript for the admin area. * * */ public function enqueue_scripts() { $this->screen_ids=apply_filters('wpvivid_get_screen_ids',$this->screen_ids); if(in_array(get_current_screen()->id,$this->screen_ids)) { wp_enqueue_script($this->plugin_name, WPVIVID_PLUGIN_DIR_URL . 'js/wpvivid-admin.js', array('jquery'), $this->version, false); wp_localize_script($this->plugin_name, 'wpvivid_ajax_object', array('ajax_url' => admin_url('admin-ajax.php'),'ajax_nonce'=>wp_create_nonce('wpvivid_ajax'))); wp_localize_script($this->plugin_name, 'wpvividlion', array( 'warning' => __('Warning:', 'wpvivid-backuprestore'), 'error' => __('Error:', 'wpvivid-backuprestore'), 'remotealias' => __('Warning: An alias for remote storage is required.', 'wpvivid-backuprestore'), 'remoteexist' => __('Warning: The alias already exists in storage list.', 'wpvivid-backuprestore'), 'backup_calc_timeout' => __('Calculating the size of files, folder and database timed out. If you continue to receive this error, please go to the plugin settings, uncheck \'Calculate the size of files, folder and database before backing up\', save changes, then try again.', 'wpvivid-backuprestore'), 'restore_step1' => __('Step One: In the backup list, click the \'Restore\' button on the backup you want to restore. This will bring up the restore tab', 'wpvivid-backuprestore'), 'restore_step2' => __('Step Two: Choose an option to complete restore, if any', 'wpvivid-backuprestore'), 'restore_step3' => __('Step Three: Click \'Restore\' button', 'wpvivid-backuprestore'), 'get_key_step1' => __('1. Visit Key tab page of WPvivid backup plugin of destination site.', 'wpvivid-backuprestore'), 'get_key_step2' => __('2. Generate a key by clicking Generate button and copy it.', 'wpvivid-backuprestore'), 'get_key_step3' => __('3. Go back to this page and paste the key in key box below. Lastly, click Save button.', 'wpvivid-backuprestore'), )); wp_enqueue_script('plupload-all'); do_action('wpvivid_do_enqueue_scripts'); } } /** * Register the administration menu for this plugin into the WordPress Dashboard menu. * * */ public function add_plugin_admin_menu() { /* * Add a settings page for this plugin to the Settings menu. * * NOTE: Alternative menu locations are available via WordPress administration menu functions. * * Administration Menus: http://codex.wordpress.org/Administration_Menus * */ if(!is_multisite()) { $active_plugins = get_option('active_plugins'); } else { $active_plugins = array(); //network active $mu_active_plugins = get_site_option( 'active_sitewide_plugins', array() ); if(!empty($mu_active_plugins)){ foreach ($mu_active_plugins as $plugin_name => $data){ $active_plugins[] = $plugin_name; } } } if(!function_exists('get_plugins')) require_once(ABSPATH . 'wp-admin/includes/plugin.php'); $plugins=get_plugins(); $pro_wpvivid_slug='wpvivid-backup-pro/wpvivid-backup-pro.php'; $is_active_pro=false; if(!empty($plugins)) { if(isset($plugins[$pro_wpvivid_slug])) { if(in_array($pro_wpvivid_slug, $active_plugins)) { $is_active_pro=true; } } } if(is_multisite() && !$is_active_pro) { $menu['page_title']= 'WPvivid Backup'; $menu['menu_title']= 'WPvivid Backup'; $menu['capability']='administrator'; $menu['menu_slug']= $this->plugin_name; $menu['function']=array($this, 'display_plugin_setup_page_mu'); $menu['icon_url']='dashicons-cloud'; $menu['position']=100; $menu = apply_filters('wpvivid_get_main_admin_menus', $menu); add_menu_page( $menu['page_title'],$menu['menu_title'], $menu['capability'], $menu['menu_slug'], $menu['function'], $menu['icon_url'], $menu['position']); } else { $menu['page_title']= 'WPvivid Backup'; $menu['menu_title']= 'WPvivid Backup'; $menu['capability']='administrator'; $menu['menu_slug']= $this->plugin_name; $menu['function']=array($this, 'display_plugin_setup_page'); $menu['icon_url']='dashicons-cloud'; $menu['position']=100; $menu = apply_filters('wpvivid_get_main_admin_menus', $menu); add_menu_page( $menu['page_title'],$menu['menu_title'], $menu['capability'], $menu['menu_slug'], $menu['function'], $menu['icon_url'], $menu['position']); $this->submenus = apply_filters('wpvivid_get_admin_menus', $this->submenus); usort($this->submenus, function ($a, $b) { if ($a['index'] == $b['index']) return 0; if ($a['index'] > $b['index']) return 1; else return -1; }); foreach ($this->submenus as $submenu) { add_submenu_page( $submenu['parent_slug'], $submenu['page_title'], $submenu['menu_title'], $submenu['capability'], $submenu['menu_slug'], $submenu['function']); } } } function add_toolbar_items($wp_admin_bar) { if (is_multisite()) { $active_plugins = array(); //network active $mu_active_plugins = get_site_option( 'active_sitewide_plugins', array() ); if(!empty($mu_active_plugins)){ foreach ($mu_active_plugins as $plugin_name => $data){ $active_plugins[] = $plugin_name; } } if(!function_exists('get_plugins')) require_once(ABSPATH . 'wp-admin/includes/plugin.php'); $plugins=get_plugins(); $pro_wpvivid_slug='wpvivid-backup-pro/wpvivid-backup-pro.php'; $is_active_pro=false; if(!empty($plugins)) { if(isset($plugins[$pro_wpvivid_slug])) { if(in_array($pro_wpvivid_slug, $active_plugins)) { $is_active_pro=true; } } } if(!is_network_admin()) { return ; } if(!$is_active_pro) { return ; } } global $wpvivid_plugin; if(is_admin()) { $show_admin_bar = $this->get_admin_bar_setting(); if ($show_admin_bar === true) { $show_toolbar=false; if(is_admin()&¤t_user_can('manage_options')) { $show_toolbar=true; } else { $show_toolbar=apply_filters('wpvivid_current_user_show_toolbar', $show_toolbar, 'wpvivid-can-show-toolbar'); } if($show_toolbar) { $this->toolbar_menus = apply_filters('wpvivid_get_toolbar_menus', $this->toolbar_menus); foreach ($this->toolbar_menus as $menu) { $wp_admin_bar->add_menu(array( 'id' => $menu['id'], 'title' => ''.$menu['title'] )); if (isset($menu['child'])) { usort($menu['child'], function ($a, $b) { if($a['index']==$b['index']) return 0; if($a['index']>$b['index']) return 1; else return -1; }); foreach ($menu['child'] as $child_menu) { if(isset($child_menu['capability']) && current_user_can($child_menu['capability'])) { $wp_admin_bar->add_menu(array( 'id' => $child_menu['id'], 'parent' => $menu['id'], 'title' => $child_menu['title'], 'href' => $child_menu['href'] )); } } } } } } } } public function get_admin_bar_setting() { return WPvivid_Setting::get_admin_bar_setting(); } public function add_action_links( $links ) { if(!is_multisite()) { $active_plugins = get_option('active_plugins'); } else { $active_plugins = array(); //network active $mu_active_plugins = get_site_option( 'active_sitewide_plugins', array() ); if(!empty($mu_active_plugins)){ foreach ($mu_active_plugins as $plugin_name => $data){ $active_plugins[] = $plugin_name; } } } if(!function_exists('get_plugins')) require_once(ABSPATH . 'wp-admin/includes/plugin.php'); $plugins=get_plugins(); $pro_wpvivid_slug='wpvivid-backup-pro/wpvivid-backup-pro.php'; $is_active_pro=false; if(!empty($plugins)) { if(isset($plugins[$pro_wpvivid_slug])) { if(in_array($pro_wpvivid_slug, $active_plugins)) { $is_active_pro=true; } } } if($is_active_pro) { if(!is_multisite()) { $settings_link = array( '' . __('Settings', 'wpvivid-backuprestore') . '', ); } else { $settings_link = array( '' . __('Settings', 'wpvivid-backuprestore') . '', ); } } else { if(!is_multisite()) { $settings_link = array( '' . __('Settings', 'wpvivid-backuprestore') . '', ); } else { $settings_link = array( '' . __('Settings', 'wpvivid-backuprestore') . '', ); } } return array_merge( $settings_link, $links ); } public static function wpvivid_get_siteurl(){ $wpvivid_siteurl = array(); $wpvivid_siteurl['home_url'] = home_url(); $wpvivid_siteurl['plug_url'] = plugins_url(); $wpvivid_siteurl['site_url'] = get_option( 'siteurl' ); return $wpvivid_siteurl; } /** * Render the settings page for this plugin. * * */ public function display_plugin_setup_page() { do_action('wpvivid_before_setup_page'); add_action('wpvivid_display_page',array($this,'display')); do_action('wpvivid_display_page'); } public function display_plugin_setup_page_mu() { ?>'; esc_html_e('Migration is complete and htaccess file is replaced. In order to successfully complete the migration, you\'d better reinstall 301 redirect plugin, firewall and security plugin, and caching plugin if they exist.', 'wpvivid-backuprestore'); echo '
'; WPvivid_Setting::delete_option('wpvivid_migrate_status'); } $restore = new WPvivid_restore_data(); if ($restore->has_restore()) { $restore_status = $restore->get_restore_status(); if ($restore_status === WPVIVID_RESTORE_COMPLETED) { $restore->clean_restore_data(); do_action('wpvivid_rebuild_backup_list'); $need_review=WPvivid_Setting::get_option('wpvivid_need_review'); if($need_review=='not') { WPvivid_Setting::update_option('wpvivid_need_review','show'); $msg = esc_html(__('Cheers! WPvivid Backup plugin has restored successfully your website. If you found WPvivid Backup plugin helpful, a 5-star rating would be highly appreciated, which motivates us to keep providing new features.', 'wpvivid-backuprestore')); WPvivid_Setting::update_option('wpvivid_review_msg',$msg); } else{ if(!$migrate_notice) { echo ''.esc_html_e('Restore completed successfully.', 'wpvivid-backuprestore').'
' . esc_html($review_msg) . '
' . esc_html($review_msg) . '
' . esc_html($notice_message) . '
' . esc_html($notice_message) . '
'; echo sprintf('The %s extension is not detected. Please install the extension first.', esc_html($msg)); echo '
'; echo sprintf('The %s extensions are not detected. Please install the extensions first.', esc_html($msg)); echo '
'; esc_html_e('Class PclZip is not detected. Please update or reinstall your WordPress.', 'wpvivid-backuprestore'); echo '
'; esc_html_e('In order to execute the scheduled backups properly, please set the DISABLE_WP_CRON constant to false. If you are using an external cron system, simply click \'X\' to dismiss this message.', 'wpvivid-backuprestore'); echo '