PluginProbe ʕ •ᴥ•ʔ
WPML Multilingual & Multicurrency for WooCommerce / trunk
WPML Multilingual & Multicurrency for WooCommerce vtrunk
5.5.7 5.3.8 5.3.9 5.4.3 5.4.4 5.4.5 5.5.1 5.5.1.1 5.5.2.2 5.5.2.3 5.5.3 5.5.3.1 5.5.4 5.5.5 5.5.6 trunk 0.9 1.0 1.1 1.2 1.3 1.4 1.5 2.0 2.2 2.3 2.3.1 2.3.2 3.0 3.0.1 3.1 3.2 3.2.1 3.2.2 3.3 3.3.1 3.3.2 3.3.3 3.3.4 3.4 3.4.1 3.4.2 3.4.3 3.5 3.5.1 3.5.2 3.5.3 3.5.4 3.5.5 3.6 3.6.1 3.6.10 3.6.11 3.6.2 3.6.3 3.6.4 3.6.5 3.6.5.1 3.6.6 3.6.7 3.6.8 3.6.9 3.7 3.7.1 3.7.10 3.7.11 3.7.12 3.7.13 3.7.14 3.7.15 3.7.16 3.7.2 3.7.3 3.7.4 3.7.5 3.7.6 3.7.7 3.7.8 3.7.9 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.8.6 3.9.0 3.9.1 3.9.1.1 3.9.2 3.9.3 3.9.4 3.9.5 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.10.0 4.10.1 4.10.2 4.10.3 4.10.4 4.11.2 4.11.3.2 4.11.5 4.11.6 4.12.1 4.12.4 4.12.5 4.12.6 4.2.0 4.2.0.1 4.2.1 4.2.1.1 4.2.10 4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 4.2.7 4.2.7.1 4.2.8 4.2.8.1 4.2.9 4.3.0 4.3.1 4.3.2 4.3.2.1 4.3.3 4.3.4 4.3.5 4.3.6 4.3.7 4.4.0 4.4.1 4.4.2 4.4.2.1 4.5.0 4.6.0 4.6.1 4.6.2 4.6.2.1 4.6.3 4.6.5 4.6.6 4.6.7 4.7.0 4.7.1 4.7.2 4.7.3 4.7.4 4.7.5 4.7.6 4.7.7 4.7.8 4.7.9 4.8.0 4.9.0 4.9.1 5.0.1 5.0.2 5.1.1 5.1.2 5.1.3 5.2.0 5.2.1 5.3.2 5.3.3.1 5.3.4 5.3.5 5.3.6 5.3.7
woocommerce-multilingual / addons / wpml-dependencies / lib / classes / utilities / class-wpml-wp-cache.php
woocommerce-multilingual / addons / wpml-dependencies / lib / classes / utilities Last commit date
class-wpml-wp-cache.php 1 month ago
class-wpml-wp-cache.php
73 lines
1 <?php
2
3 class WPML_WP_Cache {
4
5 const KEYS = 'WPML_WP_Cache__group_keys';
6
7 private $group;
8
9 public function __construct( $group = '' ) {
10 $this->group = $group;
11 }
12
13 public function get( $key, &$found = null ) {
14 $value = wp_cache_get( $key, $this->group, false, $found );
15 if ( is_array( $value ) && array_key_exists( 'data', $value ) ) {
16 $found = true;
17
18 return $value['data'];
19 } else {
20 $found = false;
21
22 return $value;
23 }
24 }
25
26 public function set( $key, $data, $expire = 0 ) {
27 $keys = $this->get_keys();
28 if ( ! in_array( $key, $keys, true ) ) {
29 $keys[] = $key;
30 wp_cache_set( self::KEYS, $keys, $this->group );
31 }
32
33 return wp_cache_set( $key, [ 'data' => $data ], $this->group, $expire );
34 }
35
36 public function flush_group_cache() {
37 $keys = $this->get_keys();
38
39 foreach ( $keys as $key ) {
40 wp_cache_delete( $key, $this->group );
41 }
42
43 wp_cache_delete( self::KEYS, $this->group );
44 }
45
46 public function execute_and_cache( $key, $callback ) {
47 list( $result, $found ) = $this->get_with_found( $key );
48 if ( ! $found ) {
49 $result = $callback();
50 $this->set( $key, $result );
51 }
52
53 return $result;
54 }
55
56 public function get_with_found( $key ) {
57 $found = false;
58 $result = $this->get( $key, $found );
59
60 return [ $result, $found ];
61 }
62
63 private function get_keys() {
64 $found = false;
65 $keys = wp_cache_get( self::KEYS, $this->group, false, $found );
66 if ( $found && is_array( $keys ) ) {
67 return $keys;
68 }
69
70 return [];
71 }
72 }
73