PluginProbe
PayPlug for WooCommerce (Official) / 3.1.0
PayPlug for WooCommerce (Official) v3.1.0
3.1.0 3.0.0 2.18.0 1.0.17 1.0.18 1.0.19 1.0.20 1.0.21 1.0.22 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.1.0 1.10.0 1.10.1 1.2.1 1.2.10 1.2.11 1.2.2 1.2.3 1.2.4 1.2.5 All 102 releases
payplug / src / PayplugWoocommerce.php

PayplugWoocommerce.php in PayPlug for WooCommerce (Official) 3.1.0, at src/PayplugWoocommerce.php

238 lines 7.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Payplug\PayplugWoocommerce;
4
5 // Exit if accessed directly
6 if (!defined('ABSPATH')) {
7 exit;
8 }
9
10 use Payplug\PayplugWoocommerce\Admin\Ajax;
11 use Payplug\PayplugWoocommerce\Admin\Metabox;
12 use Payplug\PayplugWoocommerce\Admin\Notices;
13 use Payplug\PayplugWoocommerce\Admin\SetupCallback;
14 use Payplug\PayplugWoocommerce\Admin\WoocommerceActions;
15 use Payplug\PayplugWoocommerce\Front\Oney\OneyDisplay;
16 use Payplug\PayplugWoocommerce\Gateway\Blocks\PayplugAmex;
17 use Payplug\PayplugWoocommerce\Gateway\Blocks\PayplugApplePay;
18 use Payplug\PayplugWoocommerce\Gateway\Blocks\PayplugBancontact;
19 use Payplug\PayplugWoocommerce\Gateway\Blocks\PayplugBizum;
20 use Payplug\PayplugWoocommerce\Gateway\Blocks\PayplugCreditCard;
21 use Payplug\PayplugWoocommerce\Gateway\Blocks\PayplugIdeal;
22 use Payplug\PayplugWoocommerce\Gateway\Blocks\PayplugMybank;
23 use Payplug\PayplugWoocommerce\Gateway\Blocks\PayplugOney3x;
24 use Payplug\PayplugWoocommerce\Gateway\Blocks\PayplugOney3xWithoutFees;
25 use Payplug\PayplugWoocommerce\Gateway\Blocks\PayplugOney4x;
26 use Payplug\PayplugWoocommerce\Gateway\Blocks\PayplugOney4xWithoutFees;
27 use Payplug\PayplugWoocommerce\Gateway\Blocks\PayplugSatispay;
28 use Payplug\PayplugWoocommerce\Gateway\Blocks\PayplugScalapay;
29 use Payplug\PayplugWoocommerce\Gateway\Blocks\PayplugWero;
30 use Payplug\PayplugWoocommerce\Traits\GatewayGetter;
31 use Payplug\PayplugWoocommerce\Traits\ServiceGetter;
32
33 class PayplugWoocommerce
34 {
35 use ServiceGetter;
36 use GatewayGetter;
37
38 /**
39 * @var PayplugWoocommerce
40 */
41 private static $instance;
42
43 /**
44 * PayPlug admin notices
45 *
46 * @var Notices
47 */
48 public $notices;
49
50 /**
51 * PayPlug metabox
52 *
53 * @var Metabox
54 */
55 public $metabox;
56
57 /**
58 * Custom woocommerce actions
59 *
60 * @var WoocommerceActions
61 */
62 public $actions;
63
64 /**
65 * @var PayplugWoocommerceRequest
66 */
67 public $requests;
68
69 /**
70 * Ajax actions handler
71 *
72 * @var Ajax
73 */
74 public $ajax;
75
76 /**
77 * PayPlug Setup authentifications.
78 *
79 * @var SetupCallback
80 */
81 public $setup_callback;
82
83 /**
84 * Get the singleton instance.
85 *
86 * @return PayplugWoocommerce
87 */
88 public static function get_instance()
89 {
90 if (is_null(self::$instance)) {
91 self::$instance = new static();
92 }
93
94 return self::$instance;
95 }
96
97 /**
98 * Singleton instance can't be cloned.
99 */
100 private function __clone()
101 {
102 }
103
104 /**
105 * Singleton instance can't be serialized.
106 */
107 public function __wakeup(): void
108 {
109 }
110
111 /**
112 * PayplugWoocommerce constructor.
113 */
114 private function __construct()
115 {
116 // Bail early if WooCommerce is not activated
117 if (!defined('WC_VERSION')) {
118 add_action('admin_notices', function (): void {
119 ?>
120 <div id="message" class="notice notice-error">
121 <p><?php _e('PayPlug requires an active version of WooCommerce', 'payplug'); ?></p>
122 </div>
123 <?php
124 });
125
126 return;
127 }
128
129 $this->check_upgrade();
130
131 if (PayplugWoocommerceHelper::is_pre_30()) {
132 require_once PAYPLUG_GATEWAY_PLUGIN_DIR . '/woocommerce-compat.php';
133 }
134
135 $this->notices = new Notices();
136 $this->metabox = new Metabox();
137 $this->actions = new WoocommerceActions();
138 $this->requests = new PayplugWoocommerceRequest();
139 new Front\ApplePay();
140 $this->ajax = new Ajax();
141
142 $this->setup_callback = new SetupCallback();
143
144 if (PayplugWoocommerceHelper::show_oney_popup()) {
145 $this->animationHandlers();
146 }
147
148 add_action('woocommerce_payment_gateways', [$this, 'register_payplug_gateway']);
149
150 // Registers WooCommerce Blocks integration.
151 add_action('woocommerce_blocks_loaded', [$this, 'woocommerce_gateways_block_support']);
152
153 add_filter('plugin_action_links_' . PAYPLUG_GATEWAY_PLUGIN_BASENAME, [$this, 'plugin_action_links']);
154 }
155
156 /**
157 * Register PayPlug gateway.
158 *
159 * @param $methods
160 *
161 * @return array
162 */
163 public function register_payplug_gateway($methods)
164 {
165 $methods[] = __NAMESPACE__ . '\\Gateway\\PayplugCreditCard';
166 $methods[] = __NAMESPACE__ . '\\Gateway\\PayplugGatewayOney3x';
167 $methods[] = __NAMESPACE__ . '\\Gateway\\PayplugGatewayOney4x';
168 $methods[] = __NAMESPACE__ . '\\Gateway\\PayplugGatewayOney3xWithoutFees';
169 $methods[] = __NAMESPACE__ . '\\Gateway\\PayplugGatewayOney4xWithoutFees';
170 $methods[] = __NAMESPACE__ . '\\Gateway\\Bancontact';
171 $methods[] = __NAMESPACE__ . '\\Gateway\\AmericanExpress';
172 $methods[] = __NAMESPACE__ . '\\Gateway\\PPRO\\Mybank';
173 $methods[] = __NAMESPACE__ . '\\Gateway\\PPRO\\Ideal';
174 $methods[] = __NAMESPACE__ . '\\Gateway\\PPRO\\Satispay';
175 $methods[] = __NAMESPACE__ . '\\Gateway\\PPRO\\Wero';
176 $methods[] = __NAMESPACE__ . '\\Gateway\\PPRO\\Bizum';
177 $methods[] = __NAMESPACE__ . '\\Gateway\\PPRO\\Scalapay';
178
179 $methods[] = __NAMESPACE__ . '\\Controller\\ApplePay';
180
181 return $methods;
182 }
183
184 /**
185 * Add additional action links.
186 *
187 * @param array $links
188 *
189 * @return array
190 */
191 public function plugin_action_links($links = [])
192 {
193 $plugin_links = [
194 '<a href="' . esc_url(PayplugWoocommerceHelper::get_setting_link()) . '">' . esc_html__('Settings', 'payplug') . '</a>',
195 ];
196
197 return array_merge($plugin_links, $links);
198 }
199
200 public function animationHandlers(): void
201 {
202 new OneyDisplay();
203 }
204
205 /**
206 * Registers WooCommerce Blocks integration.
207 */
208 public function woocommerce_gateways_block_support(): void
209 {
210 if (class_exists('Automattic\WooCommerce\Blocks\Payments\Integrations\AbstractPaymentMethodType')) {
211 add_action(
212 'woocommerce_blocks_payment_method_type_registration',
213 function (\Automattic\WooCommerce\Blocks\Payments\PaymentMethodRegistry $payment_method_registry): void {
214 $payment_method_registry->register(new PayplugCreditCard());
215 $payment_method_registry->register(new PayplugBancontact());
216 $payment_method_registry->register(new PayplugSatispay());
217 $payment_method_registry->register(new PayplugAmex());
218 $payment_method_registry->register(new PayplugIdeal());
219 $payment_method_registry->register(new PayplugMybank());
220 $payment_method_registry->register(new PayplugWero());
221 $payment_method_registry->register(new PayplugBizum());
222 $payment_method_registry->register(new PayplugScalapay());
223 $payment_method_registry->register(new PayplugApplePay());
224 $payment_method_registry->register(new PayplugOney3x());
225 $payment_method_registry->register(new PayplugOney4x());
226 $payment_method_registry->register(new PayplugOney3xWithoutFees());
227 $payment_method_registry->register(new PayplugOney4xWithoutFees());
228 }
229 );
230 }
231 }
232
233 private function check_upgrade()
234 {
235 return $this->get_service('upgrade')->run_upgrade();
236 }
237 }
238