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 / multi-currency / payment-gateways / class-wcml-payment-gateway.php
woocommerce-multilingual / classes / multi-currency / payment-gateways Last commit date
class-wcml-currencies-payment-gateways.php 4 weeks ago class-wcml-not-supported-payment-gateway.php 4 weeks ago class-wcml-payment-gateway-bacs.php 4 weeks ago class-wcml-payment-gateway-paypal-v2.php 4 weeks ago class-wcml-payment-gateway-paypal.php 4 weeks ago class-wcml-payment-gateway-stripe.php 4 weeks ago class-wcml-payment-gateway.php 4 weeks ago
class-wcml-payment-gateway.php
78 lines
1 <?php
2
3 abstract class WCML_Payment_Gateway {
4
5 const OPTION_KEY = 'wcml_payment_gateway_';
6
7 protected $current_currency;
8
9 protected $default_currency;
10
11 protected $active_currencies;
12
13 protected $gateway;
14
15 private $settings = [];
16
17 protected $woocommerce_wpml;
18
19 public function __construct( WC_Payment_Gateway $gateway, woocommerce_wpml $woocommerce_wpml ) {
20 $this->gateway = $gateway;
21 $this->woocommerce_wpml = $woocommerce_wpml;
22 $this->settings = get_option( self::OPTION_KEY . $this->get_id(), [] );
23 }
24
25 abstract public function get_output_model();
26
27 public function get_gateway() {
28 return $this->gateway;
29 }
30
31 public function get_id() {
32 return $this->gateway->id;
33 }
34
35 public function get_title() {
36 return $this->gateway->title;
37 }
38
39 public function get_settings() {
40 return $this->settings;
41 }
42
43 private function save_settings() {
44 update_option( self::OPTION_KEY . $this->get_id(), $this->settings );
45 }
46
47 public function get_setting( $currency ) {
48 $setting = $this->settings[ $currency ] ?? null;
49
50 return $this->set_currency( $setting, $currency );
51 }
52
53 private function set_currency( $setting, $currency ) {
54 if ( is_array( $setting ) && empty( $setting['currency'] ) ) {
55 $setting['currency'] = $currency;
56 }
57
58 return $setting;
59 }
60
61 public function save_setting( $key, $value ) {
62 $this->settings[ $key ] = $value;
63 $this->save_settings();
64 }
65
66 public function get_active_currencies() {
67
68 $active_currencies = $this->active_currencies;
69
70 if ( ! in_array( $this->current_currency, array_keys( $active_currencies ), true ) ) {
71 $active_currencies[ $this->current_currency ] = [];
72 }
73
74 return $active_currencies;
75 }
76
77 }
78