Diff: STRATO-apps/wordpress_03/app/wp-content/plugins/tutor/cache/QuizAttempts.php
Keine Baseline-Datei – Diff nur gegen leer.
1
-
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
+