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 / compatibility / WcDynamicPricing / MulticurrencyHooks.php
woocommerce-multilingual / compatibility / WcDynamicPricing Last commit date
Factory.php 1 month ago MulticurrencyHooks.php 1 month ago class-wcml-dynamic-pricing.php 1 month 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