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 / classes / Multicurrency / Shipping / ShippingHooksFactory.php
woocommerce-multilingual / classes / Multicurrency / Shipping Last commit date
AdminHooks.php 1 month ago DefaultConversion.php 1 month ago FlatRateShipping.php 5 years ago FreeShipping.php 1 month ago FrontEndHooks.php 1 month ago LocalPickup.php 5 years ago ShippingClasses.php 1 month ago ShippingClassesMode.php 1 month ago ShippingHooksFactory.php 1 month ago ShippingMode.php 1 month ago ShippingModeBase.php 1 month ago ShippingModeProvider.php 1 month ago UnsupportedShipping.php 1 month ago VariableCost.php 1 month 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