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