Diff: STRATO-apps/wordpress_03/app/wp-content/plugins/tutor/cache/QuizAttempts.php

Keine Baseline-Datei – Diff nur gegen leer.
Zur Liste
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 +