- WordPress core y plugins - Tema Twenty Twenty-Four configurado - Plugin allow-unfiltered-html.php simplificado - .gitignore configurado para excluir wp-config.php y uploads 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
116 lines
2.6 KiB
PHP
Executable File
116 lines
2.6 KiB
PHP
Executable File
<?php
|
|
/**
|
|
* The functionality related to the Backup.
|
|
*
|
|
* @since 1.0.240
|
|
* @package RankMath
|
|
* @subpackage RankMath\Status
|
|
* @author Rank Math <support@rankmath.com>
|
|
*/
|
|
|
|
namespace RankMath\Status;
|
|
|
|
use RankMath\Helper;
|
|
|
|
defined( 'ABSPATH' ) || exit;
|
|
|
|
/**
|
|
* Backup class.
|
|
*/
|
|
class Backup {
|
|
/**
|
|
* Get backups from the database.
|
|
*
|
|
* @param {bool} $return_object Whether to retrun the backup data or only the keys with formatted date.
|
|
*/
|
|
public static function get_backups( $return_object = false ) {
|
|
$backups = get_option( 'rank_math_backups', [] );
|
|
if ( empty( $backups ) ) {
|
|
$backups = [];
|
|
} elseif ( ! is_array( $backups ) ) {
|
|
$backups = (array) $backups;
|
|
}
|
|
|
|
if ( empty( $backups ) || $return_object ) {
|
|
return $backups;
|
|
}
|
|
|
|
$data = [];
|
|
foreach ( array_keys( $backups ) as $backup ) {
|
|
$data[ $backup ] = esc_html( date_i18n( 'M jS Y, H:i a', $backup ) );
|
|
}
|
|
|
|
return $data;
|
|
}
|
|
|
|
/**
|
|
* Create Backup.
|
|
*/
|
|
public static function create_backup() {
|
|
$key = Helper::get_current_time();
|
|
if ( is_null( $key ) ) {
|
|
return [
|
|
'type' => 'error',
|
|
'message' => esc_html__( 'Unable to create backup this time.', 'rank-math' ),
|
|
];
|
|
}
|
|
|
|
$backups = self::get_backups( true );
|
|
$backups = [ $key => Import_Export_Settings::get_export_data() ] + $backups;
|
|
update_option( 'rank_math_backups', $backups, false );
|
|
|
|
return [
|
|
'type' => 'success',
|
|
'message' => esc_html__( 'Backup created successfully.', 'rank-math' ),
|
|
'backups' => self::get_backups(),
|
|
];
|
|
}
|
|
|
|
/**
|
|
* Create Backup.
|
|
*
|
|
* @param string $key Backup key to be restored.
|
|
*/
|
|
public static function restore_backup( $key ) {
|
|
$backups = self::get_backups( true );
|
|
if ( ! array_key_exists( $key, $backups ) ) {
|
|
return [
|
|
'type' => 'error',
|
|
'message' => esc_html__( 'Backup does not exist.', 'rank-math' ),
|
|
];
|
|
}
|
|
|
|
Import_Export_Settings::do_import_data( $backups[ $key ], true );
|
|
|
|
return [
|
|
'type' => 'success',
|
|
'message' => esc_html__( 'Backup restored successfully.', 'rank-math' ),
|
|
];
|
|
}
|
|
|
|
/**
|
|
* Delete Backup.
|
|
*
|
|
* @param string $key Backup key to be restored.
|
|
*/
|
|
public static function delete_backup( $key ) {
|
|
$backups = self::get_backups();
|
|
if ( ! isset( $backups[ $key ] ) ) {
|
|
return [
|
|
'type' => 'error',
|
|
'message' => esc_html__( 'No backup key found to delete.', 'rank-math' ),
|
|
'backups' => self::get_backups(),
|
|
];
|
|
}
|
|
|
|
unset( $backups[ $key ] );
|
|
update_option( 'rank_math_backups', $backups, false );
|
|
|
|
return [
|
|
'type' => 'success',
|
|
'message' => esc_html__( 'Backup successfully deleted.', 'rank-math' ),
|
|
'backups' => self::get_backups(),
|
|
];
|
|
}
|
|
}
|