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 / classes / Multicurrency / Transient / Hooks.php
woocommerce-multilingual / classes / Multicurrency / Transient Last commit date
Hooks.php 1 week ago
Hooks.php
48 lines
1 <?php
2
3 namespace WCML\Multicurrency\Transient;
4
5 use WCML\MultiCurrency\Settings as McSettings;
6 use WPML\FP\Fns;
7 use WPML\FP\Str;
8 use WPML\LIB\WP\Hooks as WpHooks;
9 use function WCML\functions\getClientCurrency;
10 use function WPML\FP\spreadArgs;
11
12 class Hooks {
13
14 public static function addHooks( $key ) {
15 $getKeyWithCurrency = Str::concat( $key . '_' );
16 $getKeyWithClientCurrency = function() use ( $getKeyWithCurrency ) {
17 return $getKeyWithCurrency( getClientCurrency() );
18 };
19
20 $getTransient = function() use ( $getKeyWithClientCurrency ) {
21 return get_transient( $getKeyWithClientCurrency() );
22 };
23
24 $setTransient = function( $value ) use ( $key, $getKeyWithClientCurrency ) {
25 delete_transient( $key );
26 return set_transient( $getKeyWithClientCurrency(), $value );
27 };
28
29 $deleteTransient = function() use ( $getKeyWithCurrency ) {
30 foreach ( McSettings::getActiveCurrencyCodes() as $code ) {
31 delete_transient( $getKeyWithCurrency( $code ) );
32 }
33 };
34
35 $withLock = Fns::withNamedLock( __CLASS__ . "_$key", Fns::identity() );
36
37 WpHooks::onFilter( 'pre_transient_' . $key )
38 ->then( $getTransient );
39
40 WpHooks::onAction( 'set_transient_' . $key )
41 ->then( spreadArgs( $withLock( $setTransient ) ) );
42
43 WpHooks::onAction( 'delete_transient_' . $key )
44 ->then( $withLock( $deleteTransient ) );
45 }
46
47 }
48