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 / Terms / SuspendWpmlFilters.php
woocommerce-multilingual / classes / Terms Last commit date
Count 2 weeks ago SuspendWpmlFilters.php 2 weeks ago SuspendWpmlFiltersFactory.php 2 weeks ago
SuspendWpmlFilters.php
50 lines
1 <?php
2
3 namespace WCML\Terms;
4
5 use WCML\Utilities\Suspend\Filters as SuspendFilters;
6 use WCML\Utilities\Suspend\Suspend;
7 use WPML\Collect\Support\Collection;
8 use function WPML\FP\spreadArgs;
9
10 class SuspendWpmlFilters implements Suspend {
11
12 private $suspendFilters;
13
14 private $filterArgs;
15
16 public function __construct( SuspendFilters $suspendFilters ) {
17 $this->suspendFilters = $suspendFilters;
18 $this->getTaxonomyChildrenOptionFiltersArgs()->each( spreadArgs( 'add_filter' ) );
19 }
20
21 private function getTaxonomyChildrenOptionFiltersArgs() {
22 $this->filterArgs = $this->filterArgs ?: wpml_collect( get_taxonomies() )
23 ->filter( 'is_taxonomy_translated' )
24 ->map( function( $taxonomy ) {
25 return [ "pre_option_{$taxonomy}_children", self::getTaxonomyChildrenInAllLanguages( $taxonomy ), 20 ];
26 } );
27
28 return $this->filterArgs;
29 }
30
31 private static function getTaxonomyChildrenInAllLanguages( $taxonomy ) {
32 return function() use ( $taxonomy ) {
33 return get_option( "{$taxonomy}_children_all", false );
34 };
35 }
36
37 public function resume() {
38 $this->suspendFilters->resume();
39 $this->getTaxonomyChildrenOptionFiltersArgs()->each( spreadArgs( 'remove_filter' ) );
40 }
41
42 public function runAndResume( callable $function ) {
43 $result = $function();
44
45 $this->resume();
46
47 return $result;
48 }
49 }
50