* Add paystack to fallback payment gateways

* Add changelog entry

* Fix CBD rules
This commit is contained in:
Joshua T Flowers 2021-05-25 11:41:56 -04:00 committed by GitHub
parent b3c6d25daa
commit 90710e15f4
2 changed files with 66 additions and 14 deletions

View File

@ -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

View File

@ -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(),
); );
} }