PluginProbe ʕ •ᴥ•ʔ
WooCommerce / 10.9.4
WooCommerce v10.9.4
10.9.4 10.9.3 10.9.2 10.9.1 10.9.0 10.9.0-rc.1 10.9.0-beta.2 10.9.0-beta.1 10.8.1 10.8.0 10.8.0-rc.1 10.8.0-beta.2 10.8.0-beta.1 7.8.0-beta.1 7.8.0-beta.2 7.8.0-rc.1 7.8.0-rc.2 7.8.1 7.8.2 7.8.3 7.8.4 7.9.0 7.9.0-beta.1 7.9.0-beta.2 7.9.0-rc.2 7.9.0-rc.3 7.9.1 7.9.2 8.0.0 8.0.0-beta.1 8.0.0-beta.2 8.0.0-rc.1 8.0.0-rc.2 8.0.1 8.0.2 8.0.3 8.0.4 8.0.5 8.1.0 8.1.0-beta.1 8.1.0-rc.1 8.1.0-rc.2 8.1.1 8.1.2 8.1.3 8.1.4 8.2.0 8.2.0-beta.1 8.2.0-rc.1 8.2.0-rc.2 8.2.1 8.2.2 8.2.3 8.2.4 8.2.5 8.3.0 8.3.0-beta.1 8.3.0-rc.1 8.3.0-rc.2 8.3.1 8.3.2 8.3.3 8.3.4 8.4.0 8.4.0-beta.1 8.4.0-rc.1 8.4.1 8.4.2 8.4.3 8.5.0 8.5.0-beta.1 8.5.0-rc.1 8.5.1 8.5.2 8.5.3 8.5.4 8.5.5 8.6.0 8.6.0-beta.1 8.6.0-rc.1 8.6.1 8.6.2 8.6.3 8.6.4 8.7.0 8.7.0-beta.1 8.7.0-beta.2 8.7.0-rc.1 8.7.1 8.7.2 8.7.3 8.8.0 8.8.0-beta.1 8.8.0-rc.1 8.8.1 8.8.2 8.8.3 8.8.4 8.8.5 8.8.6 8.8.7 8.9.0 8.9.0-beta.1 8.9.0-rc.1 8.9.1 8.9.2 8.9.3 8.9.4 8.9.5 9.0.0 9.0.0-beta.1 9.0.0-beta.2 9.0.0-rc.1 9.0.1 9.0.2 9.0.3 9.0.4 9.1.0 9.1.0-beta.1 9.1.0-rc.1 9.1.1 9.1.2 9.1.3 9.1.4 9.1.5 9.1.6 9.2.0 9.2.0-beta.1 9.2.0-rc.1 9.2.1 9.2.2 9.2.3 9.2.4 9.2.5 9.3.0 9.3.0-beta.1 9.3.0-rc.1 9.3.1 9.3.2 9.3.3 9.3.4 9.3.5 9.3.6 9.4.0 9.4.0-beta.1 9.4.0-beta.2 9.4.0-rc.1 9.4.0-rc.2 9.4.0-rc.3 9.4.0-rc.4 9.4.1 9.4.2 9.4.3 9.4.4 9.4.5 9.5.0 9.5.0-beta.1 9.5.0-beta.2 9.5.0-rc.1 9.5.1 9.5.2 9.5.3 9.5.4 9.6.0 9.6.0-beta.1 9.6.0-beta.2 9.6.0-rc.1 9.6.1 9.6.2 9.6.3 9.6.4 9.7.0 9.7.0-beta.1 9.7.0-rc.1 9.7.1 9.7.2 9.7.3 9.8.0 9.8.0-beta.1 9.8.0-rc.1 9.8.1 9.8.2 9.8.3 9.8.4 9.8.5 9.8.6 9.8.7 9.9.0 9.9.0-beta.1 9.9.0-rc.1 9.9.1 9.9.2 9.9.3 9.9.4 9.9.5 9.9.6 9.9.7 3.7.3 7.1.2 3.8.0 7.2.0 3.8.0-beta.1 7.2.0-beta.1 3.8.0-rc.1 7.2.0-beta.2 3.8.0-rc.2 7.2.0-rc.1 3.8.1 7.2.0-rc.2 3.8.2 7.2.1 3.8.3 7.2.2 3.9.0 7.2.3 3.9.0-beta.1 7.2.4 3.9.0-beta.2 7.3.0 3.9.0-rc.1 7.3.0-beta.1 3.9.0-rc.2 7.3.0-beta.2 3.9.0-rc.3 7.3.0-rc.1 3.9.0-rc.4 7.3.0-rc.2 3.9.1 7.3.1 3.9.2 7.4.0 3.9.3 7.4.0-beta.1 3.9.4 7.4.0-beta.2 3.9.5 7.4.0-rc.1 4.0.0 7.4.0-rc.2 4.0.0-beta.1 7.4.1 4.0.0-rc.1 7.4.2 4.0.0-rc.2 7.5.0 4.0.1 7.5.0-beta.1 4.0.2 7.5.0-beta.2 4.0.3 7.5.0-rc.1 4.0.4 7.5.1 4.1.0 7.5.2 4.1.0-beta.1 7.6.0 4.1.0-beta.2 7.6.0-beta.1 4.1.0-rc.1 7.6.0-beta.2 4.1.0-rc.2 7.6.0-rc.1 4.1.1 7.6.0-rc.2 4.1.2 7.6.0-rc.3 4.1.3 7.6.1 4.1.4 7.6.2 4.2.0 7.7.0 4.2.0-RC.1 7.7.0-beta.1 4.2.0-RC.2 7.7.0-beta.2 4.2.0-beta.1 7.7.0-rc.1 4.2.1 7.7.1 4.2.2 7.7.2 4.2.3 7.7.3 4.2.4 7.8.0 4.2.5 4.3.0 4.3.0-beta.1 4.3.0-rc.1 4.3.0-rc.2 4.3.0-rc.3 4.3.1 4.3.2 4.3.3 4.3.4 4.3.5 4.3.6 4.4.0 4.4.0-beta.1 4.4.0-rc.1 4.4.1 4.4.2 4.4.3 4.4.4 4.5.0 4.5.0-beta.1 4.5.0-rc.1 4.5.0-rc.3 4.5.1 4.5.2 4.5.3 4.5.4 4.5.5 4.6.0 4.6.0-beta.1 4.6.0-rc.1 4.6.1 4.6.2 4.6.3 4.6.4 4.6.5 4.7.0 4.7.0-beta.1 4.7.0-beta.2 4.7.0-rc.1 4.7.1 4.7.1-beta.1 4.7.2 4.7.3 4.7.4 4.8.0 4.8.0-beta.1 4.8.0-rc.1 4.8.0-rc.2 4.8.1 4.8.2 4.8.3 4.9.0 4.9.0-beta.1 4.9.0-rc.1 4.9.0-rc.2 4.9.1 4.9.2 4.9.3 4.9.4 4.9.5 5.0.0 5.0.0-beta.1 5.0.0-beta.2 5.0.0-rc.1 5.0.0-rc.2 5.0.0-rc.3 5.0.1 5.0.2 5.0.3 5.1.0 5.1.0-beta.1 5.1.0-rc.1 trunk 5.1.1 10.0.0 5.1.2 10.0.0-rc.1 5.1.3 10.0.0-rc.2 5.2.0 10.0.1 5.2.0-beta.1 10.0.2 5.2.0-rc.1 10.0.3 5.2.0-rc.2 10.0.4 5.2.1 10.0.5 5.2.2 10.0.6 5.2.3 10.1.0 5.2.4 10.1.0-rc.1 5.2.5 10.1.0-rc.2 5.3.0 10.1.0-rc.3 5.3.0-beta.1 10.1.0-rc.4 5.3.0-rc.1 10.1.1 5.3.0-rc.2 10.1.2 5.3.1 10.1.3 5.3.2 10.1.4 5.3.3 10.2.0 5.4.0 10.2.0-beta.1 5.4.0-beta.1 10.2.0-beta.2 5.4.0-rc.1 10.2.0-rc.1 5.4.1 10.2.1 5.4.2 10.2.2 5.4.3 10.2.3 5.4.4 10.2.4 5.4.5 10.3.0 5.5.0 10.3.0-beta.1 5.5.0-beta.1 10.3.0-beta.2 5.5.0-rc.1 10.3.0-rc.1 5.5.0-rc.2 10.3.0-rc.2 5.5.1 10.3.1 5.5.2 10.3.2 5.5.3 10.3.3 5.5.4 10.3.4 5.5.5 10.3.5 5.6.0 10.3.6 5.6.0-beta.1 10.3.7 5.6.0-rc.1 10.3.8 5.6.0-rc.2 10.4.0 5.6.1 10.4.0-beta.1 5.6.2 10.4.0-beta.2 5.6.3 10.4.0-rc.1 5.7.0 10.4.1 5.7.0-beta.1 10.4.2 5.7.0-rc.1 10.4.3 5.7.1 10.4.4 5.7.2 10.5.0 5.7.3 10.5.0-beta.1 5.8.0 10.5.0-beta.2 5.8.0-beta.1 10.5.0-rc.1 5.8.0-beta.2 10.5.0-rc.2 5.8.0-rc.1 10.5.0-rc.3 5.8.1 10.5.1 5.8.2 10.5.2 5.9.0 10.5.3 5.9.0-beta.1 10.6.0 5.9.0-rc.1 10.6.0-beta.1 5.9.0-rc.2 10.6.0-beta.2 5.9.1 10.6.0-rc.1 5.9.2 10.6.1 6.0.0 10.6.2 6.0.0-beta.1 10.7.0 6.0.0-rc.1 10.7.0-beta.1 6.0.1 10.7.0-beta.2 6.0.2 10.7.0-rc.1 6.1.0 3.0.0 6.1.0-beta.1 3.0.1 6.1.0-rc.1 3.0.2 6.1.0-rc.2 3.0.3 6.1.1 3.0.4 6.1.2 3.0.5 6.1.3 3.0.6 6.2.0 3.0.7 6.2.0-beta.1 3.0.8 6.2.0-rc.1 3.0.9 6.2.0-rc.2 3.1.0 6.2.1 3.1.1 6.2.2 3.1.2 6.2.3 3.2.0 6.3.0 3.2.1 6.3.0-beta.1 3.2.2 6.3.0-rc.1 3.2.3 6.3.0-rc.2 3.2.4 6.3.1 3.2.5 6.3.2 3.2.6 6.4.0 3.3.0 6.4.0-beta.1 3.3.1 6.4.0-rc.1 3.3.2 6.4.1 3.3.2-rc.1 6.4.2 3.3.3 6.5.0 3.3.4 6.5.0-beta.1 3.3.5 6.5.0-rc.1 3.3.6 6.5.0-rc.2 3.4.0 6.5.1 3.4.0-beta.1 6.5.2 3.4.0-rc.2 6.6.0 3.4.1 6.6.0-beta.1 3.4.2 6.6.0-rc.1 3.4.3 6.6.0-rc.2 3.4.4 6.6.1 3.4.5 6.6.2 3.4.6 6.7.0 3.4.7 6.7.0-beta.1 3.4.8 6.7.0-beta.2 3.5.0 6.7.0-rc.1 3.5.0-beta.1 6.7.1 3.5.0-rc.1 6.8.0 3.5.0-rc.2 6.8.0-beta.1 3.5.1 6.8.0-beta.2 3.5.10 6.8.0-rc.1 3.5.2 6.8.1 3.5.3 6.8.2 3.5.4 6.8.3 3.5.5 6.9.0 3.5.6 6.9.0-beta.1 3.5.7 6.9.0-beta.2 3.5.8 6.9.0-rc.1 3.5.9 6.9.1 3.6.0 6.9.2 3.6.0-beta.1 6.9.3 3.6.0-rc.1 6.9.4 3.6.0-rc.2 6.9.5 3.6.0-rc.3 7.0.0 3.6.1 7.0.0-beta.1 3.6.2 7.0.0-beta.2 3.6.3 7.0.0-beta.3 3.6.4 7.0.0-rc.1 3.6.5 7.0.0-rc.2 3.6.6 7.0.1 3.6.7 7.0.2 3.7.0 7.1.0 3.7.0-beta.1 7.1.0-beta.1 3.7.0-rc.1 7.1.0-beta.2 3.7.0-rc.2 7.1.0-rc.1 3.7.1 7.1.0-rc.2 3.7.2 7.1.1
woocommerce / src / Internal / Admin / Suggestions / PaymentsExtensionSuggestions.php
woocommerce / src / Internal / Admin / Suggestions Last commit date
Incentives 1 month ago PaymentsExtensionSuggestionIncentives.php 11 months ago PaymentsExtensionSuggestions.php 1 month ago
PaymentsExtensionSuggestions.php
4569 lines
1 <?php
2 declare( strict_types=1 );
3
4 namespace Automattic\WooCommerce\Internal\Admin\Suggestions;
5
6 defined( 'ABSPATH' ) || exit;
7
8 use Automattic\WooCommerce\Internal\Admin\Onboarding\OnboardingProfile;
9 use Automattic\WooCommerce\Internal\Admin\Settings\Payments;
10 use Automattic\WooCommerce\Internal\Admin\Settings\PaymentsProviders;
11 use Automattic\WooCommerce\Internal\Utilities\ArrayUtil;
12
13 /**
14 * Partner payments extension suggestions provider class.
15 *
16 * @internal
17 */
18 class PaymentsExtensionSuggestions {
19 /*
20 * The unique IDs for the payment extension suggestions.
21 *
22 * The ID is the primary extension identifier throughout the system.
23 */
24 const AIRWALLEX = 'airwallex';
25 const ANTOM = 'antom';
26 const MERCADO_PAGO = 'mercado_pago';
27 const MOLLIE = 'mollie';
28 const PAYFAST = 'payfast';
29 const PAYMOB = 'paymob';
30 const PAYPAL_FULL_STACK = 'paypal_full_stack';
31 const PAYPAL_WALLET = 'paypal_wallet';
32 const PAYONEER = 'payoneer';
33 const PAYSTACK = 'paystack';
34 const PAYTRAIL = 'paytrail';
35 const PAYU_INDIA = 'payu_india';
36 const RAZORPAY = 'razorpay';
37 const SQUARE = 'square';
38 const STRIPE = 'stripe';
39 const TILOPAY = 'tilopay';
40 const VIVA_WALLET = 'viva_wallet';
41 const WOOPAYMENTS = 'woopayments';
42 const AMAZON_PAY = 'amazon_pay';
43 const AFFIRM = 'affirm';
44 const AFTERPAY = 'afterpay';
45 const CLEARPAY = 'clearpay';
46 const KLARNA = 'klarna';
47 const KLARNA_CHECKOUT = 'klarna_checkout';
48 const HELIOPAY = 'heliopay';
49 const MONEI = 'monei';
50 const COINBASE = 'coinbase';
51 const BILLIE = 'billie';
52 const BOLT = 'bolt_checkout';
53 const AUTHORIZE_NET = 'authorize_net';
54 const DEPAY = 'depay';
55 const ELAVON = 'elavon';
56 const EWAY = 'eway';
57 const FORTISPAY = 'fortis';
58 const GOCARDLESS = 'gocardless';
59 const NEXI_CHECKOUT = 'nexi_checkout';
60 const PAYPAL_ZETTLE = 'paypal_zettle';
61 const RAPYD = 'rapyd';
62 const PAYPAL_BRAINTREE = 'paypal_braintree';
63 const VISA = 'visa_as';
64 const NGENIUS = 'ngenius';
65 const EVERGREEN = 'evergreen';
66 const MYPOS = 'mypos';
67
68 /*
69 * The extension types.
70 *
71 * The type is related to the extension's underlying payments methods scope and type.
72 */
73 const TYPE_PSP = 'psp'; // Payment Service Provider.
74 const TYPE_APM = 'apm'; // Alternative Payment Methods.
75 const TYPE_EXPRESS_CHECKOUT = 'express_checkout';
76 const TYPE_BNPL = 'bnpl'; // Buy now, pay later.
77 const TYPE_CRYPTO = 'crypto';
78
79 /*
80 * The extension plugin types.
81 *
82 * This will inform how we handle the extension installation and activation.
83 */
84 const PLUGIN_TYPE_WPORG = 'wporg';
85
86 /*
87 * Extension tags.
88 *
89 * These are used to categorize the extensions and provide additional information to the system.
90 * Some tags may carry special meaning and will be used to influence the suggestions' behavior.
91 */
92 const TAG_PREFERRED = 'preferred';
93 const TAG_PREFERRED_OFFLINE = 'preferred_offline'; // For extensions that are preferred for offline payments.
94 const TAG_MADE_IN_WOO = 'made_in_woo'; // For extensions developed by Woo.
95 const TAG_RECOMMENDED = 'recommended'; // For extensions that should be further emphasized.
96
97 /**
98 * The memoized extensions base details to avoid computing them multiple times during a request.
99 *
100 * @var array|null
101 */
102 private ?array $extensions_base_details_memo = null;
103
104 /**
105 * The payment extension list for each country.
106 *
107 * The order is important as it will be used to determine the priority of the suggestions.
108 *
109 * Each entry is keyed by the two-letter country code and consists of a list of payment extensions.
110 * Each payment extension can be identified by its ID (the shorthand version) or by an array with the following format:
111 * array(
112 * 'id' => 'woopayments', // This is required.
113 * '_type' => 'provider', // Overrides the '_type' key.
114 * // Special entry that instructs the system to append the given items to a list-type entry.
115 * // If the original entry is not a list, we will throw an exception.
116 * // If the original entry does not exist, we will create it.
117 * // This is useful when you want to add tags to a suggestion's default list of tags.
118 * '_append' => array(
119 * 'tags' => array( self::TAG_PREFERRED ),
120 * ),
121 * // Special entry that instructs the system to remove the given items from a list-type entry.
122 * // If the original entry is not a list, we will throw an exception.
123 * // If the original entry does not exist, we will ignore the instruction.
124 * // This is useful when you want to remove tags from a suggestion's default list of tags.
125 * '_remove' => array(
126 * 'tags' => array( self::TAG_PREFERRED ),
127 * ),
128 * // Special entry that instructs the system to merge a list of items based on their _type key value,
129 * // overriding the original entry with the provided one.
130 * // If the original entry is not a list of arrays each with a _type entry, we will throw an exception.
131 * // If the provided entry is not a list of arrays each with a _type entry, we will throw an exception.
132 * // If the original entry does not exist, we will create it.
133 * // This is useful when you want to override certain default details for a particular country.
134 * '_merge_on_type' => array(
135 * 'links' => array(
136 * array(
137 * _type' => self::LINK_TYPE_PRICING,
138 * 'url' => 'https://www.example.com/pricing',
139 * ),
140 * ),
141 * ),
142 * )
143 * Use the extended format when you need to override the extension's default details for a particular country.
144 *
145 * @see plugins/woocommerce/i18n/countries.php for the list of supported country codes and their names.
146 *
147 * @var array
148 */
149 private array $country_extensions = array(
150 // North America.
151 'CA' => array(
152 self::WOOPAYMENTS,
153 self::PAYPAL_FULL_STACK,
154 self::STRIPE,
155 self::SQUARE => array(
156 '_merge_on_type' => array(
157 'links' => array(
158 array(
159 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
160 'url' => 'https://squareup.com/ca/en/pricing',
161 ),
162 array(
163 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
164 'url' => 'https://squareup.com/ca/en/legal/general/ua',
165 ),
166 ),
167 ),
168 ),
169 self::VISA,
170 self::GOCARDLESS => array(
171 '_merge_on_type' => array(
172 'links' => array(
173 array(
174 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
175 'url' => 'https://gocardless.com/en-ca/pricing/',
176 ),
177 ),
178 ),
179 ),
180 self::PAYPAL_WALLET,
181 self::AFFIRM,
182 self::AFTERPAY,
183 self::KLARNA => array(
184 '_merge_on_type' => array(
185 'links' => array(
186 array(
187 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
188 'url' => 'https://www.klarna.com/ca/business/',
189 ),
190 array(
191 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
192 'url' => 'https://www.klarna.com/ca/legal/',
193 ),
194 ),
195 ),
196 ),
197 ),
198 'PM' => array(
199 self::VISA => array(
200 '_append' => array(
201 'tags' => array( self::TAG_PREFERRED ),
202 ),
203 ),
204 ),
205 'US' => array(
206 self::WOOPAYMENTS => array(
207 '_append' => array(
208 'tags' => array( 'woopay_eligible' ), // Add a special tag that will be used to determine if the merchant is eligible for WooPay.
209 ),
210 ),
211 self::PAYPAL_FULL_STACK,
212 self::STRIPE,
213 self::SQUARE, // Use the default details.
214 self::VISA,
215 self::AIRWALLEX,
216 self::PAYPAL_WALLET,
217 self::AMAZON_PAY,
218 self::AFFIRM,
219 self::AFTERPAY,
220 self::KLARNA, // Use the default details.
221 ),
222 'UM' => array(
223 self::VISA => array(
224 '_append' => array(
225 'tags' => array( self::TAG_PREFERRED ),
226 ),
227 ),
228 ),
229
230 // UK + Europe.
231 'GB' => array(
232 self::WOOPAYMENTS,
233 self::PAYPAL_FULL_STACK,
234 self::STRIPE,
235 self::SQUARE => array(
236 '_merge_on_type' => array(
237 'links' => array(
238 array(
239 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
240 'url' => 'https://squareup.com/gb/en/pricing',
241 ),
242 array(
243 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
244 'url' => 'https://squareup.com/gb/en/legal/general/ua',
245 ),
246 ),
247 ),
248 ),
249 self::MOLLIE,
250 self::VISA,
251 self::AIRWALLEX,
252 self::VIVA_WALLET,
253 self::KLARNA_CHECKOUT => array(
254 '_merge_on_type' => array(
255 'links' => array(
256 array(
257 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
258 'url' => 'https://www.klarna.com/uk/business/payment-methods/',
259 ),
260 array(
261 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
262 'url' => 'https://www.klarna.com/uk/terms-and-conditions/',
263 ),
264 ),
265 ),
266 ),
267 self::PAYPAL_WALLET,
268 self::AMAZON_PAY,
269 self::AFFIRM => array(
270 '_merge_on_type' => array(
271 'links' => array(
272 array(
273 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
274 'url' => 'https://www.affirm.com/en-gb/business',
275 ),
276 array(
277 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
278 'url' => 'https://www.affirm.com/en-gb/terms',
279 ),
280 ),
281 ),
282 ),
283 self::CLEARPAY,
284 self::KLARNA => array(
285 '_merge_on_type' => array(
286 'links' => array(
287 array(
288 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
289 'url' => 'https://www.klarna.com/uk/business/payment-methods/',
290 ),
291 array(
292 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
293 'url' => 'https://www.klarna.com/uk/terms-and-conditions/',
294 ),
295 ),
296 ),
297 ),
298 ),
299 'AX' => array(
300 self::VISA => array(
301 '_append' => array(
302 'tags' => array( self::TAG_PREFERRED ),
303 ),
304 ),
305 ),
306 'AL' => array(
307 self::VISA => array(
308 '_append' => array(
309 'tags' => array( self::TAG_PREFERRED ),
310 ),
311 ),
312 self::PAYPAL_WALLET => array(
313 '_append' => array(
314 'tags' => array( self::TAG_PREFERRED ),
315 ),
316 ),
317 ),
318 'AD' => array(
319 self::MONEI,
320 self::PAYPAL_WALLET => array(
321 '_append' => array(
322 'tags' => array( self::TAG_PREFERRED ),
323 ),
324 ),
325 self::VISA,
326 ),
327 'AM' => array(
328 self::VISA => array(
329 '_append' => array(
330 'tags' => array( self::TAG_PREFERRED ),
331 ),
332 ),
333 ),
334 'AT' => array(
335 self::WOOPAYMENTS,
336 self::PAYPAL_FULL_STACK,
337 self::STRIPE,
338 self::MOLLIE,
339 self::VISA,
340 self::AIRWALLEX,
341 self::VIVA_WALLET,
342 self::GOCARDLESS => array(
343 '_merge_on_type' => array(
344 'links' => array(
345 array(
346 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
347 'url' => 'https://gocardless.com/en-ie/pricing/',
348 ),
349 ),
350 ),
351 ),
352 self::KLARNA_CHECKOUT => array(
353 '_merge_on_type' => array(
354 'links' => array(
355 array(
356 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
357 'url' => 'https://www.klarna.com/at/verkaeufer/',
358 ),
359 array(
360 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
361 'url' => 'https://www.klarna.com/at/agb/',
362 ),
363 ),
364 ),
365 ),
366 self::NEXI_CHECKOUT,
367 self::PAYPAL_WALLET,
368 self::AMAZON_PAY,
369 self::KLARNA => array(
370 '_merge_on_type' => array(
371 'links' => array(
372 array(
373 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
374 'url' => 'https://www.klarna.com/at/verkaeufer/',
375 ),
376 array(
377 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
378 'url' => 'https://www.klarna.com/at/agb/',
379 ),
380 ),
381 ),
382 ),
383 ),
384 'BY' => array(
385 self::VISA => array(
386 '_append' => array(
387 'tags' => array( self::TAG_PREFERRED ),
388 ),
389 ),
390 ),
391 'BE' => array(
392 self::WOOPAYMENTS,
393 self::PAYPAL_FULL_STACK,
394 self::STRIPE,
395 self::MOLLIE,
396 self::VISA,
397 self::AIRWALLEX,
398 self::VIVA_WALLET,
399 self::GOCARDLESS => array(
400 '_merge_on_type' => array(
401 'links' => array(
402 array(
403 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
404 'url' => 'https://gocardless.com/en-ie/pricing/',
405 ),
406 ),
407 ),
408 ),
409 self::PAYPAL_WALLET,
410 self::AMAZON_PAY,
411 self::KLARNA => array(
412 '_merge_on_type' => array(
413 'links' => array(
414 array(
415 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
416 'url' => 'https://www.klarna.com/be/fr/entreprise/',
417 ),
418 array(
419 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
420 'url' => 'https://www.klarna.com/be/fr/conditions-generales/',
421 ),
422 ),
423 ),
424 ),
425 ),
426 'BA' => array(
427 self::VISA => array(
428 '_append' => array(
429 'tags' => array( self::TAG_PREFERRED ),
430 ),
431 ),
432 self::PAYPAL_WALLET => array(
433 '_append' => array(
434 'tags' => array( self::TAG_PREFERRED ),
435 ),
436 ),
437 ),
438 'BV' => array(
439 self::VISA => array(
440 '_append' => array(
441 'tags' => array( self::TAG_PREFERRED ),
442 ),
443 ),
444 ),
445 'BG' => array(
446 self::WOOPAYMENTS,
447 self::PAYPAL_FULL_STACK,
448 self::STRIPE,
449 self::MOLLIE,
450 self::VISA,
451 self::VIVA_WALLET,
452 self::PAYPAL_WALLET,
453 ),
454 'HR' => array(
455 self::WOOPAYMENTS,
456 self::PAYPAL_FULL_STACK,
457 self::STRIPE,
458 self::MOLLIE,
459 self::VISA,
460 self::VIVA_WALLET,
461 self::GOCARDLESS => array(
462 '_merge_on_type' => array(
463 'links' => array(
464 array(
465 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
466 'url' => 'https://gocardless.com/en-ie/pricing/',
467 ),
468 ),
469 ),
470 ),
471 self::PAYPAL_WALLET,
472 ),
473 'CY' => array(
474 self::WOOPAYMENTS,
475 self::PAYPAL_FULL_STACK,
476 self::STRIPE,
477 self::MOLLIE,
478 self::VISA,
479 self::VIVA_WALLET,
480 self::GOCARDLESS => array(
481 '_merge_on_type' => array(
482 'links' => array(
483 array(
484 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
485 'url' => 'https://gocardless.com/en-ie/pricing/',
486 ),
487 ),
488 ),
489 ),
490 self::PAYPAL_WALLET,
491 self::AMAZON_PAY,
492 ),
493 'CZ' => array(
494 self::WOOPAYMENTS,
495 self::PAYPAL_FULL_STACK,
496 self::STRIPE,
497 self::MOLLIE,
498 self::VISA,
499 self::VIVA_WALLET,
500 self::PAYPAL_WALLET,
501 self::KLARNA => array(
502 '_merge_on_type' => array(
503 'links' => array(
504 array(
505 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
506 'url' => 'https://www.klarna.com/cz/firmy/',
507 ),
508 array(
509 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
510 'url' => 'https://www.klarna.com/cz/obchodni-podminky/',
511 ),
512 ),
513 ),
514 ),
515 ),
516 'DK' => array(
517 self::WOOPAYMENTS,
518 self::PAYPAL_FULL_STACK,
519 self::STRIPE,
520 self::MOLLIE,
521 self::VISA,
522 self::VIVA_WALLET,
523 self::GOCARDLESS => array(
524 '_merge_on_type' => array(
525 'links' => array(
526 array(
527 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
528 'url' => 'https://gocardless.com/da-dk/priser/',
529 ),
530 ),
531 ),
532 ),
533 self::KLARNA_CHECKOUT => array(
534 '_merge_on_type' => array(
535 'links' => array(
536 array(
537 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
538 'url' => 'https://www.klarna.com/dk/erhverv/',
539 ),
540 array(
541 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
542 'url' => 'https://www.klarna.com/dk/vilkar/',
543 ),
544 ),
545 ),
546 ),
547 self::NEXI_CHECKOUT,
548 self::PAYPAL_WALLET,
549 self::AMAZON_PAY,
550 self::KLARNA => array(
551 '_merge_on_type' => array(
552 'links' => array(
553 array(
554 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
555 'url' => 'https://www.klarna.com/dk/erhverv/',
556 ),
557 array(
558 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
559 'url' => 'https://www.klarna.com/dk/vilkar/',
560 ),
561 ),
562 ),
563 ),
564 ),
565 'EE' => array(
566 self::WOOPAYMENTS,
567 self::PAYPAL_FULL_STACK,
568 self::STRIPE,
569 self::MOLLIE,
570 self::VISA,
571 self::GOCARDLESS => array(
572 '_merge_on_type' => array(
573 'links' => array(
574 array(
575 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
576 'url' => 'https://gocardless.com/en-ie/pricing/',
577 ),
578 ),
579 ),
580 ),
581 self::PAYPAL_WALLET,
582 ),
583 'FI' => array(
584 self::WOOPAYMENTS,
585 self::PAYPAL_FULL_STACK,
586 self::STRIPE,
587 self::MOLLIE,
588 self::VISA,
589 self::VIVA_WALLET,
590 self::GOCARDLESS => array(
591 '_merge_on_type' => array(
592 'links' => array(
593 array(
594 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
595 'url' => 'https://gocardless.com/en-ie/pricing/',
596 ),
597 ),
598 ),
599 ),
600 self::KLARNA_CHECKOUT => array(
601 '_merge_on_type' => array(
602 'links' => array(
603 array(
604 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
605 'url' => 'https://www.klarna.com/fi/yritys/',
606 ),
607 array(
608 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
609 'url' => 'https://www.klarna.com/fi/ehdot/',
610 ),
611 ),
612 ),
613 ),
614 self::PAYTRAIL,
615 self::PAYPAL_WALLET,
616 self::KLARNA => array(
617 '_merge_on_type' => array(
618 'links' => array(
619 array(
620 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
621 'url' => 'https://www.klarna.com/fi/yritys/',
622 ),
623 array(
624 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
625 'url' => 'https://www.klarna.com/fi/ehdot/',
626 ),
627 ),
628 ),
629 ),
630 ),
631 'FO' => array(
632 self::VISA => array(
633 '_append' => array(
634 'tags' => array( self::TAG_PREFERRED ),
635 ),
636 ),
637 self::PAYPAL_FULL_STACK,
638 self::PAYPAL_WALLET,
639 ),
640 'FR' => array(
641 self::WOOPAYMENTS,
642 self::PAYPAL_FULL_STACK,
643 self::STRIPE,
644 self::SQUARE => array(
645 '_merge_on_type' => array(
646 'links' => array(
647 array(
648 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
649 'url' => 'https://squareup.com/fr/fr/pricing',
650 ),
651 array(
652 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
653 'url' => 'https://squareup.com/fr/fr/legal/general/ua',
654 ),
655 ),
656 ),
657 ),
658 self::MOLLIE,
659 self::VISA,
660 self::AIRWALLEX,
661 self::VIVA_WALLET,
662 self::GOCARDLESS => array(
663 '_merge_on_type' => array(
664 'links' => array(
665 array(
666 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
667 'url' => 'https://gocardless.com/fr-fr/tarifs/',
668 ),
669 ),
670 ),
671 ),
672 self::PAYPAL_WALLET,
673 self::AMAZON_PAY,
674 self::KLARNA => array(
675 '_merge_on_type' => array(
676 'links' => array(
677 array(
678 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
679 'url' => 'https://www.klarna.com/fr/entreprise/',
680 ),
681 array(
682 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
683 'url' => 'https://www.klarna.com/fr/legal/',
684 ),
685 ),
686 ),
687 ),
688 ),
689 'PF' => array(
690 self::VISA => array(
691 '_append' => array(
692 'tags' => array( self::TAG_PREFERRED ),
693 ),
694 ),
695 self::PAYPAL_WALLET => array(
696 '_append' => array(
697 'tags' => array( self::TAG_PREFERRED ),
698 ),
699 ),
700 ),
701 'GI' => array(
702 self::STRIPE => array(
703 '_append' => array(
704 'tags' => array( self::TAG_PREFERRED ),
705 ),
706 ),
707 self::PAYPAL_FULL_STACK,
708 self::VISA,
709 self::PAYPAL_WALLET,
710 ),
711 'DE' => array(
712 self::WOOPAYMENTS,
713 self::PAYPAL_FULL_STACK,
714 self::STRIPE,
715 self::MOLLIE,
716 self::VISA,
717 self::AIRWALLEX,
718 self::VIVA_WALLET,
719 self::GOCARDLESS => array(
720 '_merge_on_type' => array(
721 'links' => array(
722 array(
723 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
724 'url' => 'https://gocardless.com/de-de/preise/',
725 ),
726 ),
727 ),
728 ),
729 self::KLARNA_CHECKOUT => array(
730 '_merge_on_type' => array(
731 'links' => array(
732 array(
733 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
734 'url' => 'https://www.klarna.com/de/verkaeufer/',
735 ),
736 array(
737 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
738 'url' => 'https://www.klarna.com/de/agb/',
739 ),
740 ),
741 ),
742 ),
743 self::NEXI_CHECKOUT,
744 self::PAYPAL_WALLET,
745 self::AMAZON_PAY,
746 self::KLARNA => array(
747 '_merge_on_type' => array(
748 'links' => array(
749 array(
750 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
751 'url' => 'https://www.klarna.com/de/verkaeufer/',
752 ),
753 array(
754 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
755 'url' => 'https://www.klarna.com/de/agb/',
756 ),
757 ),
758 ),
759 ),
760 ),
761 'GR' => array(
762 self::WOOPAYMENTS,
763 self::PAYPAL_FULL_STACK,
764 self::STRIPE,
765 self::MOLLIE,
766 self::VISA,
767 self::VIVA_WALLET,
768 self::PAYPAL_WALLET,
769 self::KLARNA => array(
770 '_merge_on_type' => array(
771 'links' => array(
772 array(
773 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
774 'url' => 'https://www.klarna.com/gr/business/',
775 ),
776 array(
777 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
778 'url' => 'https://www.klarna.com/gr/oroi-kai-proypotheseis/',
779 ),
780 ),
781 ),
782 ),
783 ),
784 'GL' => array(
785 self::VISA => array(
786 '_append' => array(
787 'tags' => array( self::TAG_PREFERRED ),
788 ),
789 ),
790 self::PAYPAL_FULL_STACK,
791 self::PAYPAL_WALLET,
792 ),
793 'GG' => array(
794 self::VISA => array(
795 '_append' => array(
796 'tags' => array( self::TAG_PREFERRED ),
797 ),
798 ),
799 ),
800 'VA' => array(
801 self::VISA => array(
802 '_append' => array(
803 'tags' => array( self::TAG_PREFERRED ),
804 ),
805 ),
806 ),
807 'HU' => array(
808 self::WOOPAYMENTS,
809 self::PAYPAL_FULL_STACK,
810 self::STRIPE,
811 self::MOLLIE,
812 self::VISA,
813 self::VIVA_WALLET,
814 self::PAYPAL_WALLET,
815 self::AMAZON_PAY,
816 self::KLARNA => array(
817 '_merge_on_type' => array(
818 'links' => array(
819 array(
820 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
821 'url' => 'https://www.klarna.com/hu/uzlet/',
822 ),
823 array(
824 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
825 'url' => 'https://www.klarna.com/hu/jogi-informaciok/',
826 ),
827 ),
828 ),
829 ),
830 ),
831 'IS' => array(
832 self::MOLLIE => array(
833 '_append' => array(
834 'tags' => array( self::TAG_PREFERRED ),
835 ),
836 ),
837 self::PAYPAL_WALLET => array(
838 '_append' => array(
839 'tags' => array( self::TAG_PREFERRED ),
840 ),
841 ),
842 self::VISA,
843 ),
844 'IE' => array(
845 self::WOOPAYMENTS,
846 self::PAYPAL_FULL_STACK,
847 self::STRIPE,
848 self::SQUARE => array(
849 '_merge_on_type' => array(
850 'links' => array(
851 array(
852 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
853 'url' => 'https://squareup.com/ie/en/pricing',
854 ),
855 array(
856 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
857 'url' => 'https://squareup.com/ie/en/legal/general/ua',
858 ),
859 ),
860 ),
861 ),
862 self::MOLLIE,
863 self::VISA,
864 self::AIRWALLEX,
865 self::VIVA_WALLET,
866 self::PAYPAL_WALLET,
867 self::AMAZON_PAY,
868 self::KLARNA => array(
869 '_merge_on_type' => array(
870 'links' => array(
871 array(
872 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
873 'url' => 'https://www.klarna.com/ie/business/',
874 ),
875 array(
876 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
877 'url' => 'https://www.klarna.com/ie/terms-and-conditions/',
878 ),
879 ),
880 ),
881 ),
882 ),
883 'IM' => array(
884 self::VISA => array(
885 '_append' => array(
886 'tags' => array( self::TAG_PREFERRED ),
887 ),
888 ),
889 ),
890 'IT' => array(
891 self::WOOPAYMENTS,
892 self::PAYPAL_FULL_STACK,
893 self::STRIPE,
894 self::MOLLIE,
895 self::VISA,
896 self::AIRWALLEX,
897 self::VIVA_WALLET,
898 self::PAYPAL_WALLET,
899 self::AMAZON_PAY,
900 self::KLARNA => array(
901 '_merge_on_type' => array(
902 'links' => array(
903 array(
904 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
905 'url' => 'https://www.klarna.com/it/aziende/',
906 ),
907 array(
908 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
909 'url' => 'https://www.klarna.com/it/legal/',
910 ),
911 ),
912 ),
913 ),
914 ),
915 'JE' => array(
916 self::VISA => array(
917 '_append' => array(
918 'tags' => array( self::TAG_PREFERRED ),
919 ),
920 ),
921 ),
922 'LV' => array(
923 self::WOOPAYMENTS,
924 self::PAYPAL_FULL_STACK,
925 self::STRIPE,
926 self::MOLLIE,
927 self::VISA,
928 self::PAYPAL_WALLET,
929 ),
930 'LI' => array(
931 self::STRIPE => array(
932 '_append' => array(
933 'tags' => array( self::TAG_PREFERRED ),
934 ),
935 ),
936 self::PAYPAL_FULL_STACK,
937 self::MOLLIE,
938 self::VISA,
939 self::PAYPAL_WALLET,
940 ),
941 'LT' => array(
942 self::WOOPAYMENTS,
943 self::PAYPAL_FULL_STACK,
944 self::STRIPE,
945 self::MOLLIE,
946 self::VISA,
947 self::AIRWALLEX,
948 self::PAYPAL_WALLET,
949 ),
950 'LU' => array(
951 self::WOOPAYMENTS,
952 self::PAYPAL_FULL_STACK,
953 self::STRIPE,
954 self::MOLLIE,
955 self::VISA,
956 self::VIVA_WALLET,
957 self::PAYPAL_WALLET,
958 self::AMAZON_PAY,
959 ),
960 'MT' => array(
961 self::WOOPAYMENTS,
962 self::PAYPAL_FULL_STACK,
963 self::STRIPE,
964 self::MOLLIE,
965 self::VISA,
966 self::VIVA_WALLET,
967 self::PAYPAL_WALLET,
968 ),
969 'MD' => array(
970 self::VISA => array(
971 '_append' => array(
972 'tags' => array( self::TAG_PREFERRED ),
973 ),
974 ),
975 self::PAYPAL_FULL_STACK,
976 self::PAYPAL_WALLET,
977 ),
978 'MC' => array(
979 self::VISA => array(
980 '_append' => array(
981 'tags' => array( self::TAG_PREFERRED ),
982 ),
983 ),
984 self::PAYPAL_WALLET => array(
985 '_append' => array(
986 'tags' => array( self::TAG_PREFERRED ),
987 ),
988 ),
989 ),
990 'ME' => array(
991 self::VISA => array(
992 '_append' => array(
993 'tags' => array( self::TAG_PREFERRED ),
994 ),
995 ),
996 ),
997 'NL' => array(
998 self::WOOPAYMENTS,
999 self::PAYPAL_FULL_STACK,
1000 self::STRIPE,
1001 self::MOLLIE,
1002 self::VISA,
1003 self::VIVA_WALLET,
1004 self::KLARNA_CHECKOUT => array(
1005 '_merge_on_type' => array(
1006 'links' => array(
1007 array(
1008 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
1009 'url' => 'https://www.klarna.com/nl/zakelijk/',
1010 ),
1011 array(
1012 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
1013 'url' => 'https://www.klarna.com/nl/voorwaarden/',
1014 ),
1015 ),
1016 ),
1017 ),
1018 self::PAYPAL_WALLET,
1019 self::AMAZON_PAY,
1020 self::KLARNA => array(
1021 '_merge_on_type' => array(
1022 'links' => array(
1023 array(
1024 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
1025 'url' => 'https://www.klarna.com/nl/zakelijk/',
1026 ),
1027 array(
1028 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
1029 'url' => 'https://www.klarna.com/nl/voorwaarden/',
1030 ),
1031 ),
1032 ),
1033 ),
1034 ),
1035 'MK' => array(
1036 self::VISA => array(
1037 '_append' => array(
1038 'tags' => array( self::TAG_PREFERRED ),
1039 ),
1040 ),
1041 ),
1042 'NO' => array(
1043 self::WOOPAYMENTS,
1044 self::PAYPAL_FULL_STACK,
1045 self::STRIPE,
1046 self::MOLLIE,
1047 self::VISA,
1048 self::KLARNA_CHECKOUT => array(
1049 '_merge_on_type' => array(
1050 'links' => array(
1051 array(
1052 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
1053 'url' => 'https://www.klarna.com/no/bedrift/',
1054 ),
1055 array(
1056 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
1057 'url' => 'https://www.klarna.com/no/vilkar/',
1058 ),
1059 ),
1060 ),
1061 ),
1062 self::NEXI_CHECKOUT,
1063 self::PAYPAL_WALLET,
1064 self::KLARNA => array(
1065 '_merge_on_type' => array(
1066 'links' => array(
1067 array(
1068 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
1069 'url' => 'https://www.klarna.com/no/bedrift/',
1070 ),
1071 array(
1072 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
1073 'url' => 'https://www.klarna.com/no/vilkar/',
1074 ),
1075 ),
1076 ),
1077 ),
1078 ),
1079 'PL' => array(
1080 self::WOOPAYMENTS,
1081 self::PAYPAL_FULL_STACK,
1082 self::STRIPE,
1083 self::MOLLIE,
1084 self::VISA,
1085 self::AIRWALLEX,
1086 self::VIVA_WALLET,
1087 self::PAYPAL_WALLET,
1088 self::KLARNA => array(
1089 '_merge_on_type' => array(
1090 'links' => array(
1091 array(
1092 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
1093 'url' => 'https://www.klarna.com/pl/biznes/',
1094 ),
1095 array(
1096 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
1097 'url' => 'https://www.klarna.com/pl/zasady-i-warunki/',
1098 ),
1099 ),
1100 ),
1101 ),
1102 ),
1103 'PT' => array(
1104 self::WOOPAYMENTS,
1105 self::PAYPAL_FULL_STACK,
1106 self::STRIPE,
1107 self::MOLLIE,
1108 self::VISA,
1109 self::AIRWALLEX,
1110 self::VIVA_WALLET,
1111 self::PAYPAL_WALLET,
1112 self::AMAZON_PAY,
1113 self::KLARNA => array(
1114 '_merge_on_type' => array(
1115 'links' => array(
1116 array(
1117 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
1118 'url' => 'https://www.klarna.com/pt/empresa/',
1119 ),
1120 array(
1121 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
1122 'url' => 'https://www.klarna.com/pt/termos-e-condicoes/',
1123 ),
1124 ),
1125 ),
1126 ),
1127 ),
1128 'RO' => array(
1129 self::WOOPAYMENTS,
1130 self::PAYPAL_FULL_STACK,
1131 self::STRIPE,
1132 self::MOLLIE,
1133 self::VISA,
1134 self::VIVA_WALLET,
1135 self::PAYPAL_WALLET,
1136 self::KLARNA => array(
1137 '_merge_on_type' => array(
1138 'links' => array(
1139 array(
1140 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
1141 'url' => 'https://www.klarna.com/ro/companii/',
1142 ),
1143 array(
1144 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
1145 'url' => 'https://www.klarna.com/ro/aspecte-juridice/',
1146 ),
1147 ),
1148 ),
1149 ),
1150 ),
1151 'RU' => array(
1152 self::VISA => array(
1153 '_append' => array(
1154 'tags' => array( self::TAG_PREFERRED ),
1155 ),
1156 ),
1157 ),
1158 'SM' => array(
1159 self::VISA => array(
1160 '_append' => array(
1161 'tags' => array( self::TAG_PREFERRED ),
1162 ),
1163 ),
1164 self::PAYPAL_FULL_STACK,
1165 self::PAYPAL_WALLET,
1166 ),
1167 'RS' => array(
1168 self::VISA => array(
1169 '_append' => array(
1170 'tags' => array( self::TAG_PREFERRED ),
1171 ),
1172 ),
1173 self::PAYPAL_WALLET => array(
1174 '_append' => array(
1175 'tags' => array( self::TAG_PREFERRED ),
1176 ),
1177 ),
1178 ),
1179 'SK' => array(
1180 self::WOOPAYMENTS,
1181 self::PAYPAL_FULL_STACK,
1182 self::STRIPE,
1183 self::MOLLIE,
1184 self::VISA,
1185 self::PAYPAL_WALLET,
1186 self::KLARNA => array(
1187 '_merge_on_type' => array(
1188 'links' => array(
1189 array(
1190 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
1191 'url' => 'https://www.klarna.com/sk/',
1192 ),
1193 array(
1194 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
1195 'url' => 'https://www.klarna.com/sk/zmluvne-podmienky/',
1196 ),
1197 ),
1198 ),
1199 ),
1200 ),
1201 'SI' => array(
1202 self::WOOPAYMENTS,
1203 self::PAYPAL_FULL_STACK,
1204 self::STRIPE,
1205 self::MOLLIE,
1206 self::VISA,
1207 self::PAYPAL_WALLET,
1208 ),
1209 'ES' => array(
1210 self::WOOPAYMENTS,
1211 self::PAYPAL_FULL_STACK,
1212 self::STRIPE,
1213 self::SQUARE => array(
1214 '_merge_on_type' => array(
1215 'links' => array(
1216 array(
1217 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
1218 'url' => 'https://squareup.com/es/es/pricing',
1219 ),
1220 array(
1221 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
1222 'url' => 'https://squareup.com/es/es/legal/general/ua',
1223 ),
1224 ),
1225 ),
1226 ),
1227 self::MOLLIE,
1228 self::VISA,
1229 self::MONEI,
1230 self::AIRWALLEX,
1231 self::VIVA_WALLET,
1232 self::PAYPAL_WALLET,
1233 self::AMAZON_PAY,
1234 self::KLARNA => array(
1235 '_merge_on_type' => array(
1236 'links' => array(
1237 array(
1238 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
1239 'url' => 'https://www.klarna.com/es/empresa/',
1240 ),
1241 array(
1242 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
1243 'url' => 'https://www.klarna.com/es/legal/',
1244 ),
1245 ),
1246 ),
1247 ),
1248 ),
1249 'SJ' => array(
1250 self::VISA => array(
1251 '_append' => array(
1252 'tags' => array( self::TAG_PREFERRED ),
1253 ),
1254 ),
1255 ),
1256 'SE' => array(
1257 self::WOOPAYMENTS,
1258 self::PAYPAL_FULL_STACK,
1259 self::STRIPE,
1260 self::MOLLIE,
1261 self::VISA,
1262 self::VIVA_WALLET,
1263 self::KLARNA_CHECKOUT => array(
1264 '_merge_on_type' => array(
1265 'links' => array(
1266 array(
1267 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
1268 'url' => 'https://www.klarna.com/international/enterprise/',
1269 ),
1270 array(
1271 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
1272 'url' => 'https://www.klarna.com/se/villkor/',
1273 ),
1274 ),
1275 ),
1276 ),
1277 self::NEXI_CHECKOUT,
1278 self::PAYPAL_WALLET,
1279 self::AMAZON_PAY,
1280 ),
1281 'CH' => array(
1282 self::WOOPAYMENTS,
1283 self::PAYPAL_FULL_STACK,
1284 self::STRIPE,
1285 self::MOLLIE,
1286 self::VISA,
1287 self::PAYPAL_WALLET,
1288 self::AMAZON_PAY,
1289 self::KLARNA => array(
1290 '_merge_on_type' => array(
1291 'links' => array(
1292 array(
1293 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
1294 'url' => 'https://www.klarna.com/ch/fr/entreprise/',
1295 ),
1296 array(
1297 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
1298 'url' => 'https://www.klarna.com/ch/fr/conditions-generales-de-vente/',
1299 ),
1300 ),
1301 ),
1302 ),
1303 ),
1304 'TR' => array(
1305 self::VISA => array(
1306 '_append' => array(
1307 'tags' => array( self::TAG_PREFERRED ),
1308 ),
1309 ),
1310 ),
1311 'UA' => array(
1312 self::VISA => array(
1313 '_append' => array(
1314 'tags' => array( self::TAG_PREFERRED ),
1315 ),
1316 ),
1317 ),
1318
1319 // LATAM & Caribbeans.
1320 'AG' => array(
1321 self::TILOPAY,
1322 self::PAYPAL_FULL_STACK,
1323 self::VISA,
1324 self::PAYPAL_WALLET,
1325 self::HELIOPAY,
1326 ),
1327 'AI' => array(
1328 self::TILOPAY,
1329 self::VISA,
1330 self::HELIOPAY,
1331 ),
1332 'AR' => array(
1333 self::MERCADO_PAGO => array(
1334 '_append' => array(
1335 'tags' => array( self::TAG_PREFERRED ),
1336 ),
1337 '_merge_on_type' => array(
1338 // These URLs come from the Mercado Pago for WooCommerce extension — see `\MercadoPago\Woocommerce\Helpers\Links`.
1339 'links' => array(
1340 array(
1341 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
1342 'url' => 'https://www.mercadopago.com.ar/costs-section',
1343 ),
1344 array(
1345 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
1346 'url' => 'https://www.mercadopago.com.ar/ayuda/terminos-y-politicas_194',
1347 ),
1348 ),
1349 ),
1350 ),
1351 self::PAYPAL_FULL_STACK,
1352 self::VISA,
1353 self::PAYPAL_WALLET,
1354 self::HELIOPAY,
1355 ),
1356 'AW' => array(
1357 self::TILOPAY,
1358 self::VISA,
1359 self::HELIOPAY,
1360 ),
1361 'BS' => array(
1362 self::TILOPAY,
1363 self::PAYPAL_FULL_STACK,
1364 self::VISA,
1365 self::PAYPAL_WALLET,
1366 self::HELIOPAY,
1367 ),
1368 'BB' => array(
1369 self::TILOPAY,
1370 self::PAYPAL_FULL_STACK,
1371 self::VISA,
1372 self::PAYPAL_WALLET,
1373 self::HELIOPAY,
1374 ),
1375 'BZ' => array(
1376 self::TILOPAY,
1377 self::PAYPAL_FULL_STACK,
1378 self::VISA,
1379 self::PAYPAL_WALLET,
1380 self::HELIOPAY,
1381 ),
1382 'BM' => array(
1383 self::TILOPAY,
1384 self::PAYPAL_FULL_STACK,
1385 self::VISA,
1386 self::PAYPAL_WALLET,
1387 self::HELIOPAY,
1388 ),
1389 'BO' => array(
1390 self::VISA => array(
1391 '_append' => array(
1392 'tags' => array( self::TAG_PREFERRED ),
1393 ),
1394 ),
1395 self::HELIOPAY,
1396 ),
1397 'BQ' => array(
1398 self::TILOPAY,
1399 self::VISA,
1400 self::HELIOPAY,
1401 ),
1402 'BR' => array(
1403 self::STRIPE => array(
1404 '_append' => array(
1405 'tags' => array( self::TAG_PREFERRED ),
1406 ),
1407 ),
1408 self::MERCADO_PAGO => array(
1409 '_merge_on_type' => array(
1410 // These URLs come from the Mercado Pago for WooCommerce extension — see `\MercadoPago\Woocommerce\Helpers\Links`.
1411 'links' => array(
1412 array(
1413 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
1414 'url' => 'https://www.mercadopago.com.br/costs-section',
1415 ),
1416 array(
1417 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
1418 'url' => 'https://www.mercadopago.com.br/ajuda/termos-e-politicas_194',
1419 ),
1420 ),
1421 ),
1422 ),
1423 self::PAYPAL_FULL_STACK,
1424 self::VISA,
1425 self::PAYPAL_WALLET,
1426 self::HELIOPAY,
1427 ),
1428 'VG' => array(
1429 self::TILOPAY,
1430 self::VISA,
1431 self::HELIOPAY,
1432 ),
1433 'KY' => array(
1434 self::TILOPAY,
1435 self::PAYPAL_FULL_STACK,
1436 self::VISA,
1437 self::PAYPAL_WALLET,
1438 self::HELIOPAY,
1439 ),
1440 'CL' => array(
1441 self::MERCADO_PAGO => array(
1442 '_append' => array(
1443 'tags' => array( self::TAG_PREFERRED ),
1444 ),
1445 '_merge_on_type' => array(
1446 // These URLs come from the Mercado Pago for WooCommerce extension — see `\MercadoPago\Woocommerce\Helpers\Links`.
1447 'links' => array(
1448 array(
1449 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
1450 'url' => 'https://www.mercadopago.cl/costs-section',
1451 ),
1452 array(
1453 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
1454 'url' => 'https://www.mercadopago.cl/ayuda/terminos-y-politicas_194',
1455 ),
1456 ),
1457 ),
1458 ),
1459 self::PAYPAL_FULL_STACK,
1460 self::VISA,
1461 self::PAYPAL_WALLET,
1462 self::HELIOPAY,
1463 ),
1464 'CO' => array(
1465 self::MERCADO_PAGO => array(
1466 '_append' => array(
1467 'tags' => array( self::TAG_PREFERRED ),
1468 ),
1469 '_merge_on_type' => array(
1470 // These URLs come from the Mercado Pago for WooCommerce extension — see `\MercadoPago\Woocommerce\Helpers\Links`.
1471 'links' => array(
1472 array(
1473 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
1474 'url' => 'https://www.mercadopago.com.co/costs-section',
1475 ),
1476 array(
1477 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
1478 'url' => 'https://www.mercadopago.com.co/ayuda/terminos-y-politicas_194',
1479 ),
1480 ),
1481 ),
1482 ),
1483 self::PAYPAL_FULL_STACK,
1484 self::VISA,
1485 self::PAYPAL_WALLET,
1486 self::HELIOPAY,
1487 ),
1488 'CR' => array(
1489 self::TILOPAY,
1490 self::PAYPAL_FULL_STACK,
1491 self::VISA,
1492 self::PAYPAL_WALLET,
1493 self::HELIOPAY,
1494 ),
1495 'CU' => array(
1496 self::VISA => array(
1497 '_append' => array(
1498 'tags' => array( self::TAG_PREFERRED ),
1499 ),
1500 ),
1501 ),
1502 'CW' => array(
1503 self::TILOPAY,
1504 self::VISA,
1505 self::HELIOPAY,
1506 ),
1507 'DM' => array(
1508 self::TILOPAY,
1509 self::PAYPAL_FULL_STACK,
1510 self::VISA,
1511 self::PAYPAL_WALLET,
1512 self::HELIOPAY,
1513 ),
1514 'DO' => array(
1515 self::TILOPAY,
1516 self::PAYPAL_FULL_STACK,
1517 self::VISA,
1518 self::PAYPAL_WALLET,
1519 self::HELIOPAY,
1520 ),
1521 'EC' => array(
1522 self::VISA => array(
1523 '_append' => array(
1524 'tags' => array( self::TAG_PREFERRED ),
1525 ),
1526 ),
1527 self::PAYPAL_FULL_STACK,
1528 self::PAYPAL_WALLET,
1529 self::HELIOPAY,
1530 ),
1531 'SV' => array(
1532 self::TILOPAY,
1533 self::PAYPAL_FULL_STACK,
1534 self::VISA,
1535 self::PAYPAL_WALLET,
1536 self::HELIOPAY,
1537 ),
1538 'FK' => array(
1539 self::VISA => array(
1540 '_append' => array(
1541 'tags' => array( self::TAG_PREFERRED ),
1542 ),
1543 ),
1544 self::HELIOPAY,
1545 ),
1546 'GF' => array(
1547 self::VISA => array(
1548 '_append' => array(
1549 'tags' => array( self::TAG_PREFERRED ),
1550 ),
1551 ),
1552 self::PAYPAL_FULL_STACK,
1553 self::PAYPAL_WALLET,
1554 self::HELIOPAY,
1555 ),
1556 'GD' => array(
1557 self::TILOPAY,
1558 self::PAYPAL_FULL_STACK,
1559 self::VISA,
1560 self::PAYPAL_WALLET,
1561 self::HELIOPAY,
1562 ),
1563 'GP' => array(
1564 self::VISA => array(
1565 '_append' => array(
1566 'tags' => array( self::TAG_PREFERRED ),
1567 ),
1568 ),
1569 self::PAYPAL_FULL_STACK,
1570 self::PAYPAL_WALLET,
1571 self::HELIOPAY,
1572 ),
1573 'GT' => array(
1574 self::TILOPAY,
1575 self::PAYPAL_FULL_STACK,
1576 self::VISA,
1577 self::PAYPAL_WALLET,
1578 self::HELIOPAY,
1579 ),
1580 'GY' => array(
1581 self::TILOPAY,
1582 self::VISA,
1583 self::HELIOPAY,
1584 ),
1585 'HT' => array(
1586 self::VISA => array(
1587 '_append' => array(
1588 'tags' => array( self::TAG_PREFERRED ),
1589 ),
1590 ),
1591 ),
1592 'HN' => array(
1593 self::TILOPAY,
1594 self::PAYPAL_FULL_STACK,
1595 self::VISA,
1596 self::PAYPAL_WALLET,
1597 self::HELIOPAY,
1598 ),
1599 'JM' => array(
1600 self::TILOPAY,
1601 self::PAYPAL_FULL_STACK,
1602 self::VISA,
1603 self::PAYPAL_WALLET,
1604 self::HELIOPAY,
1605 ),
1606 'MQ' => array(
1607 self::VISA => array(
1608 '_append' => array(
1609 'tags' => array( self::TAG_PREFERRED ),
1610 ),
1611 ),
1612 self::PAYPAL_FULL_STACK,
1613 self::PAYPAL_WALLET,
1614 self::HELIOPAY,
1615 ),
1616 'MX' => array(
1617 self::STRIPE => array(
1618 '_append' => array(
1619 'tags' => array( self::TAG_PREFERRED ),
1620 ),
1621 ),
1622 self::MERCADO_PAGO => array(
1623 '_merge_on_type' => array(
1624 // These URLs come from the Mercado Pago for WooCommerce extension — see `\MercadoPago\Woocommerce\Helpers\Links`.
1625 'links' => array(
1626 array(
1627 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
1628 'url' => 'https://www.mercadopago.com.mx/costs-section',
1629 ),
1630 array(
1631 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
1632 'url' => 'https://www.mercadopago.com.mx/ayuda/terminos-y-politicas_194',
1633 ),
1634 ),
1635 ),
1636 ),
1637 self::PAYPAL_FULL_STACK,
1638 self::VISA,
1639 self::PAYPAL_WALLET,
1640 self::KLARNA => array(
1641 '_merge_on_type' => array(
1642 'links' => array(
1643 array(
1644 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
1645 'url' => 'https://www.klarna.com/mx/negocios/',
1646 ),
1647 array(
1648 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
1649 'url' => 'https://www.klarna.com/mx/terminos-y-condiciones/',
1650 ),
1651 ),
1652 ),
1653 ),
1654 self::HELIOPAY,
1655 ),
1656 'MS' => array(
1657 self::VISA => array(
1658 '_append' => array(
1659 'tags' => array( self::TAG_PREFERRED ),
1660 ),
1661 ),
1662 ),
1663 'NI' => array(
1664 self::TILOPAY,
1665 self::PAYPAL_FULL_STACK,
1666 self::VISA,
1667 self::PAYPAL_WALLET,
1668 self::HELIOPAY,
1669 ),
1670 'PA' => array(
1671 self::TILOPAY,
1672 self::PAYPAL_FULL_STACK,
1673 self::VISA,
1674 self::PAYPAL_WALLET,
1675 self::HELIOPAY,
1676 ),
1677 'PY' => array(
1678 self::VISA => array(
1679 '_append' => array(
1680 'tags' => array( self::TAG_PREFERRED ),
1681 ),
1682 ),
1683 self::HELIOPAY,
1684 ),
1685 'PE' => array(
1686 self::MERCADO_PAGO => array(
1687 '_append' => array(
1688 'tags' => array( self::TAG_PREFERRED ),
1689 ),
1690 '_merge_on_type' => array(
1691 // These URLs come from the Mercado Pago for WooCommerce extension — see `\MercadoPago\Woocommerce\Helpers\Links`.
1692 'links' => array(
1693 array(
1694 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
1695 'url' => 'https://www.mercadopago.com.pe/costs-section',
1696 ),
1697 array(
1698 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
1699 'url' => 'https://www.mercadopago.com.pe/ayuda/terminos-y-politicas_194',
1700 ),
1701 ),
1702 ),
1703 ),
1704 self::PAYPAL_FULL_STACK,
1705 self::VISA,
1706 self::PAYPAL_WALLET,
1707 self::HELIOPAY,
1708 ),
1709 'PR' => array(
1710 self::VISA => array(
1711 '_append' => array(
1712 'tags' => array( self::TAG_PREFERRED ),
1713 ),
1714 ),
1715 self::HELIOPAY,
1716 ),
1717 'BL' => array(
1718 self::VISA => array(
1719 '_append' => array(
1720 'tags' => array( self::TAG_PREFERRED ),
1721 ),
1722 ),
1723 self::HELIOPAY,
1724 ),
1725 'KN' => array(
1726 self::TILOPAY,
1727 self::PAYPAL_FULL_STACK,
1728 self::VISA,
1729 self::PAYPAL_WALLET,
1730 self::HELIOPAY,
1731 ),
1732 'LC' => array(
1733 self::TILOPAY,
1734 self::PAYPAL_FULL_STACK,
1735 self::VISA,
1736 self::PAYPAL_WALLET,
1737 self::HELIOPAY,
1738 ),
1739 'MF' => array(
1740 self::VISA => array(
1741 '_append' => array(
1742 'tags' => array( self::TAG_PREFERRED ),
1743 ),
1744 ),
1745 ),
1746 'VC' => array(
1747 self::TILOPAY,
1748 self::VISA,
1749 self::HELIOPAY,
1750 ),
1751 'SX' => array(
1752 self::TILOPAY,
1753 self::VISA,
1754 self::HELIOPAY,
1755 ),
1756 'GS' => array(
1757 self::VISA => array(
1758 '_append' => array(
1759 'tags' => array( self::TAG_PREFERRED ),
1760 ),
1761 ),
1762 ),
1763 'SR' => array(
1764 self::TILOPAY,
1765 self::VISA,
1766 self::HELIOPAY,
1767 ),
1768 'TT' => array(
1769 self::TILOPAY,
1770 self::PAYPAL_FULL_STACK,
1771 self::VISA,
1772 self::PAYPAL_WALLET,
1773 self::HELIOPAY,
1774 ),
1775 'TC' => array(
1776 self::TILOPAY,
1777 self::PAYPAL_FULL_STACK,
1778 self::VISA,
1779 self::PAYPAL_WALLET,
1780 self::HELIOPAY,
1781 ),
1782 'UY' => array(
1783 self::MERCADO_PAGO => array(
1784 '_append' => array(
1785 'tags' => array( self::TAG_PREFERRED ),
1786 ),
1787 '_merge_on_type' => array(
1788 // These URLs come from the Mercado Pago for WooCommerce extension — see `\MercadoPago\Woocommerce\Helpers\Links`.
1789 'links' => array(
1790 array(
1791 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
1792 'url' => 'https://www.mercadopago.com.uy/costs-section',
1793 ),
1794 array(
1795 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
1796 'url' => 'https://www.mercadopago.com.uy/ayuda/terminos-y-politicas_194',
1797 ),
1798 ),
1799 ),
1800 ),
1801 self::PAYPAL_FULL_STACK,
1802 self::VISA,
1803 self::PAYPAL_WALLET,
1804 self::HELIOPAY,
1805 ),
1806 'VI' => array(
1807 self::TILOPAY,
1808 self::VISA,
1809 self::HELIOPAY,
1810 ),
1811 'VE' => array(
1812 self::PAYPAL_FULL_STACK,
1813 self::PAYPAL_WALLET,
1814 self::HELIOPAY,
1815 ),
1816
1817 // Antarctica.
1818 'AQ' => array(
1819 self::VISA => array(
1820 '_append' => array(
1821 'tags' => array( self::TAG_PREFERRED ),
1822 ),
1823 ),
1824 ),
1825
1826 // APAC.
1827 'AS' => array(
1828 self::VISA => array(
1829 '_append' => array(
1830 'tags' => array( self::TAG_PREFERRED ),
1831 ),
1832 ),
1833 ),
1834 'AU' => array(
1835 self::WOOPAYMENTS,
1836 self::PAYPAL_FULL_STACK,
1837 self::STRIPE,
1838 self::SQUARE => array(
1839 '_merge_on_type' => array(
1840 'links' => array(
1841 array(
1842 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
1843 'url' => 'https://squareup.com/au/en/pricing',
1844 ),
1845 array(
1846 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
1847 'url' => 'https://squareup.com/au/en/legal/general/ua',
1848 ),
1849 ),
1850 ),
1851 ),
1852 self::EWAY,
1853 self::VISA,
1854 self::AIRWALLEX,
1855 self::GOCARDLESS => array(
1856 '_merge_on_type' => array(
1857 'links' => array(
1858 array(
1859 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
1860 'url' => 'https://gocardless.com/en-au/pricing/',
1861 ),
1862 ),
1863 ),
1864 ),
1865 self::ANTOM,
1866 self::PAYPAL_WALLET,
1867 self::AFTERPAY,
1868 self::KLARNA => array(
1869 '_merge_on_type' => array(
1870 'links' => array(
1871 array(
1872 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
1873 'url' => 'https://www.klarna.com/au/business/',
1874 ),
1875 array(
1876 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
1877 'url' => 'https://www.klarna.com/au/legal/',
1878 ),
1879 ),
1880 ),
1881 ),
1882 ),
1883 'BD' => array(
1884 self::PAYONEER => array(
1885 '_append' => array(
1886 'tags' => array( self::TAG_PREFERRED ),
1887 ),
1888 ),
1889 self::VISA,
1890 ),
1891 'IO' => array(
1892 self::VISA => array(
1893 '_append' => array(
1894 'tags' => array( self::TAG_PREFERRED ),
1895 ),
1896 ),
1897 ),
1898 'BN' => array(
1899 self::VISA => array(
1900 '_append' => array(
1901 'tags' => array( self::TAG_PREFERRED ),
1902 ),
1903 ),
1904 ),
1905 'KH' => array(
1906 self::VISA => array(
1907 '_append' => array(
1908 'tags' => array( self::TAG_PREFERRED ),
1909 ),
1910 ),
1911 ),
1912 'CN' => array(
1913 self::PAYPAL_FULL_STACK => array(
1914 '_type' => self::TYPE_PSP, // Change the type to PSP.
1915 '_append' => array(
1916 'tags' => array( self::TAG_PREFERRED ),
1917 ),
1918 ),
1919 self::ANTOM,
1920 self::AIRWALLEX,
1921 self::PAYONEER,
1922 self::VISA,
1923 ),
1924 'CX' => array(
1925 self::VISA => array(
1926 '_append' => array(
1927 'tags' => array( self::TAG_PREFERRED ),
1928 ),
1929 ),
1930 ),
1931 'CC' => array(
1932 self::VISA => array(
1933 '_append' => array(
1934 'tags' => array( self::TAG_PREFERRED ),
1935 ),
1936 ),
1937 ),
1938 'CK' => array(
1939 self::VISA => array(
1940 '_append' => array(
1941 'tags' => array( self::TAG_PREFERRED ),
1942 ),
1943 ),
1944 ),
1945 'FJ' => array(
1946 self::VISA => array(
1947 '_append' => array(
1948 'tags' => array( self::TAG_PREFERRED ),
1949 ),
1950 ),
1951 self::PAYPAL_FULL_STACK,
1952 self::PAYPAL_WALLET,
1953 ),
1954 'GU' => array(
1955 self::VISA => array(
1956 '_append' => array(
1957 'tags' => array( self::TAG_PREFERRED ),
1958 ),
1959 ),
1960 ),
1961 'HM' => array(
1962 self::VISA => array(
1963 '_append' => array(
1964 'tags' => array( self::TAG_PREFERRED ),
1965 ),
1966 ),
1967 ),
1968 'HK' => array(
1969 self::WOOPAYMENTS,
1970 self::PAYPAL_FULL_STACK,
1971 self::STRIPE,
1972 self::ANTOM,
1973 self::AIRWALLEX,
1974 self::PAYONEER,
1975 self::VISA,
1976 self::PAYPAL_WALLET,
1977 ),
1978 'IN' => array(
1979 self::STRIPE => array(
1980 '_append' => array(
1981 'tags' => array( self::TAG_PREFERRED ),
1982 ),
1983 ),
1984 self::PAYPAL_FULL_STACK,
1985 self::RAZORPAY,
1986 self::PAYU_INDIA,
1987 self::PAYONEER,
1988 self::VISA,
1989 self::PAYPAL_WALLET,
1990 ),
1991 'ID' => array(
1992 self::PAYONEER => array(
1993 '_append' => array(
1994 'tags' => array( self::TAG_PREFERRED ),
1995 ),
1996 ),
1997 self::PAYPAL_FULL_STACK,
1998 self::VISA,
1999 self::PAYPAL_WALLET,
2000 ),
2001 'JP' => array(
2002 self::WOOPAYMENTS,
2003 self::PAYPAL_FULL_STACK,
2004 self::STRIPE,
2005 self::SQUARE => array(
2006 '_merge_on_type' => array(
2007 'links' => array(
2008 array(
2009 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
2010 'url' => 'https://squareup.com/jp/ja/pricing',
2011 ),
2012 array(
2013 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
2014 'url' => 'https://squareup.com/jp/ja/legal/general/ua',
2015 ),
2016 ),
2017 ),
2018 ),
2019 self::VISA,
2020 self::PAYPAL_WALLET,
2021 self::AMAZON_PAY,
2022 ),
2023 'KI' => array(
2024 self::VISA => array(
2025 '_append' => array(
2026 'tags' => array( self::TAG_PREFERRED ),
2027 ),
2028 ),
2029 ),
2030 'LA' => array(
2031 self::VISA => array(
2032 '_append' => array(
2033 'tags' => array( self::TAG_PREFERRED ),
2034 ),
2035 ),
2036 ),
2037 'MO' => array(
2038 self::VISA => array(
2039 '_append' => array(
2040 'tags' => array( self::TAG_PREFERRED ),
2041 ),
2042 ),
2043 ),
2044 'MY' => array(
2045 self::STRIPE => array(
2046 '_append' => array(
2047 'tags' => array( self::TAG_PREFERRED ),
2048 ),
2049 ),
2050 self::PAYPAL_FULL_STACK,
2051 self::PAYONEER,
2052 self::VISA,
2053 self::PAYPAL_WALLET,
2054 ),
2055 'MV' => array(
2056 self::VISA => array(
2057 '_append' => array(
2058 'tags' => array( self::TAG_PREFERRED ),
2059 ),
2060 ),
2061 ),
2062 'MH' => array(
2063 self::VISA => array(
2064 '_append' => array(
2065 'tags' => array( self::TAG_PREFERRED ),
2066 ),
2067 ),
2068 ),
2069 'FM' => array(
2070 self::VISA => array(
2071 '_append' => array(
2072 'tags' => array( self::TAG_PREFERRED ),
2073 ),
2074 ),
2075 ),
2076 'MN' => array(
2077 self::VISA => array(
2078 '_append' => array(
2079 'tags' => array( self::TAG_PREFERRED ),
2080 ),
2081 ),
2082 ),
2083 'MM' => array(
2084 self::VISA => array(
2085 '_append' => array(
2086 'tags' => array( self::TAG_PREFERRED ),
2087 ),
2088 ),
2089 ),
2090 'NR' => array(
2091 self::VISA => array(
2092 '_append' => array(
2093 'tags' => array( self::TAG_PREFERRED ),
2094 ),
2095 ),
2096 ),
2097 'NP' => array(
2098 self::VISA => array(
2099 '_append' => array(
2100 'tags' => array( self::TAG_PREFERRED ),
2101 ),
2102 ),
2103 ),
2104 'NC' => array(
2105 self::VISA => array(
2106 '_append' => array(
2107 'tags' => array( self::TAG_PREFERRED ),
2108 ),
2109 ),
2110 self::PAYPAL_FULL_STACK,
2111 self::PAYPAL_WALLET,
2112 ),
2113 'NZ' => array(
2114 self::WOOPAYMENTS,
2115 self::PAYPAL_FULL_STACK,
2116 self::STRIPE,
2117 self::EWAY => array(
2118 '_merge_on_type' => array(
2119 'links' => array(
2120 array(
2121 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
2122 'url' => 'https://eway.io/nz/online-payments/#pricing',
2123 ),
2124 array(
2125 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
2126 'url' => 'https://eway.io/docs/eWAY-Terms-and-Conditions-NZ.pdf',
2127 ),
2128 ),
2129 ),
2130 ),
2131 self::VISA,
2132 self::AIRWALLEX,
2133 self::PAYPAL_WALLET,
2134 self::AFTERPAY,
2135 self::KLARNA => array(
2136 '_merge_on_type' => array(
2137 'links' => array(
2138 array(
2139 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
2140 'url' => 'https://www.klarna.com/nz/business/',
2141 ),
2142 array(
2143 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
2144 'url' => 'https://www.klarna.com/nz/legal/',
2145 ),
2146 ),
2147 ),
2148 ),
2149 ),
2150 'NU' => array(
2151 self::VISA => array(
2152 '_append' => array(
2153 'tags' => array( self::TAG_PREFERRED ),
2154 ),
2155 ),
2156 ),
2157 'NF' => array(
2158 self::VISA => array(
2159 '_append' => array(
2160 'tags' => array( self::TAG_PREFERRED ),
2161 ),
2162 ),
2163 ),
2164 'MP' => array(
2165 self::VISA => array(
2166 '_append' => array(
2167 'tags' => array( self::TAG_PREFERRED ),
2168 ),
2169 ),
2170 ),
2171 'PW' => array(
2172 self::VISA => array(
2173 '_append' => array(
2174 'tags' => array( self::TAG_PREFERRED ),
2175 ),
2176 ),
2177 self::PAYPAL_FULL_STACK,
2178 self::PAYPAL_WALLET,
2179 ),
2180 'PG' => array(
2181 self::VISA => array(
2182 '_append' => array(
2183 'tags' => array( self::TAG_PREFERRED ),
2184 ),
2185 ),
2186 ),
2187 'PH' => array(
2188 self::PAYONEER => array(
2189 '_append' => array(
2190 'tags' => array( self::TAG_PREFERRED ),
2191 ),
2192 ),
2193 self::PAYPAL_FULL_STACK,
2194 self::VISA,
2195 self::PAYPAL_WALLET,
2196 ),
2197 'PN' => array(
2198 self::VISA => array(
2199 '_append' => array(
2200 'tags' => array( self::TAG_PREFERRED ),
2201 ),
2202 ),
2203 ),
2204 'WS' => array(
2205 self::VISA => array(
2206 '_append' => array(
2207 'tags' => array( self::TAG_PREFERRED ),
2208 ),
2209 ),
2210 ),
2211 'SG' => array(
2212 self::WOOPAYMENTS,
2213 self::PAYPAL_FULL_STACK,
2214 self::STRIPE,
2215 self::ANTOM,
2216 self::AIRWALLEX,
2217 self::VISA,
2218 self::PAYPAL_WALLET,
2219 ),
2220 'SB' => array(
2221 self::VISA => array(
2222 '_append' => array(
2223 'tags' => array( self::TAG_PREFERRED ),
2224 ),
2225 ),
2226 ),
2227 'LK' => array(
2228 self::PAYONEER => array(
2229 '_append' => array(
2230 'tags' => array( self::TAG_PREFERRED ),
2231 ),
2232 ),
2233 self::VISA,
2234 ),
2235 'KR' => array(
2236 self::VISA => array(
2237 '_append' => array(
2238 'tags' => array( self::TAG_PREFERRED ),
2239 ),
2240 ),
2241 self::PAYPAL_FULL_STACK,
2242 self::PAYPAL_WALLET,
2243 ),
2244 'TW' => array(
2245 self::VISA => array(
2246 '_append' => array(
2247 'tags' => array( self::TAG_PREFERRED ),
2248 ),
2249 ),
2250 self::PAYPAL_WALLET => array(
2251 '_append' => array(
2252 'tags' => array( self::TAG_PREFERRED ),
2253 ),
2254 ),
2255 ),
2256 'TH' => array(
2257 self::STRIPE => array(
2258 '_append' => array(
2259 'tags' => array( self::TAG_PREFERRED ),
2260 ),
2261 ),
2262 self::PAYPAL_FULL_STACK,
2263 self::PAYONEER,
2264 self::VISA,
2265 self::PAYPAL_WALLET,
2266 ),
2267 'TL' => array(
2268 self::VISA => array(
2269 '_append' => array(
2270 'tags' => array( self::TAG_PREFERRED ),
2271 ),
2272 ),
2273 ),
2274 'TK' => array(
2275 self::VISA => array(
2276 '_append' => array(
2277 'tags' => array( self::TAG_PREFERRED ),
2278 ),
2279 ),
2280 ),
2281 'TO' => array(
2282 self::VISA => array(
2283 '_append' => array(
2284 'tags' => array( self::TAG_PREFERRED ),
2285 ),
2286 ),
2287 ),
2288 'TV' => array(
2289 self::VISA => array(
2290 '_append' => array(
2291 'tags' => array( self::TAG_PREFERRED ),
2292 ),
2293 ),
2294 ),
2295 'VU' => array(
2296 self::VISA => array(
2297 '_append' => array(
2298 'tags' => array( self::TAG_PREFERRED ),
2299 ),
2300 ),
2301 ),
2302 'VN' => array(
2303 self::PAYONEER => array(
2304 '_append' => array(
2305 'tags' => array( self::TAG_PREFERRED ),
2306 ),
2307 ),
2308 self::PAYPAL_FULL_STACK,
2309 self::VISA,
2310 self::PAYPAL_WALLET,
2311 ),
2312 'WF' => array(
2313 self::VISA => array(
2314 '_append' => array(
2315 'tags' => array( self::TAG_PREFERRED ),
2316 ),
2317 ),
2318 ),
2319
2320 // Africa.
2321 'DZ' => array(
2322 self::VISA => array(
2323 '_append' => array(
2324 'tags' => array( self::TAG_PREFERRED ),
2325 ),
2326 ),
2327 self::PAYPAL_FULL_STACK,
2328 self::PAYPAL_WALLET,
2329 ),
2330 'AO' => array(
2331 self::VISA => array(
2332 '_append' => array(
2333 'tags' => array( self::TAG_PREFERRED ),
2334 ),
2335 ),
2336 ),
2337 'BJ' => array(
2338 self::VISA => array(
2339 '_append' => array(
2340 'tags' => array( self::TAG_PREFERRED ),
2341 ),
2342 ),
2343 ),
2344 'BW' => array(
2345 self::VISA => array(
2346 '_append' => array(
2347 'tags' => array( self::TAG_PREFERRED ),
2348 ),
2349 ),
2350 self::PAYPAL_FULL_STACK,
2351 self::PAYPAL_WALLET,
2352 ),
2353 'BF' => array(
2354 self::VISA => array(
2355 '_append' => array(
2356 'tags' => array( self::TAG_PREFERRED ),
2357 ),
2358 ),
2359 ),
2360 'BI' => array(
2361 self::VISA => array(
2362 '_append' => array(
2363 'tags' => array( self::TAG_PREFERRED ),
2364 ),
2365 ),
2366 ),
2367 'CV' => array(
2368 self::VISA => array(
2369 '_append' => array(
2370 'tags' => array( self::TAG_PREFERRED ),
2371 ),
2372 ),
2373 ),
2374 'CM' => array(
2375 self::VISA => array(
2376 '_append' => array(
2377 'tags' => array( self::TAG_PREFERRED ),
2378 ),
2379 ),
2380 ),
2381 'CF' => array(
2382 self::VISA => array(
2383 '_append' => array(
2384 'tags' => array( self::TAG_PREFERRED ),
2385 ),
2386 ),
2387 ),
2388 'TD' => array(
2389 self::VISA => array(
2390 '_append' => array(
2391 'tags' => array( self::TAG_PREFERRED ),
2392 ),
2393 ),
2394 ),
2395 'KM' => array(
2396 self::VISA => array(
2397 '_append' => array(
2398 'tags' => array( self::TAG_PREFERRED ),
2399 ),
2400 ),
2401 ),
2402 'CG' => array(
2403 self::VISA => array(
2404 '_append' => array(
2405 'tags' => array( self::TAG_PREFERRED ),
2406 ),
2407 ),
2408 ),
2409 'CI' => array(
2410 self::VISA => array(
2411 '_append' => array(
2412 'tags' => array( self::TAG_PREFERRED ),
2413 ),
2414 ),
2415 ),
2416 'EG' => array(
2417 self::PAYMOB => array(
2418 '_append' => array(
2419 'tags' => array( self::TAG_PREFERRED ),
2420 ),
2421 ),
2422 self::PAYPAL_FULL_STACK,
2423 self::VISA,
2424 self::PAYPAL_WALLET,
2425 ),
2426 'CD' => array(
2427 self::VISA => array(
2428 '_append' => array(
2429 'tags' => array( self::TAG_PREFERRED ),
2430 ),
2431 ),
2432 ),
2433 'DJ' => array(
2434 self::VISA => array(
2435 '_append' => array(
2436 'tags' => array( self::TAG_PREFERRED ),
2437 ),
2438 ),
2439 ),
2440 'GQ' => array(
2441 self::VISA => array(
2442 '_append' => array(
2443 'tags' => array( self::TAG_PREFERRED ),
2444 ),
2445 ),
2446 ),
2447 'ER' => array(
2448 self::VISA => array(
2449 '_append' => array(
2450 'tags' => array( self::TAG_PREFERRED ),
2451 ),
2452 ),
2453 ),
2454 'SZ' => array(
2455 self::VISA => array(
2456 '_append' => array(
2457 'tags' => array( self::TAG_PREFERRED ),
2458 ),
2459 ),
2460 self::PAYPAL_FULL_STACK,
2461 self::PAYPAL_WALLET,
2462 ),
2463 'ET' => array(
2464 self::VISA => array(
2465 '_append' => array(
2466 'tags' => array( self::TAG_PREFERRED ),
2467 ),
2468 ),
2469 ),
2470 'TF' => array(
2471 self::VISA => array(
2472 '_append' => array(
2473 'tags' => array( self::TAG_PREFERRED ),
2474 ),
2475 ),
2476 ),
2477 'GA' => array(
2478 self::VISA => array(
2479 '_append' => array(
2480 'tags' => array( self::TAG_PREFERRED ),
2481 ),
2482 ),
2483 ),
2484 'GH' => array(
2485 self::PAYSTACK => array(
2486 '_append' => array(
2487 'tags' => array( self::TAG_PREFERRED ),
2488 ),
2489 ),
2490 self::VISA,
2491 ),
2492 'GM' => array(
2493 self::VISA => array(
2494 '_append' => array(
2495 'tags' => array( self::TAG_PREFERRED ),
2496 ),
2497 ),
2498 ),
2499 'GN' => array(
2500 self::VISA => array(
2501 '_append' => array(
2502 'tags' => array( self::TAG_PREFERRED ),
2503 ),
2504 ),
2505 ),
2506 'GW' => array(
2507 self::VISA => array(
2508 '_append' => array(
2509 'tags' => array( self::TAG_PREFERRED ),
2510 ),
2511 ),
2512 ),
2513 'KE' => array(
2514 self::VISA => array(
2515 '_append' => array(
2516 'tags' => array( self::TAG_PREFERRED ),
2517 ),
2518 ),
2519 self::PAYPAL_FULL_STACK,
2520 self::PAYPAL_WALLET,
2521 ),
2522 'LS' => array(
2523 self::VISA => array(
2524 '_append' => array(
2525 'tags' => array( self::TAG_PREFERRED ),
2526 ),
2527 ),
2528 self::PAYPAL_FULL_STACK,
2529 self::PAYPAL_WALLET,
2530 ),
2531 'LR' => array(
2532 self::VISA => array(
2533 '_append' => array(
2534 'tags' => array( self::TAG_PREFERRED ),
2535 ),
2536 ),
2537 ),
2538 'LY' => array(
2539 self::VISA => array(
2540 '_append' => array(
2541 'tags' => array( self::TAG_PREFERRED ),
2542 ),
2543 ),
2544 ),
2545 'MG' => array(
2546 self::VISA => array(
2547 '_append' => array(
2548 'tags' => array( self::TAG_PREFERRED ),
2549 ),
2550 ),
2551 ),
2552 'MW' => array(
2553 self::VISA => array(
2554 '_append' => array(
2555 'tags' => array( self::TAG_PREFERRED ),
2556 ),
2557 ),
2558 self::PAYPAL_FULL_STACK,
2559 self::PAYPAL_WALLET,
2560 ),
2561 'ML' => array(
2562 self::VISA => array(
2563 '_append' => array(
2564 'tags' => array( self::TAG_PREFERRED ),
2565 ),
2566 ),
2567 ),
2568 'MR' => array(
2569 self::VISA => array(
2570 '_append' => array(
2571 'tags' => array( self::TAG_PREFERRED ),
2572 ),
2573 ),
2574 ),
2575 'MU' => array(
2576 self::VISA => array(
2577 '_append' => array(
2578 'tags' => array( self::TAG_PREFERRED ),
2579 ),
2580 ),
2581 self::PAYPAL_FULL_STACK,
2582 self::PAYPAL_WALLET,
2583 ),
2584 'MA' => array(
2585 self::PAYONEER => array(
2586 '_append' => array(
2587 'tags' => array( self::TAG_PREFERRED ),
2588 ),
2589 ),
2590 self::PAYPAL_FULL_STACK,
2591 self::VISA,
2592 self::PAYPAL_WALLET,
2593 ),
2594 'MZ' => array(
2595 self::VISA => array(
2596 '_append' => array(
2597 'tags' => array( self::TAG_PREFERRED ),
2598 ),
2599 ),
2600 self::PAYPAL_FULL_STACK,
2601 self::PAYPAL_WALLET,
2602 ),
2603 'NA' => array(
2604 self::VISA => array(
2605 '_append' => array(
2606 'tags' => array( self::TAG_PREFERRED ),
2607 ),
2608 ),
2609 ),
2610 'NE' => array(
2611 self::VISA => array(
2612 '_append' => array(
2613 'tags' => array( self::TAG_PREFERRED ),
2614 ),
2615 ),
2616 ),
2617 'NG' => array(
2618 self::PAYSTACK => array(
2619 '_append' => array(
2620 'tags' => array( self::TAG_PREFERRED ),
2621 ),
2622 ),
2623 self::VISA,
2624 ),
2625 'RE' => array(
2626 self::VISA => array(
2627 '_append' => array(
2628 'tags' => array( self::TAG_PREFERRED ),
2629 ),
2630 ),
2631 self::PAYPAL_FULL_STACK,
2632 self::PAYPAL_WALLET,
2633 ),
2634 'RW' => array(
2635 self::VISA => array(
2636 '_append' => array(
2637 'tags' => array( self::TAG_PREFERRED ),
2638 ),
2639 ),
2640 ),
2641 'SH' => array(
2642 self::VISA => array(
2643 '_append' => array(
2644 'tags' => array( self::TAG_PREFERRED ),
2645 ),
2646 ),
2647 ),
2648 'ST' => array(
2649 self::VISA => array(
2650 '_append' => array(
2651 'tags' => array( self::TAG_PREFERRED ),
2652 ),
2653 ),
2654 ),
2655 'SN' => array(
2656 self::VISA => array(
2657 '_append' => array(
2658 'tags' => array( self::TAG_PREFERRED ),
2659 ),
2660 ),
2661 self::PAYPAL_FULL_STACK,
2662 self::PAYPAL_WALLET,
2663 ),
2664 'SC' => array(
2665 self::VISA => array(
2666 '_append' => array(
2667 'tags' => array( self::TAG_PREFERRED ),
2668 ),
2669 ),
2670 self::PAYPAL_FULL_STACK,
2671 self::PAYPAL_WALLET,
2672 ),
2673 'SL' => array(
2674 self::VISA => array(
2675 '_append' => array(
2676 'tags' => array( self::TAG_PREFERRED ),
2677 ),
2678 ),
2679 ),
2680 'SO' => array(
2681 self::VISA => array(
2682 '_append' => array(
2683 'tags' => array( self::TAG_PREFERRED ),
2684 ),
2685 ),
2686 ),
2687 'ZA' => array(
2688 self::PAYSTACK => array(
2689 '_append' => array(
2690 'tags' => array( self::TAG_PREFERRED ),
2691 ),
2692 ),
2693 self::PAYPAL_FULL_STACK,
2694 self::PAYFAST,
2695 self::VISA,
2696 self::PAYPAL_WALLET,
2697 ),
2698 'SS' => array(
2699 self::VISA => array(
2700 '_append' => array(
2701 'tags' => array( self::TAG_PREFERRED ),
2702 ),
2703 ),
2704 ),
2705 'TZ' => array(
2706 self::VISA => array(
2707 '_append' => array(
2708 'tags' => array( self::TAG_PREFERRED ),
2709 ),
2710 ),
2711 ),
2712 'TG' => array(
2713 self::VISA => array(
2714 '_append' => array(
2715 'tags' => array( self::TAG_PREFERRED ),
2716 ),
2717 ),
2718 ),
2719 'TN' => array(
2720 self::VISA => array(
2721 '_append' => array(
2722 'tags' => array( self::TAG_PREFERRED ),
2723 ),
2724 ),
2725 ),
2726 'UG' => array(
2727 self::VISA => array(
2728 '_append' => array(
2729 'tags' => array( self::TAG_PREFERRED ),
2730 ),
2731 ),
2732 ),
2733 'EH' => array(
2734 self::VISA => array(
2735 '_append' => array(
2736 'tags' => array( self::TAG_PREFERRED ),
2737 ),
2738 ),
2739 ),
2740 'ZM' => array(
2741 self::VISA => array(
2742 '_append' => array(
2743 'tags' => array( self::TAG_PREFERRED ),
2744 ),
2745 ),
2746 ),
2747 'ZW' => array(
2748 self::VISA => array(
2749 '_append' => array(
2750 'tags' => array( self::TAG_PREFERRED ),
2751 ),
2752 ),
2753 ),
2754
2755 // Middle East.
2756 'AF' => array(
2757 self::VISA => array(
2758 '_append' => array(
2759 'tags' => array( self::TAG_PREFERRED ),
2760 ),
2761 ),
2762 ),
2763 'AZ' => array(
2764 self::VISA => array(
2765 '_append' => array(
2766 'tags' => array( self::TAG_PREFERRED ),
2767 ),
2768 ),
2769 ),
2770 'BH' => array(
2771 self::VISA => array(
2772 '_append' => array(
2773 'tags' => array( self::TAG_PREFERRED ),
2774 ),
2775 ),
2776 self::PAYPAL_FULL_STACK,
2777 self::PAYPAL_WALLET,
2778 ),
2779 'BT' => array(
2780 self::VISA => array(
2781 '_append' => array(
2782 'tags' => array( self::TAG_PREFERRED ),
2783 ),
2784 ),
2785 ),
2786 'GE' => array(
2787 self::VISA => array(
2788 '_append' => array(
2789 'tags' => array( self::TAG_PREFERRED ),
2790 ),
2791 ),
2792 self::PAYPAL_FULL_STACK,
2793 ),
2794 'IR' => array(),
2795 'IQ' => array(
2796 self::VISA => array(
2797 '_append' => array(
2798 'tags' => array( self::TAG_PREFERRED ),
2799 ),
2800 ),
2801 ),
2802 'IL' => array(
2803 self::AIRWALLEX => array(
2804 '_append' => array(
2805 'tags' => array( self::TAG_PREFERRED ),
2806 ),
2807 ),
2808 self::VISA,
2809 ),
2810 'JO' => array(
2811 self::VISA => array(
2812 '_append' => array(
2813 'tags' => array( self::TAG_PREFERRED ),
2814 ),
2815 ),
2816 self::PAYPAL_FULL_STACK,
2817 self::NGENIUS,
2818 self::PAYPAL_WALLET,
2819 ),
2820 'KZ' => array(
2821 self::VISA => array(
2822 '_append' => array(
2823 'tags' => array( self::TAG_PREFERRED ),
2824 ),
2825 ),
2826 self::PAYPAL_FULL_STACK,
2827 ),
2828 'KW' => array(
2829 self::VISA => array(
2830 '_append' => array(
2831 'tags' => array( self::TAG_PREFERRED ),
2832 ),
2833 ),
2834 self::PAYPAL_FULL_STACK,
2835 self::PAYPAL_WALLET,
2836 ),
2837 'KG' => array(
2838 self::VISA => array(
2839 '_append' => array(
2840 'tags' => array( self::TAG_PREFERRED ),
2841 ),
2842 ),
2843 ),
2844 'LB' => array(
2845 self::VISA => array(
2846 '_append' => array(
2847 'tags' => array( self::TAG_PREFERRED ),
2848 ),
2849 ),
2850 ),
2851 'OM' => array(
2852 self::PAYMOB => array(
2853 '_append' => array(
2854 'tags' => array( self::TAG_PREFERRED ),
2855 ),
2856 ),
2857 self::PAYPAL_FULL_STACK,
2858 self::VISA,
2859 self::PAYPAL_WALLET,
2860 ),
2861 'PK' => array(
2862 self::PAYONEER => array(
2863 '_append' => array(
2864 'tags' => array( self::TAG_PREFERRED ),
2865 ),
2866 ),
2867 self::PAYMOB,
2868 self::VISA,
2869 ),
2870 'PS' => array(
2871 self::VISA => array(
2872 '_append' => array(
2873 'tags' => array( self::TAG_PREFERRED ),
2874 ),
2875 ),
2876 ),
2877 'QA' => array(
2878 self::VISA => array(
2879 '_append' => array(
2880 'tags' => array( self::TAG_PREFERRED ),
2881 ),
2882 ),
2883 self::PAYPAL_FULL_STACK,
2884 self::PAYPAL_WALLET,
2885 ),
2886 'SA' => array(
2887 self::PAYMOB => array(
2888 '_append' => array(
2889 'tags' => array( self::TAG_PREFERRED ),
2890 ),
2891 ),
2892 self::PAYPAL_FULL_STACK,
2893 self::VISA,
2894 self::NGENIUS,
2895 self::PAYPAL_WALLET,
2896 ),
2897 'SD' => array(
2898 self::VISA => array(
2899 '_append' => array(
2900 'tags' => array( self::TAG_PREFERRED ),
2901 ),
2902 ),
2903 ),
2904 'TJ' => array(
2905 self::VISA => array(
2906 '_append' => array(
2907 'tags' => array( self::TAG_PREFERRED ),
2908 ),
2909 ),
2910 ),
2911 'TM' => array(
2912 self::VISA => array(
2913 '_append' => array(
2914 'tags' => array( self::TAG_PREFERRED ),
2915 ),
2916 ),
2917 ),
2918 'AE' => array(
2919 self::WOOPAYMENTS,
2920 self::PAYPAL_FULL_STACK,
2921 self::STRIPE,
2922 self::PAYONEER,
2923 self::PAYMOB,
2924 self::VISA,
2925 self::NGENIUS,
2926 self::PAYPAL_WALLET,
2927 ),
2928 'UZ' => array(
2929 self::VISA => array(
2930 '_append' => array(
2931 'tags' => array( self::TAG_PREFERRED ),
2932 ),
2933 ),
2934 ),
2935 'YE' => array(
2936 self::VISA => array(
2937 '_append' => array(
2938 'tags' => array( self::TAG_PREFERRED ),
2939 ),
2940 ),
2941 ),
2942 );
2943
2944 /**
2945 * The context to incentive type map.
2946 *
2947 * @var array|string[]
2948 */
2949 private array $context_to_incentive_type_map = array(
2950 Payments::SUGGESTIONS_CONTEXT => 'wc_settings_payments',
2951 );
2952
2953 /**
2954 * The suggestion incentives provider.
2955 *
2956 * @var PaymentsExtensionSuggestionIncentives
2957 */
2958 private PaymentsExtensionSuggestionIncentives $suggestion_incentives;
2959
2960 /**
2961 * Initialize the class instance.
2962 *
2963 * @param PaymentsExtensionSuggestionIncentives $suggestion_incentives The suggestion incentives provider.
2964 *
2965 * @internal
2966 */
2967 final public function init( PaymentsExtensionSuggestionIncentives $suggestion_incentives ) {
2968 $this->suggestion_incentives = $suggestion_incentives;
2969 }
2970
2971 /**
2972 * Get the list of payment extensions details for a specific country.
2973 *
2974 * @param string $country_code The two-letter country code.
2975 * @param string $context Optional. The context ID of where these extensions are being used.
2976 *
2977 * @return array The list of payment extensions (their full details) for the given country.
2978 * Empty array if no extensions are available for the country or the country is not supported.
2979 * @throws \Exception If there were malformed or invalid extension details.
2980 */
2981 public function get_country_extensions( string $country_code, string $context = '' ): array {
2982 $country_code = strtoupper( $country_code );
2983
2984 if ( empty( $this->country_extensions[ $country_code ] ) ||
2985 ! is_array( $this->country_extensions[ $country_code ] ) ) {
2986
2987 return array();
2988 }
2989
2990 // Process the extensions.
2991 $processed_extensions = array();
2992 $priority = 0;
2993 foreach ( $this->country_extensions[ $country_code ] as $key => $details ) {
2994 // Check the formats we support.
2995 if ( is_int( $key ) && is_string( $details ) ) {
2996 $extension_id = $details;
2997 $extension_country_details = array();
2998 } elseif ( is_string( $key ) && is_array( $details ) ) {
2999 $extension_id = $key;
3000 $extension_country_details = $details;
3001 } else {
3002 // Just ignore the entry as it is malformed.
3003 continue;
3004 }
3005
3006 // Determine if the extension should be included based on the store's state, the provided country and context.
3007 if ( ! $this->is_extension_allowed( $extension_id, $country_code, $context ) ) {
3008 continue;
3009 }
3010
3011 // Determine the extension details for the given country.
3012 $extension_base_details = $this->get_extension_base_details( $extension_id ) ?? array();
3013 $extension_details = $this->with_country_details( $extension_base_details, $extension_country_details );
3014
3015 // Apply any changes to the extension details based on the store's state.
3016 $extension_details = $this->with_store_state_details( $extension_id, $extension_details );
3017
3018 // Check if there is an incentive for this extension and attach its details.
3019 $incentive = $this->get_extension_incentive( $extension_id, $country_code, $context );
3020 if ( is_array( $incentive ) && ! empty( $incentive ) ) {
3021 $extension_details['_incentive'] = $incentive;
3022 }
3023
3024 // Include the extension ID.
3025 $extension_details['id'] = $extension_id;
3026
3027 // Lock in the priority for ordering purposes.
3028 // We respect the order in the country extensions list.
3029 // We use increments of 10 to allow for easy insertions.
3030 $priority += 10;
3031 $extension_details['_priority'] = $priority;
3032
3033 $processed_extensions[] = $this->standardize_extension_details( $extension_details );
3034 }
3035
3036 return $processed_extensions;
3037 }
3038
3039 /**
3040 * Get the base details of a payment extension by its ID.
3041 *
3042 * @param string $extension_id The extension id.
3043 *
3044 * @return array|null The extension details for the given ID. Null if not found.
3045 */
3046 public function get_by_id( string $extension_id ): ?array {
3047 $extension_id = sanitize_title( $extension_id );
3048
3049 $extensions = $this->get_all_extensions_base_details();
3050 if ( isset( $extensions[ $extension_id ] ) ) {
3051 $extension_details = $extensions[ $extension_id ];
3052 $extension_details['id'] = $extension_id;
3053 $extension_details['_priority'] = 0;
3054
3055 return $this->standardize_extension_details( $extension_details );
3056 }
3057
3058 return null;
3059 }
3060
3061 /**
3062 * Get the base details of a payment extension by its plugin slug.
3063 *
3064 * If there are multiple extensions with the same plugin slug, the first one found will be returned.
3065 *
3066 * @param string $plugin_slug The plugin slug.
3067 * @param string $country_code Optional. The two-letter country code for which the extension suggestion should be retrieved.
3068 * @param string $context Optional. The context ID of where this extension suggestion is being used.
3069 *
3070 * @return array|null The extension details for the given plugin slug. Null if not found or the slug is empty.
3071 */
3072 public function get_by_plugin_slug( string $plugin_slug, string $country_code = '', string $context = '' ): ?array {
3073 $plugin_slug = sanitize_title( $plugin_slug );
3074 if ( empty( $plugin_slug ) ) {
3075 return null;
3076 }
3077
3078 // If we have a country code, try to find a fully localized extension suggestion.
3079 if ( ! empty( $country_code ) ) {
3080 $extensions = $this->get_country_extensions( $country_code, $context );
3081 foreach ( $extensions as $extension_details ) {
3082 if ( isset( $extension_details['plugin']['slug'] ) &&
3083 $plugin_slug === $extension_details['plugin']['slug']
3084 ) {
3085 // The extension details are already standardized.
3086 return $extension_details;
3087 }
3088 }
3089 }
3090
3091 // Fallback to the base details.
3092 $extensions = $this->get_all_extensions_base_details();
3093 foreach ( $extensions as $extension_id => $extension_details ) {
3094 if ( isset( $extension_details['plugin']['slug'] ) &&
3095 $plugin_slug === $extension_details['plugin']['slug']
3096 ) {
3097 $extension_details['id'] = $extension_id;
3098 $extension_details['_priority'] = 0;
3099
3100 return $this->standardize_extension_details( $extension_details );
3101 }
3102 }
3103
3104 return null;
3105 }
3106
3107 /**
3108 * Dismiss an incentive for a specific payment extension suggestion.
3109 *
3110 * @param string $incentive_id The incentive ID.
3111 * @param string $suggestion_id The suggestion ID.
3112 * @param string $context Optional. The context ID for which the incentive should be dismissed.
3113 * If not provided, the incentive will be dismissed for all contexts.
3114 *
3115 * @return bool True if the incentive was not previously dismissed and now it is.
3116 * False if the incentive was already dismissed or could not be dismissed.
3117 * @throws \Exception If the incentive could not be dismissed due to an error.
3118 */
3119 public function dismiss_incentive( string $incentive_id, string $suggestion_id, string $context = 'all' ): bool {
3120 return $this->suggestion_incentives->dismiss_incentive( $incentive_id, $suggestion_id, $context );
3121 }
3122
3123 /**
3124 * Determine if a payment extension is allowed to be suggested.
3125 *
3126 * @param string $extension_id The extension ID.
3127 * @param string $country_code The two-letter country code.
3128 * @param string $context Optional. The context ID of where the extension is being used.
3129 *
3130 * @return bool True if the extension is allowed, false otherwise.
3131 * Defaults to true if there is no specific logic for the extension.
3132 */
3133 private function is_extension_allowed( string $extension_id, string $country_code, string $context = '' ): bool { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed
3134 // Add per-extension exclusion logic here.
3135 // Returning true for now to avoid excluding any extensions.
3136 return true;
3137 }
3138
3139 /**
3140 * Merges country-specific details into the base details of a payment extension.
3141 *
3142 * This function processes special `_append`, `_remove`, and `_merge_on_type` instructions to modify
3143 * list-type entries within the base details.
3144 *
3145 * @param array $base_details The base details of the payment extension.
3146 * @param array $country_details The country-specific details, which may include
3147 * special `_append` and `_remove` instructions.
3148 *
3149 * @return array The merged details, with country-specific modifications applied.
3150 *
3151 * @throws \Exception If the country extension details are malformed or invalid.
3152 */
3153 private function with_country_details( array $base_details, array $country_details ): array {
3154 // Process any append instructions.
3155 if ( isset( $country_details['_append'] ) ) {
3156 if ( ! is_array( $country_details['_append'] ) ) {
3157 // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped
3158 throw new \Exception( 'Malformed country extension details _append entry.' );
3159 }
3160 foreach ( $country_details['_append'] as $append_key => $append_list ) {
3161 // Sanity checks.
3162 if ( ! is_string( $append_key ) ||
3163 ! is_array( $append_list ) ||
3164 ! ArrayUtil::array_is_list( $append_list )
3165 ) {
3166 // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped
3167 throw new \Exception( 'Malformed country extension details _append details.' );
3168 }
3169 // If the target entry doesn't exist, create it as an empty list.
3170 if ( ! isset( $base_details[ $append_key ] ) ) {
3171 $base_details[ $append_key ] = array();
3172 }
3173 if ( ! is_array( $base_details[ $append_key ] ) ||
3174 ! ArrayUtil::array_is_list( $base_details[ $append_key ] )
3175 ) {
3176 // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped
3177 throw new \Exception( 'Invalid country extension details _append target.' );
3178 }
3179
3180 $base_details[ $append_key ] = array_merge( $base_details[ $append_key ], $append_list );
3181 }
3182
3183 // Remove the special entry because we don't need it anymore.
3184 unset( $country_details['_append'] );
3185 }
3186
3187 // Process any remove instructions.
3188 if ( isset( $country_details['_remove'] ) ) {
3189 if ( ! is_array( $country_details['_remove'] ) ) {
3190 // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped
3191 throw new \Exception( 'Malformed country extension details _remove entry.' );
3192 }
3193 foreach ( $country_details['_remove'] as $removal_key => $removal_list ) {
3194 // Sanity checks.
3195 if ( ! is_string( $removal_key ) ||
3196 ! is_array( $removal_list ) ||
3197 ! ArrayUtil::array_is_list( $removal_list )
3198 ) {
3199 // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped
3200 throw new \Exception( 'Malformed country extension details _remove details.' );
3201 }
3202 if ( ! isset( $base_details[ $removal_key ] ) ) {
3203 // If the target entry doesn't exist, we don't need to do anything.
3204 continue;
3205 }
3206 if ( ! is_array( $base_details[ $removal_key ] ) ||
3207 ! ArrayUtil::array_is_list( $base_details[ $removal_key ] )
3208 ) {
3209 // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped
3210 throw new \Exception( 'Invalid country extension details _remove target.' );
3211 }
3212
3213 $base_details[ $removal_key ] = array_diff( $base_details[ $removal_key ], $removal_list );
3214 }
3215
3216 // Remove the special entry because we don't need it anymore.
3217 unset( $country_details['_remove'] );
3218 }
3219
3220 // Process any merge on type instructions.
3221 if ( isset( $country_details['_merge_on_type'] ) ) {
3222 if ( ! is_array( $country_details['_merge_on_type'] ) ) {
3223 // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped
3224 throw new \Exception( 'Malformed country extension details _merge_on_type entry.' );
3225 }
3226 foreach ( $country_details['_merge_on_type'] as $merge_key => $merge_list ) {
3227 // Sanity checks.
3228 if ( ! is_string( $merge_key ) ||
3229 ! is_array( $merge_list ) ||
3230 ! ArrayUtil::array_is_list( $merge_list ) ||
3231 count( array_column( $merge_list, '_type' ) ) !== count( $merge_list )
3232 ) {
3233 // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped
3234 throw new \Exception( 'Malformed country extension details _merge_on_type details.' );
3235 }
3236 if ( ! isset( $base_details[ $merge_key ] ) ) {
3237 // If the target entry doesn't exist, create it.
3238 $base_details[ $merge_key ] = array();
3239 }
3240 if ( ! is_array( $base_details[ $merge_key ] ) ||
3241 ! ArrayUtil::array_is_list( $base_details[ $merge_key ] ) ||
3242 count( array_column( $base_details[ $merge_key ], '_type' ) ) !== count( $base_details[ $merge_key ] )
3243 ) {
3244 // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped
3245 throw new \Exception( 'Invalid country extension details _merge_on_type target.' );
3246 }
3247
3248 // Merge the lists based on the '_type' values.
3249 $base_details[ $merge_key ] = ArrayUtil::merge_by_key( $base_details[ $merge_key ], $merge_list, '_type' );
3250 }
3251
3252 // Remove the special entry because we don't need it anymore.
3253 unset( $country_details['_merge_on_type'] );
3254 }
3255
3256 // Merge any remaining country details so they overwrite the base details.
3257 return array_merge( $base_details, $country_details );
3258 }
3259
3260 /**
3261 * Apply customizations to the extension details based on the store's state.
3262 *
3263 * The customizations may be general or specific to certain extensions.
3264 * The store's state refers to various aspects of the store's configuration, collected data,
3265 * store setup/launch process, onboarding task completion, etc.
3266 *
3267 * @param string $extension_id The extension ID.
3268 * @param array $extension_details The extension details.
3269 *
3270 * @return array The modified extension details.
3271 */
3272 private function with_store_state_details( string $extension_id, array $extension_details ): array {
3273 // For Square, we add the preferred tags if the merchant self-identified as selling offline via the core profiler.
3274 if ( self::SQUARE === $extension_id && $this->is_merchant_selling_offline() ) {
3275 if ( empty( $extension_details['tags'] ) ) {
3276 $extension_details['tags'] = array();
3277 }
3278 $extension_details['tags'][] = self::TAG_PREFERRED;
3279 $extension_details['tags'][] = self::TAG_PREFERRED_OFFLINE;
3280 }
3281
3282 return $extension_details;
3283 }
3284
3285 /**
3286 * Get the incentive details for a given extension and country, if any.
3287 *
3288 * @param string $extension_id The extension ID.
3289 * @param string $country_code The two-letter country code.
3290 * @param string $context Optional. The context ID of where the extension incentive is being used.
3291 *
3292 * @return array|null The incentive details for the given extension and country. Null if not found.
3293 */
3294 private function get_extension_incentive( string $extension_id, string $country_code, string $context = '' ): ?array {
3295 // Try to map the context to an incentive type.
3296 $incentive_type = '';
3297 if ( isset( $this->context_to_incentive_type_map[ $context ] ) ) {
3298 $incentive_type = $this->context_to_incentive_type_map[ $context ];
3299 }
3300
3301 $incentives = $this->suggestion_incentives->get_incentives( $extension_id, $country_code, $incentive_type );
3302 if ( empty( $incentives ) ) {
3303 return null;
3304 }
3305
3306 // Use the first incentive, in case there are multiple.
3307 $incentive = reset( $incentives );
3308
3309 // Sanitize the incentive details.
3310 $incentive = $this->sanitize_extension_incentive( $incentive );
3311
3312 // Enhance the incentive details.
3313 $incentive['_suggestion_id'] = $extension_id;
3314 // Add the dismissals list.
3315 $incentive['_dismissals'] = $this->suggestion_incentives->get_incentive_dismissals( $incentive['id'], $extension_id );
3316
3317 return $incentive;
3318 }
3319
3320 /**
3321 * Sanitize the incentive details for a payment extension.
3322 *
3323 * @param array $incentive The incentive details.
3324 *
3325 * @return array The sanitized incentive details.
3326 */
3327 private function sanitize_extension_incentive( array $incentive ): array {
3328 // Apply a very loose sanitization. Stricter sanitization can be applied downstream, if needed.
3329 return array_map(
3330 function ( $value ) {
3331 // Make sure that if we have HTML tags, we only allow a limited set of tags (only stylistic ones).
3332 if ( is_string( $value ) && preg_match( '/<[^>]+>/', $value ) ) {
3333 $value = wp_kses( $value, wp_kses_allowed_html( 'data' ) );
3334 }
3335
3336 return $value;
3337 },
3338 $incentive
3339 );
3340 }
3341
3342 /**
3343 * Get the base details of all extensions.
3344 *
3345 * @return array[] The base details of all extensions.
3346 */
3347 private function get_all_extensions_base_details(): array {
3348 if ( isset( $this->extensions_base_details_memo ) ) {
3349 return $this->extensions_base_details_memo;
3350 }
3351 $this->extensions_base_details_memo = array(
3352 self::AIRWALLEX => array(
3353 '_type' => self::TYPE_PSP,
3354 'title' => esc_html__( 'Airwallex Payments', 'woocommerce' ),
3355 'description' => esc_html__( 'Boost international sales and save on FX fees. Accept 60+ local payment methods including Apple Pay and Google Pay.', 'woocommerce' ),
3356 'image' => plugins_url( 'assets/images/onboarding/airwallex.png', WC_PLUGIN_FILE ),
3357 'icon' => plugins_url( 'assets/images/onboarding/icons/airwallex.svg', WC_PLUGIN_FILE ),
3358 'plugin' => array(
3359 '_type' => self::PLUGIN_TYPE_WPORG,
3360 'slug' => 'airwallex-online-payments-gateway',
3361 ),
3362 'links' => array(
3363 array(
3364 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
3365 'url' => 'https://www.airwallex.com/pricing',
3366 ),
3367 array(
3368 '_type' => PaymentsProviders::LINK_TYPE_ABOUT,
3369 'url' => 'https://woocommerce.com/products/airwallexpayments/',
3370 ),
3371 array(
3372 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
3373 'url' => 'https://www.airwallex.com/terms/',
3374 ),
3375 array(
3376 '_type' => PaymentsProviders::LINK_TYPE_DOCS,
3377 'url' => 'https://www.airwallex.com/docs/payments__plugins__woocommerce__install-the-woocommerce-plugin',
3378 ),
3379 array(
3380 '_type' => PaymentsProviders::LINK_TYPE_SUPPORT,
3381 'url' => 'https://help.airwallex.com/',
3382 ),
3383 ),
3384 ),
3385 self::ANTOM => array(
3386 '_type' => self::TYPE_PSP,
3387 'title' => esc_html__( 'Antom', 'woocommerce' ),
3388 'description' => esc_html__( 'Your trusted payments partner in Asia and around the world.', 'woocommerce' ),
3389 'icon' => plugins_url( 'assets/images/onboarding/icons/antom.svg', WC_PLUGIN_FILE ),
3390 'plugin' => array(
3391 '_type' => self::PLUGIN_TYPE_WPORG,
3392 'slug' => 'antom-payments',
3393 ),
3394 'links' => array(
3395 array(
3396 '_type' => PaymentsProviders::LINK_TYPE_ABOUT,
3397 'url' => 'https://woocommerce.com/products/antom-payments/',
3398 ),
3399 array(
3400 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
3401 'url' => 'https://global.alipay.com/docs/ac/Platform/',
3402 ),
3403 array(
3404 '_type' => PaymentsProviders::LINK_TYPE_DOCS,
3405 'url' => 'https://woocommerce.com/document/antom-payment/',
3406 ),
3407 array(
3408 '_type' => PaymentsProviders::LINK_TYPE_SUPPORT,
3409 'url' => 'https://woocommerce.com/my-account/contact-support/?select=antom-payments',
3410 ),
3411 ),
3412 ),
3413 self::MERCADO_PAGO => array(
3414 '_type' => self::TYPE_PSP,
3415 'title' => esc_html__( 'Mercado Pago', 'woocommerce' ),
3416 'description' => esc_html__( 'Set up your payment methods and accept credit and debit cards, cash, bank transfers and money from your Mercado Pago account. Offer safe and secure payments with Latin America’s leading processor.', 'woocommerce' ),
3417 'image' => plugins_url( 'assets/images/onboarding/mercadopago.png', WC_PLUGIN_FILE ),
3418 'icon' => plugins_url( 'assets/images/onboarding/icons/mercadopago.svg', WC_PLUGIN_FILE ),
3419 'plugin' => array(
3420 '_type' => self::PLUGIN_TYPE_WPORG,
3421 'slug' => 'woocommerce-mercadopago',
3422 ),
3423 'links' => array(
3424 array(
3425 '_type' => PaymentsProviders::LINK_TYPE_ABOUT,
3426 'url' => 'https://woocommerce.com/products/mercado-pago-checkout/',
3427 ),
3428 array(
3429 '_type' => PaymentsProviders::LINK_TYPE_DOCS,
3430 'url' => 'https://woocommerce.com/document/mercado-pago/',
3431 ),
3432 array(
3433 '_type' => PaymentsProviders::LINK_TYPE_SUPPORT,
3434 'url' => 'https://woocommerce.com/my-account/contact-support/?select=mercado-pago-checkout',
3435 ),
3436 ),
3437 ),
3438 self::MOLLIE => array(
3439 '_type' => self::TYPE_PSP,
3440 'title' => esc_html__( 'Mollie', 'woocommerce' ),
3441 'description' => esc_html__( 'Effortless payments by Mollie: Offer global and local payment methods, get onboarded in minutes, and supported in your language.', 'woocommerce' ),
3442 'image' => plugins_url( 'assets/images/onboarding/mollie.svg', WC_PLUGIN_FILE ),
3443 'icon' => plugins_url( 'assets/images/onboarding/icons/mollie.svg', WC_PLUGIN_FILE ),
3444 'plugin' => array(
3445 '_type' => self::PLUGIN_TYPE_WPORG,
3446 'slug' => 'mollie-payments-for-woocommerce',
3447 ),
3448 'links' => array(
3449 array(
3450 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
3451 'url' => 'https://www.mollie.com/pricing',
3452 ),
3453 array(
3454 '_type' => PaymentsProviders::LINK_TYPE_ABOUT,
3455 'url' => 'https://woocommerce.com/products/mollie-payments-for-woocommerce/',
3456 ),
3457 array(
3458 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
3459 'url' => 'https://www.mollie.com/user-agreement',
3460 ),
3461 array(
3462 '_type' => PaymentsProviders::LINK_TYPE_DOCS,
3463 'url' => 'https://woocommerce.com/document/mollie-payments-for-woocommerce/',
3464 ),
3465 array(
3466 '_type' => PaymentsProviders::LINK_TYPE_SUPPORT,
3467 'url' => 'https://discord.com/invite/mollie',
3468 ),
3469 ),
3470 ),
3471 self::PAYFAST => array(
3472 '_type' => self::TYPE_PSP,
3473 'title' => esc_html__( 'Payfast', 'woocommerce' ),
3474 'description' => esc_html__( 'The Payfast extension for WooCommerce enables you to accept payments by Credit Card and EFT via one of South Africa\'s most popular payment gateways. No setup fees or monthly subscription costs. Selecting this extension will configure your store to use South African rands as the selected currency.', 'woocommerce' ),
3475 'image' => plugins_url( 'assets/images/onboarding/payfast.png', WC_PLUGIN_FILE ),
3476 'icon' => plugins_url( 'assets/images/onboarding/icons/payfast.svg', WC_PLUGIN_FILE ),
3477 'plugin' => array(
3478 '_type' => self::PLUGIN_TYPE_WPORG,
3479 'slug' => 'woocommerce-payfast-gateway',
3480 ),
3481 'links' => array(
3482 array(
3483 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
3484 'url' => 'https://payfast.io/fees/',
3485 ),
3486 array(
3487 '_type' => PaymentsProviders::LINK_TYPE_ABOUT,
3488 'url' => 'https://woocommerce.com/products/payfast-payment-gateway/',
3489 ),
3490 array(
3491 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
3492 'url' => 'https://payfast.io/legal/',
3493 ),
3494 array(
3495 '_type' => PaymentsProviders::LINK_TYPE_DOCS,
3496 'url' => 'https://woocommerce.com/document/payfast-payment-gateway/',
3497 ),
3498 array(
3499 '_type' => PaymentsProviders::LINK_TYPE_SUPPORT,
3500 'url' => 'https://woocommerce.com/my-account/contact-support/?select=payfast-payment-gateway',
3501 ),
3502 ),
3503 'tags' => array( self::TAG_MADE_IN_WOO ),
3504 ),
3505 self::PAYMOB => array(
3506 '_type' => self::TYPE_PSP,
3507 'title' => esc_html__( 'Paymob', 'woocommerce' ),
3508 'description' => esc_html__( 'Paymob is a leading payment gateway in the Middle East and Africa. Accept payments online and in-store with Paymob.', 'woocommerce' ),
3509 'icon' => plugins_url( 'assets/images/onboarding/icons/paymob.svg', WC_PLUGIN_FILE ),
3510 'plugin' => array(
3511 '_type' => self::PLUGIN_TYPE_WPORG,
3512 'slug' => 'paymob-for-woocommerce',
3513 ),
3514 'links' => array(
3515 array(
3516 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
3517 'url' => 'https://paymob.com/en/pricing',
3518 ),
3519 array(
3520 '_type' => PaymentsProviders::LINK_TYPE_ABOUT,
3521 'url' => 'https://woocommerce.com/products/paymob/',
3522 ),
3523 array(
3524 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
3525 'url' => 'https://paymob.com/en/policy',
3526 ),
3527 array(
3528 '_type' => PaymentsProviders::LINK_TYPE_DOCS,
3529 'url' => 'https://woocommerce.com/document/paymob-for-woocommerce/',
3530 ),
3531 array(
3532 '_type' => PaymentsProviders::LINK_TYPE_SUPPORT,
3533 'url' => 'https://woocommerce.com/my-account/contact-support/?select=paymob',
3534 ),
3535 ),
3536 ),
3537 self::PAYPAL_FULL_STACK => array(
3538 '_type' => self::TYPE_APM,
3539 'title' => esc_html__( 'PayPal Payments', 'woocommerce' ),
3540 'description' => esc_html__( 'PayPal Payments lets you offer PayPal, Venmo (US only), Pay Later options and more.', 'woocommerce' ),
3541 'image' => plugins_url( 'assets/images/onboarding/paypal.png', WC_PLUGIN_FILE ),
3542 'icon' => plugins_url( 'assets/images/onboarding/icons/paypal.svg', WC_PLUGIN_FILE ),
3543 'plugin' => array(
3544 '_type' => self::PLUGIN_TYPE_WPORG,
3545 'slug' => 'woocommerce-paypal-payments',
3546 ),
3547 'links' => array(
3548 array(
3549 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
3550 'url' => 'https://www.paypal.com/webapps/mpp/merchant-fees',
3551 ),
3552 array(
3553 '_type' => PaymentsProviders::LINK_TYPE_ABOUT,
3554 'url' => 'https://woocommerce.com/products/woocommerce-paypal-payments/',
3555 ),
3556 array(
3557 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
3558 'url' => 'https://www.paypal.com/legalhub/home',
3559 ),
3560 array(
3561 '_type' => PaymentsProviders::LINK_TYPE_DOCS,
3562 'url' => 'https://woocommerce.com/document/woocommerce-paypal-payments/',
3563 ),
3564 array(
3565 '_type' => PaymentsProviders::LINK_TYPE_SUPPORT,
3566 'url' => 'https://woocommerce.com/my-account/contact-support/?select=woocommerce-paypal-payments',
3567 ),
3568 ),
3569 'tags' => array( self::TAG_MADE_IN_WOO, self::TAG_PREFERRED ),
3570 ),
3571 self::PAYPAL_WALLET => array(
3572 '_type' => self::TYPE_EXPRESS_CHECKOUT,
3573 'title' => esc_html__( 'PayPal Payments', 'woocommerce' ),
3574 'description' => esc_html__( 'Safe and secure payments using your customer\'s PayPal account.', 'woocommerce' ),
3575 'image' => plugins_url( 'assets/images/onboarding/paypal.png', WC_PLUGIN_FILE ),
3576 'icon' => plugins_url( 'assets/images/onboarding/icons/paypal.svg', WC_PLUGIN_FILE ),
3577 'plugin' => array(
3578 '_type' => self::PLUGIN_TYPE_WPORG,
3579 'slug' => 'woocommerce-paypal-payments',
3580 ),
3581 'links' => array(
3582 array(
3583 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
3584 'url' => 'https://www.paypal.com/webapps/mpp/merchant-fees#advanced_cd_payments',
3585 ),
3586 array(
3587 '_type' => PaymentsProviders::LINK_TYPE_ABOUT,
3588 'url' => 'https://woocommerce.com/products/woocommerce-paypal-payments/',
3589 ),
3590 array(
3591 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
3592 'url' => 'https://www.paypal.com/legalhub/home',
3593 ),
3594 array(
3595 '_type' => PaymentsProviders::LINK_TYPE_DOCS,
3596 'url' => 'https://woocommerce.com/document/woocommerce-paypal-payments/',
3597 ),
3598 array(
3599 '_type' => PaymentsProviders::LINK_TYPE_SUPPORT,
3600 'url' => 'https://woocommerce.com/my-account/contact-support/?select=woocommerce-paypal-payments',
3601 ),
3602 ),
3603 'tags' => array( self::TAG_MADE_IN_WOO ),
3604 ),
3605 self::PAYONEER => array(
3606 '_type' => self::TYPE_PSP,
3607 'title' => esc_html__( 'Payoneer Checkout', 'woocommerce' ),
3608 'description' => esc_html__( 'Payoneer Checkout is the next generation of payment processing platforms, giving merchants around the world the solutions and direction they need to succeed in today\'s hyper-competitive global market.', 'woocommerce' ),
3609 'image' => plugins_url( 'assets/images/onboarding/payoneer.png', WC_PLUGIN_FILE ),
3610 'icon' => plugins_url( 'assets/images/onboarding/icons/payoneer.svg', WC_PLUGIN_FILE ),
3611 'plugin' => array(
3612 '_type' => self::PLUGIN_TYPE_WPORG,
3613 'slug' => 'payoneer-checkout',
3614 ),
3615 'links' => array(
3616 array(
3617 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
3618 'url' => 'https://www.payoneer.com/about/pricing/',
3619 ),
3620 array(
3621 '_type' => PaymentsProviders::LINK_TYPE_ABOUT,
3622 'url' => 'https://woocommerce.com/products/payoneer-checkout/',
3623 ),
3624 array(
3625 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
3626 'url' => 'https://www.payoneer.com/legal-agreements/',
3627 ),
3628 array(
3629 '_type' => PaymentsProviders::LINK_TYPE_DOCS,
3630 'url' => 'https://checkoutdocs.payoneer.com/docs/about-woocommerce-integration',
3631 ),
3632 array(
3633 '_type' => PaymentsProviders::LINK_TYPE_SUPPORT,
3634 'url' => 'https://checkoutdocs.payoneer.com/docs/troubleshoot-woocommerce',
3635 ),
3636 ),
3637 ),
3638 self::PAYSTACK => array(
3639 '_type' => self::TYPE_PSP,
3640 'title' => esc_html__( 'Paystack', 'woocommerce' ),
3641 'description' => esc_html__( 'Paystack helps African merchants accept one-time and recurring payments online with a modern, safe, and secure payment gateway.', 'woocommerce' ),
3642 'image' => plugins_url( 'assets/images/onboarding/paystack.png', WC_PLUGIN_FILE ),
3643 'icon' => plugins_url( 'assets/images/onboarding/icons/paystack.svg', WC_PLUGIN_FILE ),
3644 'plugin' => array(
3645 '_type' => self::PLUGIN_TYPE_WPORG,
3646 'slug' => 'woo-paystack',
3647 ),
3648 'links' => array(
3649 array(
3650 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
3651 'url' => 'https://paystack.com/pricing',
3652 ),
3653 array(
3654 '_type' => PaymentsProviders::LINK_TYPE_ABOUT,
3655 'url' => 'https://woocommerce.com/products/paystack/',
3656 ),
3657 array(
3658 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
3659 'url' => 'https://paystack.com/terms',
3660 ),
3661 array(
3662 '_type' => PaymentsProviders::LINK_TYPE_DOCS,
3663 'url' => 'https://woocommerce.com/document/paystack/',
3664 ),
3665 array(
3666 '_type' => PaymentsProviders::LINK_TYPE_SUPPORT,
3667 'url' => 'https://support.paystack.com/en/articles/2130754',
3668 ),
3669 ),
3670 ),
3671 self::PAYTRAIL => array(
3672 '_type' => self::TYPE_PSP,
3673 'title' => esc_html__( 'Paytrail', 'woocommerce' ),
3674 'description' => esc_html__( 'Accept all popular payment methods for Finnish B2C and B2B customers', 'woocommerce' ),
3675 'icon' => plugins_url( 'assets/images/onboarding/icons/paytrail.svg', WC_PLUGIN_FILE ),
3676 'plugin' => array(
3677 '_type' => self::PLUGIN_TYPE_WPORG,
3678 'slug' => 'paytrail-for-woocommerce',
3679 ),
3680 'links' => array(
3681 array(
3682 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
3683 'url' => 'https://www.paytrail.com/en/pricing',
3684 ),
3685 array(
3686 '_type' => PaymentsProviders::LINK_TYPE_ABOUT,
3687 'url' => 'https://woocommerce.com/products/paytrail/',
3688 ),
3689 array(
3690 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
3691 'url' => 'https://www.paytrail.com/en/terms-conditions',
3692 ),
3693 array(
3694 '_type' => PaymentsProviders::LINK_TYPE_DOCS,
3695 'url' => 'https://woocommerce.com/document/paytrail-for-woocommerce/',
3696 ),
3697 array(
3698 '_type' => PaymentsProviders::LINK_TYPE_SUPPORT,
3699 'url' => 'https://www.paytrail.com/en/customer-service#merchants',
3700 ),
3701 ),
3702 ),
3703 self::PAYU_INDIA => array(
3704 '_type' => self::TYPE_PSP,
3705 'title' => esc_html__( 'PayU India', 'woocommerce' ),
3706 'description' => esc_html__( 'Enable PayU\'s exclusive plugin for WooCommerce to start accepting payments in 100+ payment methods available in India including credit cards, debit cards, UPI, & more!', 'woocommerce' ),
3707 'image' => plugins_url( 'assets/images/onboarding/payu.svg', WC_PLUGIN_FILE ),
3708 'icon' => plugins_url( 'assets/images/onboarding/icons/payu.svg', WC_PLUGIN_FILE ),
3709 'plugin' => array(
3710 '_type' => self::PLUGIN_TYPE_WPORG,
3711 'slug' => 'payu-india',
3712 ),
3713 'links' => array(
3714 array(
3715 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
3716 'url' => 'https://payu.in/pricing/',
3717 ),
3718 array(
3719 '_type' => PaymentsProviders::LINK_TYPE_ABOUT,
3720 'url' => 'https://woocommerce.com/products/payu-india/',
3721 ),
3722 array(
3723 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
3724 'url' => 'https://payu.in/payu-terms-and-conditions/',
3725 ),
3726 array(
3727 '_type' => PaymentsProviders::LINK_TYPE_DOCS,
3728 'url' => 'https://payu.in/plugins/payment-gateway-for-woocommerce-plugin',
3729 ),
3730 array(
3731 '_type' => PaymentsProviders::LINK_TYPE_SUPPORT,
3732 'url' => 'https://help.payu.in/',
3733 ),
3734 ),
3735 ),
3736 self::RAZORPAY => array(
3737 '_type' => self::TYPE_PSP,
3738 'title' => esc_html__( 'Razorpay', 'woocommerce' ),
3739 'description' => esc_html__( 'The official Razorpay extension for WooCommerce allows you to accept credit cards, debit cards, netbanking, wallet, and UPI payments.', 'woocommerce' ),
3740 'image' => plugins_url( 'assets/images/onboarding/razorpay.svg', WC_PLUGIN_FILE ),
3741 'icon' => plugins_url( 'assets/images/onboarding/icons/razorpay.svg', WC_PLUGIN_FILE ),
3742 'plugin' => array(
3743 '_type' => self::PLUGIN_TYPE_WPORG,
3744 'slug' => 'woo-razorpay',
3745 ),
3746 'links' => array(
3747 array(
3748 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
3749 'url' => 'https://razorpay.com/pricing/',
3750 ),
3751 array(
3752 '_type' => PaymentsProviders::LINK_TYPE_ABOUT,
3753 'url' => 'https://woocommerce.com/products/razorpay-for-woocommerce/',
3754 ),
3755 array(
3756 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
3757 'url' => 'https://razorpay.com/terms/',
3758 ),
3759 array(
3760 '_type' => PaymentsProviders::LINK_TYPE_DOCS,
3761 'url' => 'https://razorpay.com/docs/payment-gateway/ecommerce-plugins/woocommerce/woocommerce-pg/',
3762 ),
3763 array(
3764 '_type' => PaymentsProviders::LINK_TYPE_SUPPORT,
3765 'url' => 'https://razorpay.com/support/',
3766 ),
3767 ),
3768 ),
3769 self::SQUARE => array(
3770 '_type' => self::TYPE_PSP,
3771 'title' => esc_html__( 'Square', 'woocommerce' ),
3772 'description' => esc_html__( 'Securely accept credit and debit cards with one low rate, no surprise fees (custom rates available). Sell in store and track sales and inventory in one place.', 'woocommerce' ),
3773 'image' => plugins_url( 'assets/images/onboarding/square-black.png', WC_PLUGIN_FILE ),
3774 'icon' => plugins_url( 'assets/images/onboarding/icons/square.svg', WC_PLUGIN_FILE ),
3775 'plugin' => array(
3776 '_type' => self::PLUGIN_TYPE_WPORG,
3777 'slug' => 'woocommerce-square',
3778 ),
3779 'links' => array(
3780 array(
3781 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
3782 'url' => 'https://squareup.com/pricing',
3783 ),
3784 array(
3785 '_type' => PaymentsProviders::LINK_TYPE_ABOUT,
3786 'url' => 'https://woocommerce.com/products/square/',
3787 ),
3788 array(
3789 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
3790 'url' => 'https://squareup.com/legal/general/ua',
3791 ),
3792 array(
3793 '_type' => PaymentsProviders::LINK_TYPE_DOCS,
3794 'url' => 'https://woocommerce.com/document/woocommerce-square/',
3795 ),
3796 array(
3797 '_type' => PaymentsProviders::LINK_TYPE_SUPPORT,
3798 'url' => 'https://woocommerce.com/my-account/contact-support/?select=square',
3799 ),
3800 ),
3801 'tags' => array( self::TAG_MADE_IN_WOO ),
3802 ),
3803 self::STRIPE => array(
3804 '_type' => self::TYPE_PSP,
3805 'title' => esc_html__( 'Stripe', 'woocommerce' ),
3806 'description' => esc_html__( 'Accept debit and credit cards in 135+ currencies, methods such as Alipay, and one-touch checkout with Apple Pay.', 'woocommerce' ),
3807 'image' => plugins_url( 'assets/images/onboarding/stripe.png', WC_PLUGIN_FILE ),
3808 'icon' => plugins_url( 'assets/images/onboarding/icons/stripe.svg', WC_PLUGIN_FILE ),
3809 'plugin' => array(
3810 '_type' => self::PLUGIN_TYPE_WPORG,
3811 'slug' => 'woocommerce-gateway-stripe',
3812 ),
3813 'links' => array(
3814 array(
3815 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
3816 'url' => 'https://stripe.com/pricing',
3817 ),
3818 array(
3819 '_type' => PaymentsProviders::LINK_TYPE_ABOUT,
3820 'url' => 'https://woocommerce.com/products/stripe/',
3821 ),
3822 array(
3823 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
3824 'url' => 'https://stripe.com/legal/connect-account',
3825 ),
3826 array(
3827 '_type' => PaymentsProviders::LINK_TYPE_DOCS,
3828 'url' => 'https://woocommerce.com/document/stripe',
3829 ),
3830 array(
3831 '_type' => PaymentsProviders::LINK_TYPE_SUPPORT,
3832 'url' => 'https://woocommerce.com/my-account/contact-support/?select=stripe',
3833 ),
3834 ),
3835 'tags' => array( self::TAG_MADE_IN_WOO ),
3836 ),
3837 self::TILOPAY => array(
3838 '_type' => self::TYPE_PSP,
3839 'title' => esc_html__( 'Tilopay', 'woocommerce' ),
3840 'description' => esc_html__( 'Accept credit and debit cards on your WooCommerce store with advanced features like partial refunds, full/partial captures, and 3D Secure security.', 'woocommerce' ),
3841 'icon' => plugins_url( 'assets/images/onboarding/icons/tilopay.svg', WC_PLUGIN_FILE ),
3842 'plugin' => array(
3843 '_type' => self::PLUGIN_TYPE_WPORG,
3844 'slug' => 'tilopay',
3845 ),
3846 'links' => array(
3847 array(
3848 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
3849 'url' => 'https://tilopay.com/tarifas',
3850 ),
3851 array(
3852 '_type' => PaymentsProviders::LINK_TYPE_ABOUT,
3853 'url' => 'https://tilopay.com/tilopay-checkout',
3854 ),
3855 array(
3856 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
3857 'url' => 'https://tilopay.com/terminos-condiciones',
3858 ),
3859 array(
3860 '_type' => PaymentsProviders::LINK_TYPE_DOCS,
3861 'url' => 'https://tilopay.com/documentacion/plataforma-woocommerce',
3862 ),
3863 array(
3864 '_type' => PaymentsProviders::LINK_TYPE_SUPPORT,
3865 'url' => 'https://cst.support.tilopay.com/servicedesk/customer/portals',
3866 ),
3867 ),
3868 'tags' => array( self::TAG_PREFERRED ),
3869 ),
3870 self::VIVA_WALLET => array(
3871 '_type' => self::TYPE_PSP,
3872 'title' => esc_html__( 'Viva.com Smart Checkout', 'woocommerce' ),
3873 'description' => esc_html__( 'A European payments solution that allows you to accept payments in over 25 countries and multiple currencies.', 'woocommerce' ),
3874 'icon' => plugins_url( 'assets/images/onboarding/icons/vivacom.svg', WC_PLUGIN_FILE ),
3875 'plugin' => array(
3876 '_type' => self::PLUGIN_TYPE_WPORG,
3877 'slug' => 'viva-com-smart-for-woocommerce',
3878 ),
3879 'links' => array(
3880 array(
3881 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
3882 'url' => 'https://www.viva.com/pricing',
3883 ),
3884 array(
3885 '_type' => PaymentsProviders::LINK_TYPE_ABOUT,
3886 'url' => 'https://woocommerce.com/products/viva-com-smart-for-woocommerce/',
3887 ),
3888 array(
3889 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
3890 'url' => 'https://www.viva.com/terms-portal',
3891 ),
3892 array(
3893 '_type' => PaymentsProviders::LINK_TYPE_DOCS,
3894 'url' => 'https://woocommerce.com/document/viva-com-smart-for-woocommerce/',
3895 ),
3896 array(
3897 '_type' => PaymentsProviders::LINK_TYPE_SUPPORT,
3898 'url' => 'https://woocommerce.com/my-account/contact-support/?select=viva-com-smart-for-woocommerce',
3899 ),
3900 ),
3901 ),
3902 self::WOOPAYMENTS => array(
3903 '_type' => self::TYPE_PSP,
3904 'title' => esc_html__( 'Accept payments with Woo', 'woocommerce' ),
3905 'description' => esc_html__( 'Credit/debit cards, Apple Pay, Google Pay, and more.', 'woocommerce' ),
3906 'image' => plugins_url( 'assets/images/onboarding/woopayments.svg', WC_PLUGIN_FILE ),
3907 'icon' => plugins_url( 'assets/images/onboarding/icons/woo.svg', WC_PLUGIN_FILE ),
3908 'plugin' => array(
3909 '_type' => self::PLUGIN_TYPE_WPORG,
3910 'slug' => 'woocommerce-payments',
3911 ),
3912 'links' => array(
3913 array(
3914 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
3915 'url' => 'https://woocommerce.com/document/woopayments/fees-and-debits/',
3916 ),
3917 array(
3918 '_type' => PaymentsProviders::LINK_TYPE_ABOUT,
3919 'url' => 'https://woocommerce.com/payments/',
3920 ),
3921 array(
3922 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
3923 'url' => 'https://woocommerce.com/document/woopayments/our-policies/',
3924 ),
3925 array(
3926 '_type' => PaymentsProviders::LINK_TYPE_DOCS,
3927 'url' => 'https://woocommerce.com/document/woopayments/',
3928 ),
3929 array(
3930 '_type' => PaymentsProviders::LINK_TYPE_SUPPORT,
3931 'url' => 'https://woocommerce.com/my-account/contact-support/?select=woopayments',
3932 ),
3933 ),
3934 'tags' => array( self::TAG_MADE_IN_WOO, self::TAG_PREFERRED ),
3935 ),
3936 self::AMAZON_PAY => array(
3937 '_type' => self::TYPE_EXPRESS_CHECKOUT,
3938 'title' => esc_html__( 'Amazon Pay', 'woocommerce' ),
3939 'description' => esc_html__( 'Enable a familiar, fast checkout for hundreds of millions of active Amazon customers globally.', 'woocommerce' ),
3940 'image' => plugins_url( 'assets/images/onboarding/amazonpay.png', WC_PLUGIN_FILE ),
3941 'icon' => plugins_url( 'assets/images/onboarding/icons/amazonpay.svg', WC_PLUGIN_FILE ),
3942 'plugin' => array(
3943 '_type' => self::PLUGIN_TYPE_WPORG,
3944 'slug' => 'woocommerce-gateway-amazon-payments-advanced',
3945 ),
3946 'links' => array(
3947 array(
3948 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
3949 'url' => 'https://pay.amazon.com/help/201212280',
3950 ),
3951 array(
3952 '_type' => PaymentsProviders::LINK_TYPE_ABOUT,
3953 'url' => 'https://woocommerce.com/products/pay-with-amazon/',
3954 ),
3955 array(
3956 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
3957 'url' => 'https://pay.amazon.com/help/201212430',
3958 ),
3959 array(
3960 '_type' => PaymentsProviders::LINK_TYPE_DOCS,
3961 'url' => 'https://woocommerce.com/document/amazon-payments-advanced/',
3962 ),
3963 array(
3964 '_type' => PaymentsProviders::LINK_TYPE_SUPPORT,
3965 'url' => 'https://woocommerce.com/my-account/contact-support/?select=pay-with-amazon',
3966 ),
3967 ),
3968 'tags' => array( self::TAG_MADE_IN_WOO ),
3969 ),
3970 self::AFFIRM => array(
3971 '_type' => self::TYPE_BNPL,
3972 'title' => esc_html__( 'Affirm', 'woocommerce' ),
3973 'description' => esc_html__( 'Affirm\'s tailored Buy Now Pay Later programs remove price as a barrier, turning browsers into buyers, increasing average order value, and expanding your customer base.', 'woocommerce' ),
3974 'image' => plugins_url( 'assets/images/onboarding/affirm.png', WC_PLUGIN_FILE ),
3975 'icon' => plugins_url( 'assets/images/onboarding/icons/affirm.svg', WC_PLUGIN_FILE ),
3976 'plugin' => array(
3977 '_type' => self::PLUGIN_TYPE_WPORG,
3978 'slug' => 'woocommerce-gateway-affirm',
3979 ),
3980 'links' => array(
3981 array(
3982 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
3983 'url' => 'https://www.affirm.com/business',
3984 ),
3985 array(
3986 '_type' => PaymentsProviders::LINK_TYPE_ABOUT,
3987 'url' => 'https://woocommerce.com/products/woocommerce-gateway-affirm/',
3988 ),
3989 array(
3990 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
3991 'url' => 'https://www.affirm.com/terms',
3992 ),
3993 array(
3994 '_type' => PaymentsProviders::LINK_TYPE_DOCS,
3995 'url' => 'https://woocommerce.com/document/woocommerce-gateway-affirm/',
3996 ),
3997 array(
3998 '_type' => PaymentsProviders::LINK_TYPE_SUPPORT,
3999 'url' => 'https://woocommerce.com/my-account/contact-support/?select=woocommerce-gateway-affirm',
4000 ),
4001 ),
4002 'tags' => array( self::TAG_MADE_IN_WOO ),
4003 ),
4004 self::AFTERPAY => array(
4005 '_type' => self::TYPE_BNPL,
4006 'title' => esc_html__( 'Afterpay', 'woocommerce' ),
4007 'description' => esc_html__( 'Afterpay allows customers to receive products immediately and pay for purchases over four installments, always interest-free.', 'woocommerce' ),
4008 'image' => plugins_url( 'assets/images/onboarding/afterpay.png', WC_PLUGIN_FILE ),
4009 'icon' => plugins_url( 'assets/images/onboarding/icons/afterpay-clearpay.svg', WC_PLUGIN_FILE ),
4010 'plugin' => array(
4011 '_type' => self::PLUGIN_TYPE_WPORG,
4012 'slug' => 'afterpay-gateway-for-woocommerce',
4013 ),
4014 'links' => array(
4015 array(
4016 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
4017 'url' => 'https://www.afterpay.com/for-retailers',
4018 ),
4019 array(
4020 '_type' => PaymentsProviders::LINK_TYPE_ABOUT,
4021 'url' => 'https://woocommerce.com/products/afterpay/',
4022 ),
4023 array(
4024 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
4025 'url' => 'https://www.afterpay.com/terms-of-service',
4026 ),
4027 array(
4028 '_type' => PaymentsProviders::LINK_TYPE_DOCS,
4029 'url' => 'https://woocommerce.com/document/afterpay/',
4030 ),
4031 array(
4032 '_type' => PaymentsProviders::LINK_TYPE_SUPPORT,
4033 'url' => 'https://woocommerce.com/my-account/contact-support/?select=afterpay',
4034 ),
4035 ),
4036 ),
4037 self::CLEARPAY => array(
4038 '_type' => self::TYPE_BNPL,
4039 'title' => esc_html__( 'Clearpay', 'woocommerce' ),
4040 'description' => esc_html__( 'Clearpay allows customers to receive products immediately and pay for purchases over four installments, always interest-free.', 'woocommerce' ),
4041 'icon' => plugins_url( 'assets/images/onboarding/icons/afterpay-clearpay.svg', WC_PLUGIN_FILE ),
4042 'plugin' => array(
4043 '_type' => self::PLUGIN_TYPE_WPORG,
4044 'slug' => 'clearpay-gateway-for-woocommerce',
4045 ),
4046 'links' => array(
4047 array(
4048 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
4049 'url' => 'https://www.clearpay.co.uk/en-GB/for-retailers',
4050 ),
4051 array(
4052 '_type' => PaymentsProviders::LINK_TYPE_ABOUT,
4053 'url' => 'https://woocommerce.com/products/clearpay/',
4054 ),
4055 array(
4056 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
4057 'url' => 'https://www.clearpay.co.uk/terms-of-service',
4058 ),
4059 array(
4060 '_type' => PaymentsProviders::LINK_TYPE_DOCS,
4061 'url' => 'https://woocommerce.com/document/clearpay/',
4062 ),
4063 array(
4064 '_type' => PaymentsProviders::LINK_TYPE_SUPPORT,
4065 'url' => 'https://woocommerce.com/my-account/contact-support/?select=clearpay',
4066 ),
4067 ),
4068 ),
4069 self::KLARNA => array(
4070 '_type' => self::TYPE_BNPL,
4071 'title' => esc_html__( 'Klarna Payments', 'woocommerce' ),
4072 'description' => esc_html__( 'Choose the payment that you want, pay now, pay later or slice it. No credit card numbers, no passwords, no worries.', 'woocommerce' ),
4073 'image' => plugins_url( 'assets/images/onboarding/klarna-black.png', WC_PLUGIN_FILE ),
4074 'icon' => plugins_url( 'assets/images/onboarding/icons/klarna.svg', WC_PLUGIN_FILE ),
4075 'plugin' => array(
4076 '_type' => self::PLUGIN_TYPE_WPORG,
4077 'slug' => 'klarna-payments-for-woocommerce',
4078 ),
4079 'links' => array(
4080 array(
4081 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
4082 'url' => 'https://www.klarna.com/us/business/payment-methods/',
4083 ),
4084 array(
4085 '_type' => PaymentsProviders::LINK_TYPE_ABOUT,
4086 'url' => 'https://woocommerce.com/products/klarna-payments/',
4087 ),
4088 array(
4089 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
4090 'url' => 'https://www.klarna.com/us/legal/',
4091 ),
4092 array(
4093 '_type' => PaymentsProviders::LINK_TYPE_DOCS,
4094 'url' => 'https://woocommerce.com/document/klarna-payments/',
4095 ),
4096 array(
4097 '_type' => PaymentsProviders::LINK_TYPE_SUPPORT,
4098 'url' => 'https://woocommerce.com/my-account/contact-support/?select=klarna-payments',
4099 ),
4100 ),
4101 ),
4102 self::KLARNA_CHECKOUT => array(
4103 '_type' => self::TYPE_PSP,
4104 'title' => esc_html__( 'Klarna Checkout', 'woocommerce' ),
4105 'description' => esc_html__( 'A full checkout experience embedded on your site that includes all popular payment methods (Pay Now, Pay Later, Financing, Installments).', 'woocommerce' ),
4106 'icon' => plugins_url( 'assets/images/onboarding/icons/klarna-checkout.svg', WC_PLUGIN_FILE ),
4107 'plugin' => array(
4108 '_type' => self::PLUGIN_TYPE_WPORG,
4109 'slug' => 'klarna-checkout-for-woocommerce',
4110 ),
4111 'links' => array(
4112 array(
4113 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
4114 'url' => 'https://www.klarna.com/us/business/payment-methods/',
4115 ),
4116 array(
4117 '_type' => PaymentsProviders::LINK_TYPE_ABOUT,
4118 'url' => 'https://woocommerce.com/products/klarna-checkout/',
4119 ),
4120 array(
4121 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
4122 'url' => 'https://www.klarna.com/us/legal/',
4123 ),
4124 array(
4125 '_type' => PaymentsProviders::LINK_TYPE_DOCS,
4126 'url' => 'https://woocommerce.com/document/klarna-checkout/',
4127 ),
4128 array(
4129 '_type' => PaymentsProviders::LINK_TYPE_SUPPORT,
4130 'url' => 'https://woocommerce.com/my-account/contact-support/?select=klarna-checkout',
4131 ),
4132 ),
4133 ),
4134 self::HELIOPAY => array(
4135 '_type' => self::TYPE_CRYPTO,
4136 'title' => esc_html__( 'Helio Pay', 'woocommerce' ),
4137 'description' => esc_html__( 'Effortlessly accept cryptocurrency payments in your store.', 'woocommerce' ),
4138 'icon' => plugins_url( 'assets/images/onboarding/icons/heliopay.png', WC_PLUGIN_FILE ),
4139 'plugin' => array(
4140 '_type' => self::PLUGIN_TYPE_WPORG,
4141 'slug' => 'helio',
4142 ),
4143 'links' => array(
4144 array(
4145 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
4146 'url' => 'https://www.hel.io/pricing',
4147 ),
4148 array(
4149 '_type' => PaymentsProviders::LINK_TYPE_ABOUT,
4150 'url' => 'https://woocommerce.com/products/helio-pay/',
4151 ),
4152 array(
4153 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
4154 'url' => 'https://info.docs.hel.io/terms-of-service',
4155 ),
4156 array(
4157 '_type' => PaymentsProviders::LINK_TYPE_DOCS,
4158 'url' => 'https://woocommerce.com/document/helio-pay/',
4159 ),
4160 array(
4161 '_type' => PaymentsProviders::LINK_TYPE_SUPPORT,
4162 'url' => 'https://woocommerce.com/my-account/contact-support/?select=helio-pay',
4163 ),
4164 ),
4165 ),
4166 self::MONEI => array(
4167 '_type' => self::TYPE_PSP,
4168 'title' => esc_html__( 'MONEI', 'woocommerce' ),
4169 'description' => esc_html__( 'Accept Cards, Apple Pay, Google Pay, Bizum, PayPal, and many more payment methods in your store.', 'woocommerce' ),
4170 'icon' => plugins_url( 'assets/images/onboarding/icons/monei.svg', WC_PLUGIN_FILE ),
4171 'plugin' => array(
4172 '_type' => self::PLUGIN_TYPE_WPORG,
4173 'slug' => 'monei',
4174 ),
4175 'links' => array(
4176 array(
4177 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
4178 'url' => 'https://monei.com/pricing/',
4179 ),
4180 array(
4181 '_type' => PaymentsProviders::LINK_TYPE_ABOUT,
4182 'url' => 'https://monei.com/',
4183 ),
4184 array(
4185 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
4186 'url' => 'https://monei.com/legal-notice/',
4187 ),
4188 array(
4189 '_type' => PaymentsProviders::LINK_TYPE_DOCS,
4190 'url' => 'https://support.monei.com/hc/en-us/articles/360017801677-Get-started-with-MONEI',
4191 ),
4192 array(
4193 '_type' => PaymentsProviders::LINK_TYPE_SUPPORT,
4194 'url' => 'https://support.monei.com/hc/en-us/requests/new',
4195 ),
4196 ),
4197 ),
4198 self::EWAY => array(
4199 '_type' => self::TYPE_PSP,
4200 'title' => esc_html__( 'Eway', 'woocommerce' ),
4201 'description' => esc_html__( 'Take credit card payments securely via Eway keeping customers on your site.', 'woocommerce' ),
4202 'icon' => plugins_url( 'assets/images/onboarding/icons/eway.svg', WC_PLUGIN_FILE ),
4203 'plugin' => array(
4204 '_type' => self::PLUGIN_TYPE_WPORG,
4205 'slug' => 'woocommerce-gateway-eway',
4206 ),
4207 'links' => array(
4208 array(
4209 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
4210 'url' => 'https://www.eway.com.au/online-payments/#pricing',
4211 ),
4212 array(
4213 '_type' => PaymentsProviders::LINK_TYPE_ABOUT,
4214 'url' => 'https://woocommerce.com/products/eway/',
4215 ),
4216 array(
4217 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
4218 'url' => 'https://www.eway.com.au/docs/eWAY-Terms-and-Conditions-AU.pdf',
4219 ),
4220 array(
4221 '_type' => PaymentsProviders::LINK_TYPE_DOCS,
4222 'url' => 'https://woocommerce.com/document/eway/',
4223 ),
4224 array(
4225 '_type' => PaymentsProviders::LINK_TYPE_SUPPORT,
4226 'url' => 'https://woocommerce.com/my-account/contact-support/?select=eway',
4227 ),
4228 ),
4229 ),
4230 self::VISA => array(
4231 '_type' => self::TYPE_PSP,
4232 'title' => esc_html__( 'Visa Acceptance Solutions', 'woocommerce' ),
4233 'description' => esc_html__( 'Accept payments on your WooCommerce store securely.', 'woocommerce' ),
4234 'icon' => plugins_url( 'assets/images/onboarding/icons/visa-acceptance-solutions.svg', WC_PLUGIN_FILE ),
4235 'plugin' => array(
4236 '_type' => self::PLUGIN_TYPE_WPORG,
4237 'slug' => 'visa-acceptance-solutions',
4238 ),
4239 'links' => array(
4240 array(
4241 '_type' => PaymentsProviders::LINK_TYPE_ABOUT,
4242 'url' => 'https://woocommerce.com/products/visa-acceptance-solutions/',
4243 ),
4244 array(
4245 '_type' => PaymentsProviders::LINK_TYPE_DOCS,
4246 'url' => 'https://woocommerce.com/document/visa-acceptance-solutions/',
4247 ),
4248 array(
4249 '_type' => PaymentsProviders::LINK_TYPE_SUPPORT,
4250 'url' => 'https://woocommerce.com/my-account/contact-support/?select=visa-acceptance-solutions',
4251 ),
4252 ),
4253 ),
4254 self::NGENIUS => array(
4255 '_type' => self::TYPE_PSP,
4256 'title' => esc_html__( 'N-Genius Online by Network', 'woocommerce' ),
4257 'description' => esc_html__( 'Power your business with N-Genius Online—smart, secure, and built for the future', 'woocommerce' ),
4258 'icon' => plugins_url( 'assets/images/onboarding/icons/ngenius.svg', WC_PLUGIN_FILE ),
4259 'plugin' => array(
4260 '_type' => self::PLUGIN_TYPE_WPORG,
4261 'slug' => 'ngenius',
4262 ),
4263 'links' => array(
4264 array(
4265 '_type' => PaymentsProviders::LINK_TYPE_ABOUT,
4266 'url' => 'https://woocommerce.com/products/ngenius/',
4267 ),
4268 array(
4269 '_type' => PaymentsProviders::LINK_TYPE_DOCS,
4270 'url' => 'https://woocommerce.com/document/ngenius/',
4271 ),
4272 ),
4273 ),
4274 self::MYPOS => array(
4275 '_type' => self::TYPE_PSP,
4276 'icon' => plugins_url( 'assets/images/onboarding/icons/mypos.svg', WC_PLUGIN_FILE ),
4277 'plugin' => array(
4278 '_type' => self::PLUGIN_TYPE_WPORG,
4279 'slug' => 'mypos-virtual-for-woocommerce',
4280 ),
4281 ),
4282 self::EVERGREEN => array(
4283 '_type' => self::TYPE_PSP,
4284 // Evergreen does not have an icon on .org. Will be default for now.
4285 'plugin' => array(
4286 '_type' => self::PLUGIN_TYPE_WPORG,
4287 'slug' => 'evergreen-payments-northwest-gateway-wc',
4288 ),
4289 ),
4290 self::GOCARDLESS => array(
4291 '_type' => self::TYPE_PSP,
4292 'title' => esc_html__( 'GoCardless', 'woocommerce' ),
4293 'description' => esc_html__( 'Accept Direct Debit, ACH Pull, and open banking payments.', 'woocommerce' ),
4294 'icon' => plugins_url( 'assets/images/onboarding/icons/gocardless.svg', WC_PLUGIN_FILE ),
4295 'plugin' => array(
4296 '_type' => self::PLUGIN_TYPE_WPORG,
4297 'slug' => 'woocommerce-gateway-gocardless',
4298 ),
4299 'links' => array(
4300 array(
4301 '_type' => PaymentsProviders::LINK_TYPE_PRICING,
4302 'url' => 'https://gocardless.com/pricing/',
4303 ),
4304 array(
4305 '_type' => PaymentsProviders::LINK_TYPE_ABOUT,
4306 'url' => 'https://woocommerce.com/products/gocardless/',
4307 ),
4308 array(
4309 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
4310 'url' => 'https://gocardless.com/legal/',
4311 ),
4312 array(
4313 '_type' => PaymentsProviders::LINK_TYPE_DOCS,
4314 'url' => 'https://woocommerce.com/document/gocardless/',
4315 ),
4316 array(
4317 '_type' => PaymentsProviders::LINK_TYPE_SUPPORT,
4318 'url' => 'https://woocommerce.com/my-account/contact-support/?select=gocardless',
4319 ),
4320 ),
4321 ),
4322 self::NEXI_CHECKOUT => array(
4323 '_type' => self::TYPE_PSP,
4324 'title' => esc_html__( 'Nexi Checkout', 'woocommerce' ),
4325 'description' => esc_html__( 'A fully embedded checkout, with all popular payment methods, for more sales and less abandoned shopping carts.', 'woocommerce' ),
4326 'icon' => plugins_url( 'assets/images/onboarding/icons/nexi.svg', WC_PLUGIN_FILE ),
4327 'plugin' => array(
4328 '_type' => self::PLUGIN_TYPE_WPORG,
4329 'slug' => 'dibs-easy-for-woocommerce',
4330 ),
4331 'links' => array(
4332 array(
4333 '_type' => PaymentsProviders::LINK_TYPE_ABOUT,
4334 'url' => 'https://woocommerce.com/products/nexi-checkout/',
4335 ),
4336 array(
4337 '_type' => PaymentsProviders::LINK_TYPE_TERMS,
4338 'url' => 'https://support.nets.eu/document/nets-easy-general-terms-and-conditions-2022',
4339 ),
4340 array(
4341 '_type' => PaymentsProviders::LINK_TYPE_DOCS,
4342 'url' => 'https://woocommerce.com/document/nexi-checkout/',
4343 ),
4344 array(
4345 '_type' => PaymentsProviders::LINK_TYPE_SUPPORT,
4346 'url' => 'https://developer.nexigroup.com/nexi-checkout/en-EU/support/',
4347 ),
4348 ),
4349 ),
4350 self::COINBASE => array(
4351 '_type' => self::TYPE_CRYPTO,
4352 'icon' => plugins_url( 'assets/images/onboarding/icons/coinbase.svg', WC_PLUGIN_FILE ),
4353 'plugin' => array(
4354 '_type' => self::PLUGIN_TYPE_WPORG,
4355 'slug' => 'coinbase-commerce',
4356 ),
4357 ),
4358 self::AUTHORIZE_NET => array(
4359 '_type' => self::TYPE_PSP,
4360 'icon' => plugins_url( 'assets/images/onboarding/icons/authorize.svg', WC_PLUGIN_FILE ),
4361 'plugin' => array(
4362 '_type' => self::PLUGIN_TYPE_WPORG,
4363 'slug' => 'woocommerce-gateway-authorize-net-cim',
4364 ),
4365 ),
4366 self::BILLIE => array(
4367 '_type' => self::TYPE_PSP,
4368 'title' => esc_html__( 'Billie', 'woocommerce' ),
4369 'description' => esc_html__( 'Billie is the leading provider of Buy Now, Pay Later payment methods for B2B stores.', 'woocommerce' ),
4370 'icon' => plugins_url( 'assets/images/onboarding/icons/billie.svg', WC_PLUGIN_FILE ),
4371 'plugin' => array(
4372 '_type' => self::PLUGIN_TYPE_WPORG,
4373 'slug' => 'billie-for-woocommerce',
4374 ),
4375 ),
4376 self::BOLT => array(
4377 '_type' => self::TYPE_PSP,
4378 'icon' => plugins_url( 'assets/images/onboarding/icons/bolt.svg', WC_PLUGIN_FILE ),
4379 'plugin' => array(
4380 '_type' => self::PLUGIN_TYPE_WPORG,
4381 'slug' => 'bolt-checkout-woocommerce',
4382 ),
4383 ),
4384 self::DEPAY => array(
4385 '_type' => self::TYPE_PSP,
4386 'icon' => plugins_url( 'assets/images/onboarding/icons/depay.svg', WC_PLUGIN_FILE ),
4387 'plugin' => array(
4388 '_type' => self::PLUGIN_TYPE_WPORG,
4389 'slug' => 'depay-payments-for-woocommerce',
4390 ),
4391 ),
4392 self::ELAVON => array(
4393 '_type' => self::TYPE_PSP,
4394 'icon' => plugins_url( 'assets/images/onboarding/icons/elavon.svg', WC_PLUGIN_FILE ),
4395 'plugin' => array(
4396 '_type' => self::PLUGIN_TYPE_WPORG,
4397 'slug' => 'woocommerce-gateway-converge',
4398 ),
4399 ),
4400 self::FORTISPAY => array(
4401 '_type' => self::TYPE_PSP,
4402 'icon' => plugins_url( 'assets/images/onboarding/icons/fortispay.svg', WC_PLUGIN_FILE ),
4403 'plugin' => array(
4404 '_type' => self::PLUGIN_TYPE_WPORG,
4405 'slug' => 'fortis-for-woocommerce',
4406 ),
4407 ),
4408 self::PAYPAL_ZETTLE => array(
4409 '_type' => self::TYPE_PSP,
4410 'icon' => plugins_url( 'assets/images/onboarding/icons/paypal-zettle.svg', WC_PLUGIN_FILE ),
4411 'plugin' => array(
4412 '_type' => self::PLUGIN_TYPE_WPORG,
4413 'slug' => 'zettle-pos-integration',
4414 ),
4415 ),
4416 self::RAPYD => array(
4417 '_type' => self::TYPE_PSP,
4418 'icon' => plugins_url( 'assets/images/onboarding/icons/rapyd.svg', WC_PLUGIN_FILE ),
4419 'plugin' => array(
4420 '_type' => self::PLUGIN_TYPE_WPORG,
4421 'slug' => 'rapyd-payments-plugin-for-woocommerce',
4422 ),
4423 ),
4424 self::PAYPAL_BRAINTREE => array(
4425 '_type' => self::TYPE_PSP,
4426 'icon' => plugins_url( 'assets/images/onboarding/icons/paypal-braintree.svg', WC_PLUGIN_FILE ),
4427 'plugin' => array(
4428 '_type' => self::PLUGIN_TYPE_WPORG,
4429 'slug' => 'woocommerce-gateway-paypal-powered-by-braintree',
4430 ),
4431 ),
4432 );
4433
4434 return $this->extensions_base_details_memo;
4435 }
4436
4437 /**
4438 * Get the base details for a specific extension.
4439 *
4440 * @see self::standardize_extension_details() for the supported entries.
4441 *
4442 * @param string $extension_id The extension ID.
4443 *
4444 * @return ?array The extension base details.
4445 * Null if the extension is not one we have details for.
4446 */
4447 private function get_extension_base_details( string $extension_id ): ?array {
4448 $extensions = $this->get_all_extensions_base_details();
4449 if ( ! isset( $extensions[ $extension_id ] ) ) {
4450 return null;
4451 }
4452
4453 return $extensions[ $extension_id ];
4454 }
4455
4456 /**
4457 * Standardize the details for an extension.
4458 *
4459 * Ensures that the details array has all the required fields, and fills in any missing optional fields with defaults.
4460 * We also enforce a consistent order for the fields.
4461 *
4462 * @param array $extension_details The extension details.
4463 *
4464 * @return array The standardized extension details.
4465 */
4466 private function standardize_extension_details( array $extension_details ): array {
4467 $standardized = array();
4468
4469 // Required fields.
4470 $standardized['id'] = $extension_details['id'];
4471 $standardized['_priority'] = $extension_details['_priority'];
4472 $standardized['_type'] = $extension_details['_type'];
4473 $standardized['plugin'] = $extension_details['plugin'];
4474
4475 // Optional fields.
4476 $standardized['title'] = $extension_details['title'] ?? '';
4477 $standardized['description'] = $extension_details['description'] ?? '';
4478 $standardized['image'] = $extension_details['image'] ?? '';
4479 $standardized['icon'] = $extension_details['icon'] ?? '';
4480 $standardized['links'] = $extension_details['links'] ?? array();
4481 $standardized['tags'] = $extension_details['tags'] ?? array();
4482 $standardized['_incentive'] = $extension_details['_incentive'] ?? null;
4483
4484 return $standardized;
4485 }
4486
4487 /**
4488 * Based on the WC onboarding profile, determine if the merchant is selling online.
4489 *
4490 * If the user skipped the profiler (no data points provided), we assume they are selling online.
4491 *
4492 * @return bool True if the merchant is selling online, false otherwise.
4493 */
4494 private function is_merchant_selling_online(): bool {
4495 /*
4496 * We consider a merchant to be selling online if:
4497 * - The profiler was skipped (no data points provided).
4498 * OR
4499 * - The merchant answered 'Which one of these best describes you?' with 'I’m already selling' AND:
4500 * - Didn't answer to the 'Are you selling online?' question.
4501 * OR
4502 * - Answered the 'Are you selling online?' question with either:
4503 * - 'Yes, I’m selling online'.
4504 * OR
4505 * - 'I’m selling both online and offline'.
4506 *
4507 * @see plugins/woocommerce/client/admin/client/core-profiler/pages/UserProfile.tsx for the values.
4508 */
4509 $onboarding_profile = get_option( OnboardingProfile::DATA_OPTION, array() );
4510 if (
4511 ! isset( $onboarding_profile['business_choice'] ) ||
4512 (
4513 'im_already_selling' === $onboarding_profile['business_choice'] &&
4514 (
4515 ! isset( $onboarding_profile['selling_online_answer'] ) ||
4516 (
4517 'yes_im_selling_online' === $onboarding_profile['selling_online_answer'] ||
4518 'im_selling_both_online_and_offline' === $onboarding_profile['selling_online_answer']
4519 )
4520 )
4521 )
4522 ) {
4523 return false;
4524 }
4525
4526 return true;
4527 }
4528
4529 /**
4530 * Based on the WC onboarding profile, determine if the merchant is selling offline.
4531 *
4532 * If the user skipped the profiler (no data points provided), we assume they are NOT selling offline.
4533 *
4534 * @return bool True if the merchant is selling offline, false otherwise.
4535 */
4536 private function is_merchant_selling_offline(): bool {
4537 /*
4538 * We consider a merchant to be selling offline if:
4539 * - The profiler was NOT skipped (data points provided).
4540 * AND
4541 * - The merchant answered 'Which one of these best describes you?' with 'I’m already selling' AND:
4542 * - Answered the 'Are you selling online?' question with either:
4543 * - 'No, I’m selling offline'.
4544 * OR
4545 * - 'I’m selling both online and offline'.
4546 *
4547 * @see plugins/woocommerce/client/admin/client/core-profiler/pages/UserProfile.tsx for the values.
4548 */
4549 $onboarding_profile = get_option( OnboardingProfile::DATA_OPTION, array() );
4550 if (
4551 isset( $onboarding_profile['business_choice'] ) &&
4552 (
4553 'im_already_selling' === $onboarding_profile['business_choice'] &&
4554 (
4555 isset( $onboarding_profile['selling_online_answer'] ) &&
4556 (
4557 'no_im_selling_offline' === $onboarding_profile['selling_online_answer'] ||
4558 'im_selling_both_online_and_offline' === $onboarding_profile['selling_online_answer']
4559 )
4560 )
4561 )
4562 ) {
4563 return true;
4564 }
4565
4566 return false;
4567 }
4568 }
4569