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 / vendor / wpml / wp / classes / Hooks.php
woocommerce-multilingual / addons / wpml-dependencies / vendor / wpml / wp / classes Last commit date
Attachment.php 1 month ago Cache.php 1 month ago Gutenberg.php 1 month ago Hooks.php 1 month ago Http.php 1 month ago Nonce.php 1 month ago Option.php 1 month ago Post.php 1 month ago PostType.php 1 month ago Resources.php 1 month ago Roles.php 4 years ago Transient.php 1 month ago Url.php 1 month ago User.php 1 month ago WP.php 1 month ago WPDB.php 1 month ago
Hooks.php
56 lines
1 <?php
2
3 namespace WPML\LIB\WP;
4
5 use WPML\FP\Either;
6 use WPML\FP\Lst;
7 use WPML\FP\Obj;
8 use WPML\FP\Promise;
9 use function WPML\FP\pipe;
10
11 class Hooks {
12
13 public static function onAction( $action, $priority = 10, $accepted_args = 1 ) {
14 return self::onHook( 'add_action', $action, $priority, $accepted_args );
15 }
16
17 public static function onFilter( $filter, $priority = 10, $accepted_args = 1 ) {
18 return self::onHook( 'add_filter', $filter, $priority, $accepted_args );
19 }
20
21 public static function onHook( callable $fn, $actionOrFilter, $priority = 10, $accepted_args = 1 ) {
22
23 $actionsOrFilters = is_array( $actionOrFilter ) ? $actionOrFilter : [ $actionOrFilter ];
24
25 $promise = new Promise();
26
27 $callback = function () use ( $promise ) {
28 return $promise->resolve( Either::right( func_get_args() ) )->getOrElse( null );
29 };
30
31 foreach ( $actionsOrFilters as $actionOrFilter ) {
32 $fn( $actionOrFilter, $callback, $priority, $accepted_args );
33 };
34
35 return $promise;
36 }
37
38 public static function callWithFilter( $fn, $name, $filterFn, $priority = 10, $acceptedArgs = 1 ) {
39 add_filter( $name, $filterFn, $priority, $acceptedArgs );
40 $result = $fn();
41 remove_filter( $name, $filterFn, $priority, $acceptedArgs );
42
43 return $result;
44 }
45
46 public static function getArgs( array $argsLabels ) {
47 return pipe(
48 Obj::pick( Obj::keys( $argsLabels ) ),
49 Obj::values(),
50 Lst::zipObj( Obj::values( $argsLabels ) )
51 );
52 }
53 }
54
55
56