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 / Multicurrency / Shipping / ShippingHooksFactory.php
woocommerce-multilingual / classes / Multicurrency / Shipping Last commit date
AdminHooks.php 1 week ago DefaultConversion.php 1 week ago FlatRateShipping.php 5 years ago FreeShipping.php 1 week ago FrontEndHooks.php 1 week ago LocalPickup.php 5 years ago ShippingClasses.php 1 week ago ShippingClassesMode.php 1 week ago ShippingHooksFactory.php 1 week ago ShippingMode.php 1 week ago ShippingModeBase.php 1 week ago ShippingModeProvider.php 1 week ago UnsupportedShipping.php 1 week ago VariableCost.php 1 week ago
ShippingHooksFactory.php
51 lines
1 <?php
2
3 namespace WCML\Multicurrency\Shipping;
4
5 use WCML\StandAlone\IStandAloneAction;
6 use WCML\Utilities\AdminUrl;
7
8 class ShippingHooksFactory implements \IWPML_Deferred_Action_Loader, \IWPML_Backend_Action_Loader, \IWPML_Frontend_Action_Loader, IStandAloneAction {
9
10 public function get_load_action() {
11 return 'init';
12 }
13
14 public function create() {
15 global $woocommerce_wpml;
16 $hooks = [];
17
18 if ( wcml_is_multi_currency_on()
19 && $this->hasAdditionalCurrencyDefined()
20 ) {
21 if ( $this->isShippingPageRequest() || $this->isAjaxOnShippingPageRequest() ) {
22 $hooks[] = new AdminHooks( $woocommerce_wpml->get_multi_currency() );
23 } else {
24 $hooks[] = new FrontEndHooks( $woocommerce_wpml->get_multi_currency() );
25 }
26 }
27
28 return $hooks;
29 }
30
31 private function hasAdditionalCurrencyDefined() {
32 global $woocommerce_wpml;
33
34 $available_currencies = $woocommerce_wpml->get_multi_currency()->get_currency_codes();
35
36 return is_array( $available_currencies ) && count( $available_currencies ) > 1;
37 }
38
39 private function isShippingPageRequest() {
40 return isset( $_GET['page'], $_GET['tab'] ) && AdminUrl::PAGE_WOO_SETTINGS === $_GET['page'] && 'shipping' === $_GET['tab']
41 || isset( $_GET['action'] ) && 'woocommerce_shipping_zone_methods_save_settings' === $_GET['action'];
42 }
43
44 private function isAjaxOnShippingPageRequest() {
45 $getData = wpml_collect( $_GET );
46 $shippingActions = [ 'woocommerce_shipping_zone_add_method', 'woocommerce_shipping_zone_methods_save_changes' ];
47
48 return wp_doing_ajax() && wpml_collect( $shippingActions )->containsStrict( $getData->get( 'action' ) );
49 }
50 }
51