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 / 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 1 month ago class-wcml-not-supported-payment-gateway.php 1 month ago class-wcml-payment-gateway-bacs.php 1 month ago class-wcml-payment-gateway-paypal-v2.php 1 month ago class-wcml-payment-gateway-paypal.php 1 month ago class-wcml-payment-gateway-stripe.php 1 month ago class-wcml-payment-gateway.php 1 month 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