');
// phpcs:ignore WordPress.Security.NonceVerification.Recommended -- read-only admin view/filter parameters, sanitized and allowlisted; no state change.
if(isset($_GET['imported'])&&is_string($_GET['imported'])&&sanitize_text_field(wp_unslash($_GET['imported']))==='1')echo ('' . esc_html__('Configuration imported successfully.', 'multipify-seo-boost') . '
');
// phpcs:ignore WordPress.Security.NonceVerification.Recommended -- read-only admin view/filter parameters, sanitized and allowlisted; no state change.
if(isset($_GET['maintained'])&&is_string($_GET['maintained'])&&sanitize_text_field(wp_unslash($_GET['maintained']))==='1')echo ('' . esc_html__('Maintenance completed.', 'multipify-seo-boost') . '
');
echo ('' . esc_html__('Where to start?', 'multipify-seo-boost') . '' . esc_html__('Export your configuration first. Do not share the JSON file publicly: it may contain credentials for external services. Only import a file you trust.', 'multipify-seo-boost') . '
');
}
static function export(){if(!isset($_SERVER['REQUEST_METHOD'])||!is_string($_SERVER['REQUEST_METHOD'])||sanitize_text_field(wp_unslash($_SERVER['REQUEST_METHOD']))!=='POST')wp_die(esc_html__('Method not allowed', 'multipify-seo-boost'),'',['response'=>405]);if(!current_user_can('manage_options'))wp_die(esc_html__('Access denied', 'multipify-seo-boost'));check_admin_referer('mpseo_export');$data=['version'=>MPSEO_VERSION,'settings'=>get_option(MPSEO_Core::SETTINGS,[])];nocache_headers();header('Content-Type: application/json; charset=utf-8');header('Content-Disposition: attachment; filename=multipify-seo-boost-config-'.gmdate('Y-m-d').'.json');echo wp_json_encode($data,JSON_PRETTY_PRINT);exit;}
// phpcs:ignore WordPress.WP.AlternativeFunctions.file_get_contents_file_get_contents -- reads a local file, not a remote URL.
static function import(){if(!isset($_SERVER['REQUEST_METHOD'])||!is_string($_SERVER['REQUEST_METHOD'])||sanitize_text_field(wp_unslash($_SERVER['REQUEST_METHOD']))!=='POST')wp_die(esc_html__('Method not allowed', 'multipify-seo-boost'), '', ['response'=>405]);if(!current_user_can('manage_options'))wp_die(esc_html__('Access denied', 'multipify-seo-boost'));check_admin_referer('mpseo_import');if(empty($_FILES['file']['tmp_name'])||!isset($_FILES['file']['error'])||(int)$_FILES['file']['error']!==UPLOAD_ERR_OK)wp_die(esc_html__('Missing file or upload failed', 'multipify-seo-boost'));if(!isset($_FILES['file']['size'])||(int)$_FILES['file']['size']>1048576||(int)$_FILES['file']['size']<1)wp_die(esc_html__('File too large or empty (1 MB maximum)', 'multipify-seo-boost'));$tmp_name=isset($_FILES['file']['tmp_name'])&&is_string($_FILES['file']['tmp_name'])?sanitize_text_field(wp_unslash($_FILES['file']['tmp_name'])):'';if(!$tmp_name||!is_uploaded_file($tmp_name))wp_die(esc_html__('Invalid upload', 'multipify-seo-boost'));$filename=isset($_FILES['file']['name'])&&is_string($_FILES['file']['name'])?sanitize_file_name(wp_unslash($_FILES['file']['name'])):'';if(strtolower(pathinfo($filename,PATHINFO_EXTENSION))!=='json')wp_die(esc_html__('Only JSON files are accepted', 'multipify-seo-boost'));$raw= file_get_contents($tmp_name, false, null, 0, 1048577);if($raw===false||strlen($raw)>1048576)wp_die(esc_html__('Unable to read, or file too large', 'multipify-seo-boost'));$data=json_decode($raw,true);if(json_last_error()!==JSON_ERROR_NONE||!is_array($data)||!isset($data['settings'])||!is_array($data['settings']))wp_die(esc_html__('Invalid JSON', 'multipify-seo-boost'));update_option(MPSEO_Core::SETTINGS,MPSEO_Admin::sanitize($data['settings']));wp_safe_redirect(admin_url('admin.php?page=mpseo-tools&imported=1'));exit;}
// phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching -- plugin custom table or aggregate query with no core API equivalent; values prepared; admin/maintenance query whose result must be fresh.
static function rebuild(){if(!isset($_SERVER['REQUEST_METHOD'])||!is_string($_SERVER['REQUEST_METHOD'])||sanitize_text_field(wp_unslash($_SERVER['REQUEST_METHOD']))!=='POST')wp_die(esc_html__('Method not allowed', 'multipify-seo-boost'), '', ['response'=>405]);if(!current_user_can('manage_options'))wp_die(esc_html__('Access denied', 'multipify-seo-boost'));check_admin_referer('mpseo_rebuild');global $wpdb;foreach (array('_transient_mpseo_', '_transient_timeout_mpseo_') as $prefix) { $like = $wpdb->esc_like($prefix) . '%'; $names = $wpdb->get_col($wpdb->prepare('SELECT option_name FROM %i WHERE option_name LIKE %s', $wpdb->options, $like)); foreach ($names as $name) { delete_option($name); } }flush_rewrite_rules();wp_safe_redirect(admin_url('admin.php?page=mpseo-tools&maintained=1'));exit;}
}