PluginProbe ʕ •ᴥ•ʔ
WPML Multilingual & Multicurrency for WooCommerce / 5.5.7
WPML Multilingual & Multicurrency for WooCommerce v5.5.7
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 4 weeks 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