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 / compatibility / WcDynamicPricing / MulticurrencyHooks.php
woocommerce-multilingual / compatibility / WcDynamicPricing Last commit date
Factory.php 2 weeks ago MulticurrencyHooks.php 2 weeks ago class-wcml-dynamic-pricing.php 2 weeks ago
MulticurrencyHooks.php
63 lines
1 <?php
2
3 namespace WCML\Compatibility\WcDynamicPricing;
4
5 class MulticurrencyHooks implements \IWPML_Action {
6
7 public function add_hooks() {
8 add_filter( 'wc_dynamic_pricing_load_modules', [ $this, 'filter_price' ] );
9 add_filter( 'woocommerce_dynamic_pricing_get_rule_amount', [ $this, 'woocommerce_dynamic_pricing_get_rule_amount' ], 10, 2 );
10 add_filter( 'dynamic_pricing_product_rules', [ $this, 'dynamic_pricing_product_rules' ] );
11 }
12
13 public function filter_price( $modules ) {
14
15 foreach ( $modules as $mod_key => $module ) {
16 if ( isset( $module->available_rulesets ) ) {
17 $available_rulesets = $module->available_rulesets;
18
19 foreach ( $available_rulesets as $rule_key => $available_ruleset ) {
20
21 if ( isset( $available_ruleset['rules'] ) && is_array( $available_ruleset['rules'] ) ) {
22 $rules = $available_ruleset['rules'];
23 foreach ( $rules as $r_key => $rule ) {
24 if ( 'fixed_product' === $rule['type'] ) {
25 $rules[ $r_key ]['amount'] = apply_filters( 'wcml_raw_price_amount', $rule['amount'] );
26 }
27 }
28 $modules[ $mod_key ]->available_rulesets[ $rule_key ]['rules'] = $rules;
29
30 } elseif ( isset( $available_ruleset['type'] ) && 'fixed_product' === $available_ruleset['type'] ) {
31 $modules[ $mod_key ]->available_rulesets[ $rule_key ]['amount'] = apply_filters( 'wcml_raw_price_amount', $available_ruleset['amount'] );
32 }
33 }
34 }
35 }
36
37 return $modules;
38 }
39
40 public function woocommerce_dynamic_pricing_get_rule_amount( $amount, $rule ) {
41
42 if ( 'price_discount' === $rule['type'] || 'fixed_price' === $rule['type'] ) {
43 $amount = apply_filters( 'wcml_raw_price_amount', $amount );
44 }
45
46 return $amount;
47 }
48
49 public function dynamic_pricing_product_rules( $rules ) {
50 if ( is_array( $rules ) ) {
51 foreach ( $rules as $r_key => $rule ) {
52 foreach ( $rule['rules'] as $key => $product_rule ) {
53 if ( 'price_discount' === $product_rule['type'] || 'fixed_price' === $product_rule['type'] ) {
54 $rules[ $r_key ]['rules'][ $key ]['amount'] = apply_filters( 'wcml_raw_price_amount', $product_rule['amount'] );
55 }
56 }
57 }
58 }
59 return $rules;
60 }
61
62 }
63