PluginProbe ʕ •ᴥ•ʔ
Tutor LMS – eLearning and online course solution / 3.9.14
Tutor LMS – eLearning and online course solution v3.9.14
3.9.14 3.9.13 3.9.12 3.9.11 trunk 1.0.0 1.0.0-alpha 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.1.0 1.1.1 1.2.0 1.2.1 1.2.11 1.2.12 1.2.13 1.2.20 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.3.8 1.3.9 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.9 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 1.7.0 1.7.1 1.7.2 1.7.3 1.7.4 1.7.5 1.7.6 1.7.7 1.7.8 1.7.9 1.8.0 1.8.1 1.8.10 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.8 1.8.9 1.9.0 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.14 1.9.15 1.9.16 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 2.0.1 2.0.10 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 2.1.0 2.1.1 2.1.10 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.3.0 2.4.0 2.5.0 2.6.0 2.6.1 2.6.2 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 3.0.0 3.0.1 3.0.2 3.1.0 3.2.0 3.2.1 3.2.2 3.2.3 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.7.0 3.7.1 3.7.2 3.7.3 3.7.4 3.8.0 3.8.1 3.8.2 3.8.3 3.9.0 3.9.1 3.9.10 3.9.2 3.9.3 3.9.4 3.9.5 3.9.6 3.9.7 3.9.8 3.9.9
tutor / cache / QuizAttempts.php
tutor / cache Last commit date
AbstractCache.php 3 years ago FlashMessage.php 10 months ago QuizAttempts.php 11 months ago TutorCache.php 3 years ago
QuizAttempts.php
121 lines
1 <?php
2 /**
3 * Handle quiz attempt cache data
4 *
5 * @package Tutor\Cache
6 * @author Themeum <support@themeum.com>
7 * @link https://themeum.com
8 * @since 2.0.6
9 */
10
11 namespace Tutor\Cache;
12
13 use Tutor\Cache\AbstractCache;
14
15 if ( ! defined( 'ABSPATH' ) ) {
16 return;
17 }
18
19 /**
20 * User data caching
21 * Get Set & check
22 *
23 * @since 2.0.6
24 */
25 class QuizAttempts extends AbstractCache {
26
27 /**
28 * Key for cache identifier
29 *
30 * @var string
31 *
32 * @since 2.0.6
33 */
34 const KEY = 'tutor_quiz_attempts_count';
35
36 /**
37 * Cache expire time
38 *
39 * @var string
40 *
41 * @since 2.0.6
42 */
43 const HOUR_IN_SECONDS = 1800;
44
45 /**
46 * Data for caching
47 *
48 * @var string
49 *
50 * @since 2.0.6
51 */
52 public $data;
53
54 /**
55 * Params for caching
56 *
57 * @var string
58 *
59 * @since 3.7.0
60 */
61 public $params = array();
62
63 /**
64 * Constructor to initialize query parameters for cache comparison.
65 *
66 * @param array $params The current query parameters (e.g., course_id, date, search).
67 *
68 * @since 2.7.0
69 */
70 public function __construct( array $params = array() ) {
71 $this->params = $params;
72 }
73
74 /**
75 * Key
76 *
77 * @since 2.0.6
78 * @return string
79 */
80 public function key(): string {
81 return self::KEY;
82 }
83
84 /**
85 * Cache data
86 *
87 * @since 2.0.6
88 * @return array
89 */
90 public function cache_data() {
91 return array(
92 'params' => $this->params,
93 'result' => $this->data,
94 );
95 }
96
97 /**
98 * Cache time
99 *
100 * @since 2.0.6
101 * @return int
102 */
103 public function cache_time(): int {
104 $cache_time = self::HOUR_IN_SECONDS;
105 return $cache_time;
106 }
107
108 /**
109 * Check if current params match cached params.
110 *
111 * @return bool
112 */
113 public function is_same_query(): bool {
114 $cache = $this->get_cache();
115 if ( ! $cache || ! is_array( $cache ) || ! isset( $cache['params'] ) ) {
116 return false;
117 }
118 return $cache['params'] === $this->params;
119 }
120 }
121