From b7813eb118a53ffecda9f72358c902524b38679f Mon Sep 17 00:00:00 2001 From: Dylan Munson <65001528+CodeyGuyDylan@users.noreply.github.com> Date: Fri, 7 Feb 2025 09:20:38 -0700 Subject: [PATCH] Add/transient to cache backup api calls (#41608) * Cache backup api calls in My Jetpack * changelog * Fix issue with return value when transient is present * remove unused variable --- .../add-transient-to-cache-backup-api-calls | 4 ++++ .../my-jetpack/src/products/class-backup.php | 15 +++++++++++++++ 2 files changed, 19 insertions(+) create mode 100644 projects/packages/my-jetpack/changelog/add-transient-to-cache-backup-api-calls diff --git a/projects/packages/my-jetpack/changelog/add-transient-to-cache-backup-api-calls b/projects/packages/my-jetpack/changelog/add-transient-to-cache-backup-api-calls new file mode 100644 index 0000000000000..d4ed72f560e2f --- /dev/null +++ b/projects/packages/my-jetpack/changelog/add-transient-to-cache-backup-api-calls @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Cache calls to backup API in My Jetpack diff --git a/projects/packages/my-jetpack/src/products/class-backup.php b/projects/packages/my-jetpack/src/products/class-backup.php index 05a40be71d772..8a5753b4ee564 100644 --- a/projects/packages/my-jetpack/src/products/class-backup.php +++ b/projects/packages/my-jetpack/src/products/class-backup.php @@ -78,6 +78,8 @@ class Backup extends Hybrid_Product { */ public static $feature_identifying_paid_plan = 'backups'; + public const BACKUP_STATUS_TRANSIENT_KEY = 'my-jetpack-backup-status'; + /** * Get the product name * @@ -250,6 +252,13 @@ public static function get_latest_backups() { * @return boolean|array */ public static function does_module_need_attention() { + $previous_backup_status = get_transient( self::BACKUP_STATUS_TRANSIENT_KEY ); + + // If we have a previous backup status, show it. + if ( ! empty( $previous_backup_status ) ) { + return $previous_backup_status === 'no_errors' ? false : $previous_backup_status; + } + $backup_failed_status = false; // First check the status of Rewind for failure. $rewind_state = self::get_state_from_wpcom(); @@ -291,6 +300,12 @@ public static function does_module_need_attention() { } } + if ( is_array( $backup_failed_status ) && $backup_failed_status['type'] === 'error' ) { + set_transient( self::BACKUP_STATUS_TRANSIENT_KEY, $backup_failed_status, 5 * MINUTE_IN_SECONDS ); + } else { + set_transient( self::BACKUP_STATUS_TRANSIENT_KEY, 'no_errors', HOUR_IN_SECONDS ); + } + return $backup_failed_status; }