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 / classes / Multicurrency / Transient / Hooks.php
woocommerce-multilingual / classes / Multicurrency / Transient Last commit date
Hooks.php 1 month 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