plugin_name = $plugin_name; $this->version = $version; } public function current_user_show_toolbar($show_toolbar, $capability) { if(is_admin()&¤t_user_can('administrator')) { $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); ?>

|

★★★★★ review will motivate us a lot.', 'wpvivid-backuprestore'); ?>

Troubleshooting page for faster solutions.', 'wpvivid-backuprestore'); ?>
Advanced Settings for higher task success rate.', 'wpvivid-backuprestore'); ?>

'.__('Current Version:', 'wpvivid-backuprestore').' '.$wpvivid_version.'
|
'.__('ChangeLog', 'wpvivid-backuprestore').'

'.__('Troubleshooting', 'wpvivid-backuprestore').'

'.__('Read Troubleshooting page for faster solutions.', 'wpvivid-backuprestore').'
'.__('Adjust Advanced Settings for higher task success rate.', 'wpvivid-backuprestore').'

'.__('How-to', 'wpvivid-backuprestore').'

'.__('WPvivid Backup Settings', 'wpvivid-backuprestore').'
'.__('Create a Manual Backup', 'wpvivid-backuprestore').'
'.__('Restore Your Site from a Backup', 'wpvivid-backuprestore').'
'.__('Migrate WordPress', 'wpvivid-backuprestore').'
'; return $html;*/ } /** * Register the stylesheets for the admin area. * * */ public function enqueue_styles() { $this->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 = $wpvivid_plugin->get_admin_bar_setting(); if ($show_admin_bar === true) { $show_toolbar=false; if(is_admin()&¤t_user_can('administrator')) { $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 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() { ?>
The free version of WPvivid Backup Plugin does not support WordPress Multisite. You can consider upgrading to the pro version as needed.

'.__('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').'

'; 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 = __('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 '

'.__('Restore completed successfully.', 'wpvivid-backuprestore').'

'; } } } } } public function display() { include_once('partials/wpvivid-admin-display.php'); } public static function wpvivid_get_page_request() { $request_page='wpvivid_tab_general'; if(isset($_REQUEST['wpvivid-remote-page-mainwp'])){ $request_page='wpvivid_tab_remote_storage'; } if(isset($_REQUEST['tab-backup'])) { $request_page='wpvivid_tab_general'; } else if(isset($_REQUEST['tab-schedule'])) { $request_page='wpvivid_tab_schedule'; } else if(isset($_REQUEST['tab-transfer'])) { $request_page='wpvivid_tab_migrate'; } else if(isset($_REQUEST['tab-remote-storage'])) { $request_page='wpvivid_tab_remote_storage'; } else if(isset($_REQUEST['tab-settings'])) { $request_page='wpvivid_tab_setting'; } else if(isset($_REQUEST['tab-website-info'])) { $request_page='wpvivid_tab_debug'; } else if(isset($_REQUEST['tab-logs'])) { $request_page='wpvivid_tab_log'; } else if(isset($_REQUEST['tab-key'])) { $request_page='wpvivid_tab_key'; } else if(isset($_REQUEST['tab-mainwp'])) { $request_page='wpvivid_tab_mainwp'; } else if(isset($_REQUEST['page'])&&$_REQUEST['page']=='wpvivid-pro') { $request_page='wpvivid_tab_pro'; } else if(isset($_REQUEST['page'])&&$_REQUEST['page']=='wpvivid-setting') { $request_page='wpvivid_tab_setting'; } $request_page=apply_filters('wpvivid_set_page_request',$request_page); return $request_page; } public static function show_add_my_review() { $review = WPvivid_Setting::get_option('wpvivid_need_review'); $review_msg = WPvivid_Setting::get_option('wpvivid_review_msg'); if (empty($review)) { WPvivid_Setting::update_option('wpvivid_need_review', 'not'); } else { if ($review == 'not') { } else if ($review == 'show') { if(!empty($review_msg)) { echo '

' . $review_msg . '

'; } } else if ($review == 'do_not_ask') { } else { if (time() > $review) { if(!empty($review_msg)) { echo '

' . $review_msg . '

'; } } } } } public function check_amazons3() { $remoteslist=WPvivid_Setting::get_all_remote_options(); $need_amazons3_notice = false; if(isset($remoteslist) && !empty($remoteslist)) { foreach ($remoteslist as $remote_id => $value) { if($remote_id === 'remote_selected') { continue; } if($value['type'] == 'amazons3' && isset($value['s3Path'])) { $need_amazons3_notice = true; } if($value['type'] == 's3compat' && isset($value['s3directory'])) { $need_amazons3_notice = true; } } } if($need_amazons3_notice) { $amazons3_notice = WPvivid_Setting::get_option('wpvivid_amazons3_notice', 'not init'); if($amazons3_notice === 'not init') { $notice_message = __('As Amazon S3 and DigitalOcean Space have upgraded their connection methods, please delete the previous connections and re-add your Amazon S3/DigitalOcean Space accounts to make sure the connections work.', 'wpvivid-backuprestore'); echo '

' . $notice_message . '

'; } } } public function check_dropbox() { if (is_multisite()) { if(!is_network_admin()) { return ; } } if(!function_exists('get_plugins')) require_once(ABSPATH . 'wp-admin/includes/plugin.php'); $pro_wpvivid_slug='wpvivid-backup-pro/wpvivid-backup-pro.php'; 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; } } $plugins=get_mu_plugins(); if(count($plugins) == 0 || !isset($plugins[$pro_wpvivid_slug])){ $plugins=get_plugins(); } } else { $active_plugins = get_option('active_plugins'); $plugins=get_plugins(); } if(!empty($plugins)) { if(isset($plugins[$pro_wpvivid_slug])) { if(in_array($pro_wpvivid_slug, $active_plugins)) { return; } } $remoteslist=WPvivid_Setting::get_all_remote_options(); $need_dropbox_notice = false; if(isset($remoteslist) && !empty($remoteslist)) { foreach ($remoteslist as $remote_id => $value) { if($remote_id === 'remote_selected') { continue; } if($value['type'] == 'dropbox' && !isset($value['refresh_token'])) { $need_dropbox_notice = true; } } } if($need_dropbox_notice) { $notice_message = __('Because Dropbox has upgraded their API on September 30, 2021, the new API is no longer compatible with the previous app\'s settings. Please re-add your Dropbox storage to ensure that it works properly.', 'wpvivid-backuprestore'); echo '

' . $notice_message . '

'; } } } public function check_extensions() { $common_setting = WPvivid_Setting::get_setting(false, 'wpvivid_common_setting'); $db_connect_method = isset($common_setting['options']['wpvivid_common_setting']['db_connect_method']) ? $common_setting['options']['wpvivid_common_setting']['db_connect_method'] : 'wpdb'; $need_php_extensions = array(); $need_extensions_count = 0; $extensions=get_loaded_extensions(); if(!function_exists("curl_init")){ $need_php_extensions[$need_extensions_count] = 'curl'; $need_extensions_count++; } if(!class_exists('PDO')){ $need_php_extensions[$need_extensions_count] = 'PDO'; $need_extensions_count++; } if(!function_exists("gzopen")) { $need_php_extensions[$need_extensions_count] = 'zlib'; $need_extensions_count++; } if(!array_search('pdo_mysql',$extensions) && $db_connect_method === 'pdo') { $need_php_extensions[$need_extensions_count] = 'pdo_mysql'; $need_extensions_count++; } if(!empty($need_php_extensions)){ $msg = ''; $figure = 0; foreach ($need_php_extensions as $extension){ $figure++; if($figure == 1){ $msg .= $extension; } else if($figure < $need_extensions_count) { $msg .= ', '.$extension; } else if($figure == $need_extensions_count){ $msg .= ' and '.$extension; } } if($figure == 1){ echo '

'.sprintf(__('The %s extension is not detected. Please install the extension first.', 'wpvivid-backuprestore'), $msg).'

'; } else{ echo '

'.sprintf(__('The %s extensions are not detected. Please install the extensions first.', 'wpvivid-backuprestore'), $msg).'

'; } } if (!class_exists('PclZip')) include_once(ABSPATH.'/wp-admin/includes/class-pclzip.php'); if (!class_exists('PclZip')) { echo '

'.__('Class PclZip is not detected. Please update or reinstall your WordPress.', 'wpvivid-backuprestore').'

'; } $hide_notice = get_option('wpvivid_hide_wp_cron_notice', false); if(defined( 'DISABLE_WP_CRON' ) && DISABLE_WP_CRON && $hide_notice === false){ echo '

'.__('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').'

'; } } public function check_wpvivid_pro_version() { if (is_multisite()) { if(!is_network_admin()) { return ; } } if(!function_exists('get_plugins')) require_once(ABSPATH . 'wp-admin/includes/plugin.php'); $pro_wpvivid_slug='wpvivid-backup-pro/wpvivid-backup-pro.php'; 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; } } $plugins=get_mu_plugins(); if(count($plugins) == 0 || !isset($plugins[$pro_wpvivid_slug])){ $plugins=get_plugins(); } } else { $active_plugins = get_option('active_plugins'); $plugins=get_plugins(); } if(!empty($plugins)) { if(isset($plugins[$pro_wpvivid_slug])) { if(in_array($pro_wpvivid_slug, $active_plugins)) { if(version_compare('2.0.23',$plugins[$pro_wpvivid_slug]['Version'],'>')) { ?>
get_log_list_ex(); $remoteslist=WPvivid_Setting::get_all_remote_options(); $default_remote_storage=''; foreach ($remoteslist['remote_selected'] as $value) { $default_remote_storage=$value; } ?> '1', 'tab_func' => array($this, 'wpvivid_add_tab_backup_restore'), 'page_func' => array($this, 'wpvivid_add_page_backup')); $page_array['schedule'] = array('index' => '2', 'tab_func' => array($this, 'wpvivid_add_tab_schedule'), 'page_func' => array($this, 'wpvivid_add_page_schedule')); $page_array['remote_storage'] = array('index' => '4', 'tab_func' => array($this, 'wpvivid_add_tab_remote_storage'), 'page_func' => array($this, 'wpvivid_add_page_remote_storage')); $page_array['setting'] = array('index' => '5', 'tab_func' => array($this, 'wpvivid_add_tab_setting'), 'page_func' => array($this, 'wpvivid_add_page_setting')); $page_array['website_info'] = array('index' => '6', 'tab_func' => array($this, 'wpvivid_add_tab_website_info'), 'page_func' => array($this, 'wpvivid_add_page_website_info')); $page_array['log'] = array('index' => '7', 'tab_func' => array($this, 'wpvivid_add_tab_log_ex'), 'page_func' => array($this, 'wpvivid_add_page_log_ex')); $page_array['read_log'] = array('index' => '29', 'tab_func' => array($this, 'wpvivid_add_tab_read_log'), 'page_func' => array($this, 'wpvivid_add_page_read_log')); $page_array['premium'] = array('index' => '10', 'tab_func' => array($this, 'wpvivid_add_tab_premium'), 'page_func' => array($this, 'wpvivid_add_page_premium')); $hide_mwp_tab_page = get_option('wpvivid_hide_mwp_tab_page_v1', false); if($hide_mwp_tab_page === false) { $page_array['mwp'] = array('index' => '30', 'tab_func' => array($this, 'wpvivid_add_tab_mwp'), 'page_func' => array($this, 'wpvivid_add_page_mwp')); } return $page_array; } public function wpvivid_add_tab_backup_restore(){ ?>
"10",1=>"20",2=>"30",3=>"40",4=>"50"); $max_log_diaplay=20; $loglist=$wpvivid_plugin->get_log_list_ex(); ?>