Changeset 3763556
- Timestamp:
- 10/24/2026 05:24:11 PM (8 hours ago)
- Location:
- fast-backups
- Files:
-
- 2 added
- 14 edited
- 1 copied
-
tags/1.0.195 (copied) (copied from fast-backups/trunk )
-
tags/1.0.195/README.md (modified) (1 diff)
-
tags/1.0.195/classes/Database.php (modified) (3 diffs)
-
tags/1.0.195/classes/Export.php (modified) (2 diffs)
-
tags/1.0.195/classes/Import.php (modified) (1 diff)
-
tags/1.0.195/classes/Insights.php (added)
-
tags/1.0.195/classes/Schedule.php (modified) (1 diff)
-
tags/1.0.195/fast-wp-backups.php (modified) (5 diffs)
-
tags/1.0.195/readme.txt (modified) (5 diffs)
-
trunk/README.md (modified) (1 diff)
-
trunk/classes/Database.php (modified) (3 diffs)
-
trunk/classes/Export.php (modified) (2 diffs)
-
trunk/classes/Import.php (modified) (1 diff)
-
trunk/classes/Insights.php (added)
-
trunk/classes/Schedule.php (modified) (1 diff)
-
trunk/fast-wp-backups.php (modified) (5 diffs)
-
trunk/readme.txt (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
fast-backups/tags/1.0.195/README.md
r3759857 r3763556 14 14 ## Current Version 15 15 16 1.0.194 16 1.0.195 17 18 ## Operational statistics 19 20 Fast Backups > Statistics displays local successful-operation counters. Optional daily reporting is off by default and requires explicit administrator consent. The reporting payload is allowlisted; it never includes archive contents, filenames, account emails or destination credentials. Reports can be deleted and expire after 90 inactive days. See https://wpbackup.dev/privacy-insights.html. 17 21 18 22 ## Google OAuth Redirect URI -
fast-backups/tags/1.0.195/classes/Database.php
r3759857 r3763556 239 239 240 240 fwrite( $fh, "SET NAMES utf8mb4;\n" ); 241 fwrite( $fh, "SET SQL_MODE=\"NO_ZERO_DATE,NO_ZERO_IN_DATE,NO_ENGINE_SUBSTITUTION\";\n" ); 241 // WordPress and common plugins retain legacy zero-date defaults. Strict 242 // zero-date modes would make their otherwise valid CREATE TABLE fail. 243 fwrite( $fh, "SET SQL_MODE=\"NO_AUTO_VALUE_ON_ZERO\";\n" ); 242 244 fwrite( $fh, "SET FOREIGN_KEY_CHECKS=0;\n\n" ); 243 245 … … 351 353 352 354 // Apply filters based on options 355 $col_sql_str = implode( ', ', array_map( 'fastwpbackups_sql_identifier', $columns ) ); 353 356 $db_options = isset( $options['dbOptions'] ) ? (array) $options['dbOptions'] : array(); 354 357 … … 404 407 405 408 foreach ( $rows as $row ) { 409 // Reporting consent and installation credentials must never migrate to another site. 410 if ( $table_name === $wpdb->options && isset( $row['option_name'] ) && in_array( $row['option_name'], array( 'fastwpbackups_reporting', 'fastwpbackups_reporting_last' ), true ) ) { continue; } 406 411 if ( ! is_array( $row ) ) { 407 412 continue; -
fast-backups/tags/1.0.195/classes/Export.php
r3604480 r3763556 494 494 // Get backup info 495 495 $backup_size = filesize( $backup_file ); 496 Insights::record( 'export', $backup_id ); 497 Insights::record( 'delivery', $backup_id, 'local' ); 496 498 497 499 wp_send_json_success( array( … … 1302 1304 delete_transient( 'fastwpbackups_export_' . $backup_id ); 1303 1305 1306 Insights::record( 'export', $backup_id, isset( $options['destination'] ) ? $options['destination'] : 'local' ); 1304 1307 return array( 1305 1308 'backup_id' => $backup_id, -
fast-backups/tags/1.0.195/classes/Import.php
r3759857 r3763556 2159 2159 $this->assert_import_not_cancelled( $import_id ); 2160 2160 $transaction->commit(); 2161 Insights::record( ( $import_context['source'] ?? '' ) === 'server_backup' ? 'restore' : 'import', $import_id ); 2161 2162 $retained_backup = $this->retain_imported_backup( $import_context, $manifest_data ); 2162 2163 $retention_warning = is_wp_error( $retained_backup ) ? $retained_backup->get_error_message() : ''; -
fast-backups/tags/1.0.195/classes/Schedule.php
r3653226 r3763556 1654 1654 */ 1655 1655 private function record_result( $destination, $status, $message, $backup_file = '' ) { 1656 if ( $status === 'success' && $backup_file !== '' ) { 1657 Insights::record( 'delivery', $backup_file, $destination ); 1658 } 1656 1659 $settings = $this->get_settings(); 1657 1660 $settings[ $destination ]['last_run'] = time(); -
fast-backups/tags/1.0.195/fast-wp-backups.php
r3759864 r3763556 6 6 * Author: NxtLabs 7 7 * Author URI: https://nxtlabs.com 8 * Version: 1.0.19 48 * Version: 1.0.195 9 9 * Requires PHP: 7.2 10 10 * Requires at least: 5.3 … … 23 23 * Define plugin constants 24 24 */ 25 define( 'FASTWPBACKUPS_VERSION', '1.0.19 4' );25 define( 'FASTWPBACKUPS_VERSION', '1.0.195' ); 26 26 // phpcs:ignore PluginCheck.CodeAnalysis.Offloading.OffloadedContent -- This is a Google OAuth client ID, not an offloaded plugin asset. 27 27 define( 'FASTWPBACKUPS_GOOGLE_CLIENT_ID', '714894714831-jb3ggd421r63rmfgeu7m125vrkkaeeem.apps.googleusercontent.com' ); … … 60 60 require_once FASTWPBACKUPS_PLUGIN_DIR . 'classes/Schedule.php'; 61 61 require_once FASTWPBACKUPS_PLUGIN_DIR . 'classes/Admin.php'; 62 require_once FASTWPBACKUPS_PLUGIN_DIR . 'classes/Insights.php'; 63 FastWPBackups\Insights::init(); 62 64 63 65 /** … … 91 93 */ 92 94 register_deactivation_hook( __FILE__, array( 'FastWPBackups\Core', 'deactivate' ) ); 95 register_deactivation_hook( __FILE__, function () { wp_clear_scheduled_hook( FastWPBackups\Insights::CRON ); } ); 93 96 94 97 /** … … 122 125 delete_option( 'fastwpbackups_google_tokens' ); 123 126 delete_option( 'fastwpbackups_google_account' ); 127 delete_option( 'fastwpbackups_reporting' ); 128 delete_option( 'fastwpbackups_reporting_last' ); 129 delete_option( 'fastwpbackups_insights_schema' ); 130 wp_clear_scheduled_hook( 'fastwpbackups_report_insights' ); 131 global $wpdb; 132 $insights_table = $wpdb->prefix . 'fastwpbackups_events'; 133 $wpdb->query( 'DROP TABLE IF EXISTS ' . fastwpbackups_sql_identifier( $insights_table ) ); 124 134 delete_option( 'fastwpbackups_deferred_option_guard' ); 125 135 delete_option( 'fastwpbackups_storage_migrated_' . $storage_slug ); -
fast-backups/tags/1.0.195/readme.txt
r3759864 r3763556 5 5 Tested up to: 7.1 6 6 Requires PHP: 7.2 7 Stable tag: 1.0.19 47 Stable tag: 1.0.195 8 8 License: GPL v2 or later 9 9 License URI: https://www.gnu.org/licenses/gpl-2.0.html … … 165 165 == External Services == 166 166 167 = Optional operational reporting to WPBackup.dev = 168 169 Reporting is disabled by default. An administrator can explicitly enable it under Fast Backups > Statistics. Once enabled, a daily HTTPS request to https://wpbackup.dev/admin/report.php sends the site URL, plugin version, available local backup count, successful export/import/restore counts, destination schedule status, successful delivery counts and Google Drive connection status. A random installation identifier and reporting key authenticate updates. No backup contents, filenames, account emails, FTP credentials or Google tokens are sent. 170 171 Local counters remain available without reporting. Reporting can be stopped at any time; the Statistics page also offers remote deletion. Reports expire after 90 days without an update. Statistics are self-reported and may reset following database restoration. WPBackup.dev uses these optional reports for product operations and usage insights, not advertising. 172 173 * Service: https://wpbackup.dev/ 174 * Reporting privacy: https://wpbackup.dev/privacy-insights.html 175 * Terms: https://wpbackup.dev/terms 176 167 177 Fast Backups can connect to Google Drive when an administrator chooses Google Drive as a backup destination and authorizes a Google account. 168 178 … … 191 201 == Privacy == 192 202 193 Fast Backups does not send site data to an external service when you create, download, restore, or schedule a local backup.203 Local backup operations do not require external reporting. Optional daily operational reporting is off by default and only runs after explicit administrator consent in Fast Backups > Statistics. See the reporting service disclosure above. 194 204 195 205 If you configure an external destination, backup archives can contain the complete WordPress database and files, including personal or confidential information stored by the site. Make sure you are authorized to copy that data and that the destination meets your security, privacy, and retention requirements. … … 203 213 204 214 == Changelog == 215 216 = 1.0.195 - October 2026 = 217 * Added local successful-operation statistics with idempotent completion counting. 218 * Added optional, off-by-default daily reporting with explicit consent, opt-out and remote deletion. 219 * Excluded reporting identity and consent from exported database archives. 220 * Corrected database dump column lists and compatibility with legacy zero-date defaults. 205 221 206 222 = 1.0.194 - October 2026 = … … 261 277 == Upgrade Notice == 262 278 279 = 1.0.195 = 280 281 Adds local operation statistics and optional, off-by-default reporting with explicit consent and remote deletion. Corrects database dump compatibility. No reporting is enabled automatically. 282 263 283 = 1.0.194 = 264 284 -
fast-backups/trunk/README.md
r3759857 r3763556 14 14 ## Current Version 15 15 16 1.0.194 16 1.0.195 17 18 ## Operational statistics 19 20 Fast Backups > Statistics displays local successful-operation counters. Optional daily reporting is off by default and requires explicit administrator consent. The reporting payload is allowlisted; it never includes archive contents, filenames, account emails or destination credentials. Reports can be deleted and expire after 90 inactive days. See https://wpbackup.dev/privacy-insights.html. 17 21 18 22 ## Google OAuth Redirect URI -
fast-backups/trunk/classes/Database.php
r3759857 r3763556 239 239 240 240 fwrite( $fh, "SET NAMES utf8mb4;\n" ); 241 fwrite( $fh, "SET SQL_MODE=\"NO_ZERO_DATE,NO_ZERO_IN_DATE,NO_ENGINE_SUBSTITUTION\";\n" ); 241 // WordPress and common plugins retain legacy zero-date defaults. Strict 242 // zero-date modes would make their otherwise valid CREATE TABLE fail. 243 fwrite( $fh, "SET SQL_MODE=\"NO_AUTO_VALUE_ON_ZERO\";\n" ); 242 244 fwrite( $fh, "SET FOREIGN_KEY_CHECKS=0;\n\n" ); 243 245 … … 351 353 352 354 // Apply filters based on options 355 $col_sql_str = implode( ', ', array_map( 'fastwpbackups_sql_identifier', $columns ) ); 353 356 $db_options = isset( $options['dbOptions'] ) ? (array) $options['dbOptions'] : array(); 354 357 … … 404 407 405 408 foreach ( $rows as $row ) { 409 // Reporting consent and installation credentials must never migrate to another site. 410 if ( $table_name === $wpdb->options && isset( $row['option_name'] ) && in_array( $row['option_name'], array( 'fastwpbackups_reporting', 'fastwpbackups_reporting_last' ), true ) ) { continue; } 406 411 if ( ! is_array( $row ) ) { 407 412 continue; -
fast-backups/trunk/classes/Export.php
r3604480 r3763556 494 494 // Get backup info 495 495 $backup_size = filesize( $backup_file ); 496 Insights::record( 'export', $backup_id ); 497 Insights::record( 'delivery', $backup_id, 'local' ); 496 498 497 499 wp_send_json_success( array( … … 1302 1304 delete_transient( 'fastwpbackups_export_' . $backup_id ); 1303 1305 1306 Insights::record( 'export', $backup_id, isset( $options['destination'] ) ? $options['destination'] : 'local' ); 1304 1307 return array( 1305 1308 'backup_id' => $backup_id, -
fast-backups/trunk/classes/Import.php
r3759857 r3763556 2159 2159 $this->assert_import_not_cancelled( $import_id ); 2160 2160 $transaction->commit(); 2161 Insights::record( ( $import_context['source'] ?? '' ) === 'server_backup' ? 'restore' : 'import', $import_id ); 2161 2162 $retained_backup = $this->retain_imported_backup( $import_context, $manifest_data ); 2162 2163 $retention_warning = is_wp_error( $retained_backup ) ? $retained_backup->get_error_message() : ''; -
fast-backups/trunk/classes/Schedule.php
r3653226 r3763556 1654 1654 */ 1655 1655 private function record_result( $destination, $status, $message, $backup_file = '' ) { 1656 if ( $status === 'success' && $backup_file !== '' ) { 1657 Insights::record( 'delivery', $backup_file, $destination ); 1658 } 1656 1659 $settings = $this->get_settings(); 1657 1660 $settings[ $destination ]['last_run'] = time(); -
fast-backups/trunk/fast-wp-backups.php
r3759864 r3763556 6 6 * Author: NxtLabs 7 7 * Author URI: https://nxtlabs.com 8 * Version: 1.0.19 48 * Version: 1.0.195 9 9 * Requires PHP: 7.2 10 10 * Requires at least: 5.3 … … 23 23 * Define plugin constants 24 24 */ 25 define( 'FASTWPBACKUPS_VERSION', '1.0.19 4' );25 define( 'FASTWPBACKUPS_VERSION', '1.0.195' ); 26 26 // phpcs:ignore PluginCheck.CodeAnalysis.Offloading.OffloadedContent -- This is a Google OAuth client ID, not an offloaded plugin asset. 27 27 define( 'FASTWPBACKUPS_GOOGLE_CLIENT_ID', '714894714831-jb3ggd421r63rmfgeu7m125vrkkaeeem.apps.googleusercontent.com' ); … … 60 60 require_once FASTWPBACKUPS_PLUGIN_DIR . 'classes/Schedule.php'; 61 61 require_once FASTWPBACKUPS_PLUGIN_DIR . 'classes/Admin.php'; 62 require_once FASTWPBACKUPS_PLUGIN_DIR . 'classes/Insights.php'; 63 FastWPBackups\Insights::init(); 62 64 63 65 /** … … 91 93 */ 92 94 register_deactivation_hook( __FILE__, array( 'FastWPBackups\Core', 'deactivate' ) ); 95 register_deactivation_hook( __FILE__, function () { wp_clear_scheduled_hook( FastWPBackups\Insights::CRON ); } ); 93 96 94 97 /** … … 122 125 delete_option( 'fastwpbackups_google_tokens' ); 123 126 delete_option( 'fastwpbackups_google_account' ); 127 delete_option( 'fastwpbackups_reporting' ); 128 delete_option( 'fastwpbackups_reporting_last' ); 129 delete_option( 'fastwpbackups_insights_schema' ); 130 wp_clear_scheduled_hook( 'fastwpbackups_report_insights' ); 131 global $wpdb; 132 $insights_table = $wpdb->prefix . 'fastwpbackups_events'; 133 $wpdb->query( 'DROP TABLE IF EXISTS ' . fastwpbackups_sql_identifier( $insights_table ) ); 124 134 delete_option( 'fastwpbackups_deferred_option_guard' ); 125 135 delete_option( 'fastwpbackups_storage_migrated_' . $storage_slug ); -
fast-backups/trunk/readme.txt
r3759864 r3763556 5 5 Tested up to: 7.1 6 6 Requires PHP: 7.2 7 Stable tag: 1.0.19 47 Stable tag: 1.0.195 8 8 License: GPL v2 or later 9 9 License URI: https://www.gnu.org/licenses/gpl-2.0.html … … 165 165 == External Services == 166 166 167 = Optional operational reporting to WPBackup.dev = 168 169 Reporting is disabled by default. An administrator can explicitly enable it under Fast Backups > Statistics. Once enabled, a daily HTTPS request to https://wpbackup.dev/admin/report.php sends the site URL, plugin version, available local backup count, successful export/import/restore counts, destination schedule status, successful delivery counts and Google Drive connection status. A random installation identifier and reporting key authenticate updates. No backup contents, filenames, account emails, FTP credentials or Google tokens are sent. 170 171 Local counters remain available without reporting. Reporting can be stopped at any time; the Statistics page also offers remote deletion. Reports expire after 90 days without an update. Statistics are self-reported and may reset following database restoration. WPBackup.dev uses these optional reports for product operations and usage insights, not advertising. 172 173 * Service: https://wpbackup.dev/ 174 * Reporting privacy: https://wpbackup.dev/privacy-insights.html 175 * Terms: https://wpbackup.dev/terms 176 167 177 Fast Backups can connect to Google Drive when an administrator chooses Google Drive as a backup destination and authorizes a Google account. 168 178 … … 191 201 == Privacy == 192 202 193 Fast Backups does not send site data to an external service when you create, download, restore, or schedule a local backup.203 Local backup operations do not require external reporting. Optional daily operational reporting is off by default and only runs after explicit administrator consent in Fast Backups > Statistics. See the reporting service disclosure above. 194 204 195 205 If you configure an external destination, backup archives can contain the complete WordPress database and files, including personal or confidential information stored by the site. Make sure you are authorized to copy that data and that the destination meets your security, privacy, and retention requirements. … … 203 213 204 214 == Changelog == 215 216 = 1.0.195 - October 2026 = 217 * Added local successful-operation statistics with idempotent completion counting. 218 * Added optional, off-by-default daily reporting with explicit consent, opt-out and remote deletion. 219 * Excluded reporting identity and consent from exported database archives. 220 * Corrected database dump column lists and compatibility with legacy zero-date defaults. 205 221 206 222 = 1.0.194 - October 2026 = … … 261 277 == Upgrade Notice == 262 278 279 = 1.0.195 = 280 281 Adds local operation statistics and optional, off-by-default reporting with explicit consent and remote deletion. Corrects database dump compatibility. No reporting is enabled automatically. 282 263 283 = 1.0.194 = 264 284
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)