Add Paystack as fallback gateway (https://github.com/woocommerce/woocommerce-admin/pull/7025)
* Add paystack to fallback payment gateways * Add changelog entry * Fix CBD rules
This commit is contained in:
parent
b3c6d25daa
commit
90710e15f4
|
@ -89,6 +89,7 @@ Release and roadmap notes are available on the [WooCommerce Developers Blog](htt
|
||||||
- Add: Free extension list powered by remote config #6952
|
- Add: Free extension list powered by remote config #6952
|
||||||
- Add: Add PayPal to fallback payment gateways #7001
|
- Add: Add PayPal to fallback payment gateways #7001
|
||||||
- Add: Add a data store for WC Payments REST APIs #6918
|
- Add: Add a data store for WC Payments REST APIs #6918
|
||||||
|
- Add: Add Paystack as fallback gateway #7025
|
||||||
- Dev: Update package-lock to fix versioning of local packages. #6843
|
- Dev: Update package-lock to fix versioning of local packages. #6843
|
||||||
- Dev: Use rule processing for remote payment methods #6830
|
- Dev: Use rule processing for remote payment methods #6830
|
||||||
- Dev: Update E2E jest config, so it correctly creates screenshots on failure. #6858
|
- Dev: Update E2E jest config, so it correctly creates screenshots on failure. #6858
|
||||||
|
|
|
@ -20,16 +20,6 @@ class DefaultPaymentGateways {
|
||||||
* @return array Default specs.
|
* @return array Default specs.
|
||||||
*/
|
*/
|
||||||
public static function get_all() {
|
public static function get_all() {
|
||||||
$stripe_countries = OnboardingTasks::get_stripe_supported_countries();
|
|
||||||
$stripe_countries_rules = array();
|
|
||||||
foreach ( $stripe_countries as $country ) {
|
|
||||||
$stripe_countries_rules[] = (object) array(
|
|
||||||
'type' => 'base_location_country',
|
|
||||||
'value' => $country,
|
|
||||||
'operation' => '=',
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
return array(
|
return array(
|
||||||
array(
|
array(
|
||||||
'key' => 'payfast',
|
'key' => 'payfast',
|
||||||
|
@ -58,10 +48,7 @@ class DefaultPaymentGateways {
|
||||||
'image' => WC()->plugin_url() . '/assets/images/stripe.png',
|
'image' => WC()->plugin_url() . '/assets/images/stripe.png',
|
||||||
'plugins' => array( 'woocommerce-gateway-stripe' ),
|
'plugins' => array( 'woocommerce-gateway-stripe' ),
|
||||||
'is_visible' => array(
|
'is_visible' => array(
|
||||||
(object) array(
|
self::get_rules_for_countries( OnboardingTasks::get_stripe_supported_countries() ),
|
||||||
'type' => 'or',
|
|
||||||
'operands' => $stripe_countries_rules,
|
|
||||||
),
|
|
||||||
(object) array(
|
(object) array(
|
||||||
'type' => 'option',
|
'type' => 'option',
|
||||||
'option_name' => 'woocommerce_onboarding_profile',
|
'option_name' => 'woocommerce_onboarding_profile',
|
||||||
|
@ -70,6 +57,70 @@ class DefaultPaymentGateways {
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
array(
|
||||||
|
'key' => 'paystack',
|
||||||
|
'title' => __( 'Paystack', 'woocommerce-admin' ),
|
||||||
|
'content' => __( 'Paystack helps African merchants accept one-time and recurring payments online with a modern, safe, and secure payment gateway.', 'woocommerce-admin' ),
|
||||||
|
'image' => plugins_url( 'images/onboarding/paystack.png', WC_ADMIN_PLUGIN_FILE ),
|
||||||
|
'plugins' => array( 'woo-paystack' ),
|
||||||
|
'is_visible' => array(
|
||||||
|
self::get_rules_for_countries( array( 'ZA', 'GH', 'NG' ) ),
|
||||||
|
self::get_rules_for_cbd( false ),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get rules that match the store base location to one of the provided countries.
|
||||||
|
*
|
||||||
|
* @param array $countries Array of countries to match.
|
||||||
|
* @return object Rules to match.
|
||||||
|
*/
|
||||||
|
public static function get_rules_for_countries( $countries ) {
|
||||||
|
$rules = array();
|
||||||
|
|
||||||
|
foreach ( $countries as $country ) {
|
||||||
|
$rules[] = (object) array(
|
||||||
|
'type' => 'base_location_country',
|
||||||
|
'value' => $country,
|
||||||
|
'operation' => '=',
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return (object) array(
|
||||||
|
'type' => 'or',
|
||||||
|
'operands' => $rules,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get default rules for CBD based on given argument.
|
||||||
|
*
|
||||||
|
* @param bool $should_have Whether or not the store should have CBD as an industry (true) or not (false).
|
||||||
|
* @return array Rules to match.
|
||||||
|
*/
|
||||||
|
public static function get_rules_for_cbd( $should_have ) {
|
||||||
|
return (object) array(
|
||||||
|
'type' => 'option',
|
||||||
|
'transformers' => array(
|
||||||
|
(object) array(
|
||||||
|
'use' => 'dot_notation',
|
||||||
|
'arguments' => (object) array(
|
||||||
|
'path' => 'industry',
|
||||||
|
),
|
||||||
|
),
|
||||||
|
(object) array(
|
||||||
|
'use' => 'array_column',
|
||||||
|
'arguments' => (object) array(
|
||||||
|
'key' => 'slug',
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'option_name' => 'woocommerce_onboarding_profile',
|
||||||
|
'operation' => $should_have ? 'contains' : '!contains',
|
||||||
|
'value' => 'cbd-other-hemp-derived-products',
|
||||||
|
'default' => array(),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue