Dashboard
PHP:
8.4.22
OS:
Linux
User:
provencez
/
/
home
/
provencez
/
www
/
wp-content
/
plugins
/
wptouch
/
core
📤 Upload
📝 New File
📁 New Folder
Close
Editing: admin-backup-restore.php
<?php function wptouch_prune_backup_files( $amount = 2 ) { require_once( WPTOUCH_DIR . '/core/file-operations.php' ); $all_files = wptouch_get_files_in_directory( WPTOUCH_BACKUP_DIRECTORY, '.txt' ); if ( is_array( $all_files ) && count( (array) $all_files ) ) { $file_data = array(); foreach( $all_files as $backup_file ) { $file_data[ filemtime( $backup_file ) ] = $backup_file; } // Sort by file modification time in desc. order krsort( $file_data ); // Determine the files we want to delete $files_to_delete = array_diff_key( $file_data, array_slice( $file_data, 0, $amount, true ) ); foreach( $files_to_delete as $ftime => $file_name ) { unlink( $file_name ); } } } function wptouch_backup_settings() { global $wptouch_pro; $backup_domains = $wptouch_pro->get_active_setting_domains(); if ( is_array( $backup_domains ) && count( (array) $backup_domains ) ) { $settings_to_save = array(); foreach( $backup_domains as $domain ) { $settings_notused = wptouch_get_settings( $domain ); $settings = clone $wptouch_pro->settings_objects[ $domain ]; if ( isset( $settings->domain ) ) { unset( $settings->domain ); } $settings_to_save[ $domain ] = apply_filters( 'wptouch_backup_settings', $settings, $domain ); } if ( isset( $settings_to_save[ 'bncid' ] ) ) { if ( isset( $settings_to_save[ 'bncid' ]->wptouch_license_key ) ) { //unset( $settings_to_save[ 'bncid' ]->wptouch_license_key ); } if ( isset( $settings_to_save[ 'bncid' ]->bncid ) ) { //unset( $settings_to_save[ 'bncid' ]->bncid ); } } ksort( $settings_to_save ); $backup_string = base64_encode( gzcompress( serialize( $settings_to_save ), 9 ) ); $unique_key = ''; if ( isset( $bnc_settings->license_key ) ) { $unique_key = $bnc_settings->license; } else if ( defined( 'AUTH_KEY' ) ) { $unique_key = AUTH_KEY; } $backup_base_name = 'wptouch-backup-' . md5( $unique_key ) . '-' . date( 'Ymd-His') . '.txt'; $backup_file_name = WPTOUCH_BACKUP_DIRECTORY . '/' . $backup_base_name; $backup_file = fopen( $backup_file_name, 'w+t' ); if ( $backup_file ) { fwrite( $backup_file, $backup_string ); fclose( $backup_file ); } } wptouch_prune_backup_files(); return $backup_base_name; } function wptouch_restore_settings( $encoded_string ) { global $wptouch_pro; $encoded_settings = base64_decode( $encoded_string ); $settings = unserialize( gzuncompress( $encoded_settings ) , ["allowed_classes" => [ 'WPtouchSettings', 'WPtouchDefaultSettingsBNCID30', 'WPtouchDefaultSettingsCompat', 'WPtouchDefaultSettingsMultisite', 'WPtouchDefaultSettings30' ] ] ); $wptouch_pro->erase_all_settings(); if ( is_array( $settings ) ) { foreach( $settings as $domain => $settings_object ) { $settings_object->domain = $domain; $settings_object->save(); do_action( 'wptouch_after_restore_settings', $domain, $settings_object ); } } }
Save
Cancel