From 724da554dee6aefb3124166d291053dd533f0e00 Mon Sep 17 00:00:00 2001
From: olatechpro <olawale.olatech.pro@gmail.com>
Date: Thu, 5 Sep 2024 11:12:27 +0100
Subject: [PATCH] Prevent duplicate call for filters on page load #1754

---
 modules/calendar/calendar.php                 |  8 ++++++++
 modules/content-board/content-board.php       | 14 ++++++++++++++
 modules/content-overview/content-overview.php | 14 ++++++++++++++
 3 files changed, 36 insertions(+)

diff --git a/modules/calendar/calendar.php b/modules/calendar/calendar.php
index 7f5ca0c2..27c96958 100644
--- a/modules/calendar/calendar.php
+++ b/modules/calendar/calendar.php
@@ -1219,6 +1219,12 @@ public function get_filters()
          */
         public function update_user_filters($request_filter = [])
         {
+            global $pp_calendar_user_filters;
+
+            if (is_array($pp_calendar_user_filters)) {
+                return $pp_calendar_user_filters;
+            }
+
             $user_filters = [
                 'weeks'         => '',
                 'start_date'    => '',
@@ -1330,6 +1336,8 @@ public function update_user_filters($request_filter = [])
 
             $this->update_user_meta($current_user->ID, self::USERMETA_KEY_PREFIX . 'filters', $user_filters);
 
+            $pp_calendar_user_filters = $user_filters;
+
             return $user_filters;
         }
 
diff --git a/modules/content-board/content-board.php b/modules/content-board/content-board.php
index 405a5494..3c2123bb 100644
--- a/modules/content-board/content-board.php
+++ b/modules/content-board/content-board.php
@@ -626,6 +626,12 @@ public function get_selected_post_types()
      */
     public function update_user_filters()
     {
+        global $pp_content_board_user_filters;
+
+        if (is_array($pp_content_board_user_filters)) {
+            return $pp_content_board_user_filters;
+        }
+
         $current_user = wp_get_current_user();
 
         $user_filters = [
@@ -697,6 +703,8 @@ public function update_user_filters()
 
         $this->update_user_meta($current_user->ID, self::USERMETA_KEY_PREFIX . 'filters', $user_filters);
 
+        $pp_content_board_user_filters = $user_filters;
+
         return $user_filters;
     }
 
@@ -3200,6 +3208,12 @@ public function posts_where_range($where = '')
      */
     public function get_user_filters()
     {
+        global $pp_content_board_user_filters;
+
+        if (is_array($pp_content_board_user_filters)) {
+            return $pp_content_board_user_filters;
+        }
+        
         $current_user = wp_get_current_user();
         $user_filters = [];
         $user_filters = $this->get_user_meta($current_user->ID, self::USERMETA_KEY_PREFIX . 'filters', true);
diff --git a/modules/content-overview/content-overview.php b/modules/content-overview/content-overview.php
index 5b5b05a4..54234908 100644
--- a/modules/content-overview/content-overview.php
+++ b/modules/content-overview/content-overview.php
@@ -645,6 +645,12 @@ public function get_selected_post_types()
      */
     public function update_user_filters()
     {
+        global $pp_content_overview_user_filters;
+
+        if (is_array($pp_content_overview_user_filters)) {
+            return $pp_content_overview_user_filters;
+        }
+
         $current_user = wp_get_current_user();
 
         $user_filters = [
@@ -716,6 +722,8 @@ public function update_user_filters()
 
         $this->update_user_meta($current_user->ID, self::USERMETA_KEY_PREFIX . 'filters', $user_filters);
 
+        $pp_content_overview_user_filters = $user_filters;
+
         return $user_filters;
     }
 
@@ -3072,6 +3080,12 @@ public function column_post_title($post)
      */
     public function get_user_filters()
     {
+        global $pp_content_overview_user_filters;
+
+        if (is_array($pp_content_overview_user_filters)) {
+            return $pp_content_overview_user_filters;
+        }
+
         $current_user = wp_get_current_user();
         $user_filters = [];
         $user_filters = $this->get_user_meta($current_user->ID, self::USERMETA_KEY_PREFIX . 'filters', true);