PluginProbe ʕ •ᴥ•ʔ
WPML Multilingual & Multicurrency for WooCommerce / trunk
WPML Multilingual & Multicurrency for WooCommerce vtrunk
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 / classes / User / Store / Store.php
woocommerce-multilingual / classes / User / Store Last commit date
Cookie.php 3 years ago Noop.php 5 years ago Store.php 2 years ago Strategy.php 5 years ago WcSession.php 5 years ago
Store.php
73 lines
1 <?php
2
3 namespace WCML\User\Store;
4
5
6 class Store implements Strategy {
7
8 /**
9 * @param string $key
10 *
11 * @return mixed
12 */
13 public function get( $key ) {
14
15 $key = $this->adjustKey( $key );
16
17 return $this->getStrategy( $key )->get( $key );
18 }
19
20 /**
21 * @param string $key
22 * @param mixed $value
23 */
24 public function set( $key, $value ) {
25
26 $key = $this->adjustKey( $key );
27
28 $this->getStrategy( $key )->set( $key, $value );
29 }
30
31 /**
32 * @param string $key
33 *
34 * @return Strategy
35 */
36 private function getStrategy( $key ) {
37 global $woocommerce;
38
39 /**
40 * This filter hook allows to override the storage strategy.
41 *
42 * @since 4.11.0
43 *
44 * @param string $strategy Storage strategy
45 * @param string $key The key operating the storage
46 */
47 switch ( apply_filters( 'wcml_user_store_strategy', 'wc-session', $key ) ) {
48 case 'cookie':
49 $store = \WPML\Container\make( Cookie::class );
50 break;
51
52 case 'wc-session':
53 default:
54 $store = isset( $woocommerce->session ) ? new WcSession( $woocommerce->session ) : new Noop();
55 }
56
57 return $store;
58 }
59
60 /**
61 * @param string $key
62 *
63 * @return string $key
64 */
65 private function adjustKey( $key ) {
66
67 $prefix = 'wcml_';
68
69 return strpos( $key, $prefix ) === 0 ? $key : $prefix . $key;
70 }
71
72 }
73