PluginProbe ʕ •ᴥ•ʔ
WP Popular Posts / 7.1.0
WP Popular Posts v7.1.0
4.0.8 4.0.9 4.1.0 4.1.1 4.1.2 4.2.0 4.2.1 4.2.2 5.0.0 5.0.1 5.0.2 5.1.0 5.2.0 5.2.1 5.2.2 5.2.3 5.2.4 5.3.0 5.3.1 5.3.2 5.3.3 5.3.4 5.3.5 5.3.6 5.4.0 5.4.1 5.4.2 5.5.0 5.5.1 6.0.0 6.0.1 6.0.2 6.0.3 6.0.4 6.0.5 6.1.0 6.1.1 6.1.2 6.1.3 6.1.4 6.2.0 6.2.1 6.3.0 6.3.1 6.3.2 6.3.3 6.3.4 6.4.0 6.4.1 6.4.2 7.0.0 7.0.1 7.1.0 7.2.0 7.3.0 7.3.1 7.3.2 7.3.3 7.3.4 7.3.5 7.3.6 7.3.7 7.3.8 7.4.0 trunk 2.3.7 3.0.0 3.0.1 3.0.2 3.0.3 3.1.0 3.1.1 3.2.0 3.2.1 3.2.2 3.2.3 3.3.0 3.3.1 3.3.2 3.3.3 3.3.4 4.0.0 4.0.1 4.0.10 4.0.11 4.0.12 4.0.13 4.0.2 4.0.3 4.0.5 4.0.6
wordpress-popular-posts / src / Cache.php
wordpress-popular-posts / src Last commit date
Activation 1 year ago Admin 1 year ago Block 1 year ago Compatibility 1 year ago Container 1 year ago Front 1 year ago Rest 1 year ago Shortcode 1 year ago Traits 1 year ago Widget 1 year ago Bootstrap.php 1 year ago Cache.php 1 year ago Helper.php 1 year ago I18N.php 1 year ago Image.php 1 year ago Output.php 1 year ago Query.php 1 year ago Settings.php 1 year ago Themer.php 1 year ago Translate.php 1 year ago WordPressPopularPosts.php 1 year ago deprecated.php 1 year ago template-tags.php 1 year ago
Cache.php
107 lines
1 <?php
2
3 /**
4 * Helper class to store data in cache for a fixed amount of time.
5 *
6 * @link https://cabrerahector.com
7 * @since 4.1.2
8 *
9 * @package WordPressPopularPosts
10 * @subpackage WordPressPopularPosts/includes
11 */
12
13 /**
14 * Helper class to store data in cache for a fixed amount of time.
15 *
16 * Stores data in cache via WordPress Transients (or any other available
17 * method in the future) for a fixed amount of time to reduce the number
18 * of database calls.
19 *
20 * @package WordPressPopularPosts
21 * @subpackage WordPressPopularPosts/includes
22 * @author Hector Cabrera <me@cabrerahector.com>
23 */
24
25 namespace WordPressPopularPosts;
26
27 class Cache {
28
29 /**
30 * Retrieves cached data.
31 *
32 * @since 4.1.2
33 * @access public
34 * @param string $key The name of the cached data.
35 * @return mixed
36 */
37 public static function get(string $key)
38 {
39 return get_transient($key);
40 }
41
42 /**
43 * Retrieves cached data.
44 *
45 * @since 4.1.2
46 * @access public
47 * @param string $key The name of the cached data.
48 * @param mixed $data The data being stored.
49 */
50 public static function set(string $key = null, $data = [], int $time_value = 1, string $time_unit = 'minute') /** @TODO: starting PHP 8.0 $data can be declared as mixed $data */
51 {
52 if ( ! $key ) {
53 return false;
54 }
55
56 if (
57 false === filter_var($time_value, FILTER_VALIDATE_INT)
58 || $time_value <= 0
59 ) {
60 $time_value = 1;
61 }
62
63 switch( $time_unit ){
64 case 'minute':
65 $time = 60;
66 break;
67 case 'hour':
68 $time = 60 * 60;
69 break;
70 case 'day':
71 $time = 60 * 60 * 24;
72 break;
73 case 'week':
74 $time = 60 * 60 * 24 * 7;
75 break;
76 case 'month':
77 $time = 60 * 60 * 24 * 30;
78 break;
79 case 'year':
80 $time = 60 * 60 * 24 * 365;
81 break;
82 default:
83 $time = 60;
84 break;
85 }
86
87 $expiration = $time * $time_value;
88
89 // Store transient
90 set_transient($key, $data, $expiration);
91
92 // Store transient keys in WPP's transients table for garbage collection
93 global $wpdb;
94
95 //phpcs:disable WordPress.DB.DirectDatabaseQuery.DirectQuery
96 $wpdb->insert(
97 $wpdb->prefix . 'popularpoststransients',
98 [
99 'tkey' => $key,
100 'tkey_date' => Helper::now()
101 ],
102 ['%s', '%s']
103 );
104 //phpcs:disable
105 }
106 }
107