Automattic\WooCommerce\Admin\Features\PaymentGatewaySuggestions

DefaultPaymentGateways::get_recommendation_priority()private staticWC 1.0

Get recommendation priority for a given payment gateway by id and country. If country is not supported, return null.

Метод класса: DefaultPaymentGateways{}

Хуков нет.

Возвращает

int|null. Priority. Priority is 0-indexed, so 0 is the highest priority.

Использование

$result = DefaultPaymentGateways::get_recommendation_priority( $gateway_id, $country_code );
$gateway_id(строка) (обязательный)
Payment gateway id.
$country_code(строка) (обязательный)
Store country code.

Код DefaultPaymentGateways::get_recommendation_priority() WC 8.7.0

private static function get_recommendation_priority( $gateway_id, $country_code ) {
	$recommendation_priority_map = array(
		'US' => array(
			'woocommerce_payments',
			'stripe',
			'ppcp-gateway',
			'square_credit_card',
			'amazon_payments_advanced',
			'affirm',
			'afterpay',
			'klarna_payments',
		),
		'CA' => array(
			'woocommerce_payments',
			'stripe',
			'ppcp-gateway',
			'square_credit_card',
			'affirm',
			'afterpay',
			'klarna_payments',
		),
		'AT' => array(
			'woocommerce_payments',
			'stripe',
			'ppcp-gateway',
			'airwallex_main',
			'mollie_wc_gateway_banktransfer',
			'klarna_payments',
			'amazon_payments_advanced',
		),
		'BE' => array(
			'woocommerce_payments',
			'stripe',
			'ppcp-gateway',
			'airwallex_main',
			'mollie_wc_gateway_banktransfer',
			'klarna_payments',
			'amazon_payments_advanced',
		),
		'BG' => array( 'stripe', 'ppcp-gateway' ),
		'HR' => array( 'ppcp-gateway' ),
		'CH' => array(
			'woocommerce_payments',
			'stripe',
			'ppcp-gateway',
			'mollie_wc_gateway_banktransfer',
			'klarna_payments',
		),
		'CY' => array( 'stripe', 'ppcp-gateway', 'amazon_payments_advanced' ),
		'CZ' => array( 'stripe', 'ppcp-gateway' ),
		'DK' => array(
			'stripe',
			'ppcp-gateway',
			'klarna_payments',
			'amazon_payments_advanced',
		),
		'EE' => array( 'stripe', 'ppcp-gateway', 'airwallex_main' ),
		'ES' => array(
			'woocommerce_payments',
			'stripe',
			'ppcp-gateway',
			'mollie_wc_gateway_banktransfer',
			'square_credit_card',
			'klarna_payments',
			'amazon_payments_advanced',
		),
		'FI' => array(
			'stripe',
			'ppcp-gateway',
			'mollie_wc_gateway_banktransfer',
			'kco',
			'klarna_payments',
		),
		'FR' => array(
			'woocommerce_payments',
			'stripe',
			'ppcp-gateway',
			'airwallex_main',
			'mollie_wc_gateway_banktransfer',
			'square_credit_card',
			'klarna_payments',
			'amazon_payments_advanced',
		),
		'DE' => array(
			'woocommerce_payments',
			'stripe',
			'ppcp-gateway',
			'airwallex_main',
			'mollie_wc_gateway_banktransfer',
			'klarna_payments',
			'amazon_payments_advanced',
		),
		'GB' => array(
			'woocommerce_payments',
			'stripe',
			'ppcp-gateway',
			'airwallex_main',
			'mollie_wc_gateway_banktransfer',
			'square_credit_card',
			'klarna_payments',
			'amazon_payments_advanced',
		),
		'GR' => array( 'stripe', 'ppcp-gateway' ),
		'HU' => array( 'stripe', 'ppcp-gateway', 'amazon_payments_advanced' ),
		'IE' => array(
			'woocommerce_payments',
			'stripe',
			'ppcp-gateway',
			'airwallex_main',
			'square_credit_card',
			'amazon_payments_advanced',
		),
		'IT' => array(
			'woocommerce_payments',
			'stripe',
			'ppcp-gateway',
			'airwallex_main',
			'mollie_wc_gateway_banktransfer',
			'klarna_payments',
			'amazon_payments_advanced',
		),
		'LV' => array( 'stripe', 'ppcp-gateway' ),
		'LT' => array( 'stripe', 'ppcp-gateway' ),
		'LU' => array( 'stripe', 'ppcp-gateway', 'amazon_payments_advanced' ),
		'MT' => array( 'stripe', 'ppcp-gateway' ),
		'NL' => array(
			'woocommerce_payments',
			'stripe',
			'ppcp-gateway',
			'airwallex_main',
			'mollie_wc_gateway_banktransfer',
			'klarna_payments',
			'amazon_payments_advanced',
		),
		'NO' => array( 'stripe', 'ppcp-gateway', 'kco', 'klarna_payments' ),
		'PL' => array(
			'woocommerce_payments',
			'stripe',
			'ppcp-gateway',
			'airwallex_main',
			'mollie_wc_gateway_banktransfer',
			'klarna_payments',
		),
		'PT' => array(
			'woocommerce_payments',
			'stripe',
			'ppcp-gateway',
			'amazon_payments_advanced',
		),
		'RO' => array( 'stripe', 'ppcp-gateway' ),
		'SK' => array( 'stripe', 'ppcp-gateway' ),
		'SL' => array( 'stripe', 'ppcp-gateway', 'amazon_payments_advanced' ),
		'SE' => array(
			'stripe',
			'ppcp-gateway',
			'kco',
			'klarna_payments',
			'amazon_payments_advanced',
		),
		'MX' => array(
			'stripe',
			'woo-mercado-pago-custom',
			'ppcp-gateway',
			'klarna_payments',
		),
		'BR' => array( 'stripe', 'woo-mercado-pago-custom', 'ppcp-gateway' ),
		'AR' => array( 'woo-mercado-pago-custom', 'ppcp-gateway' ),
		'BO' => array(),
		'CL' => array( 'woo-mercado-pago-custom', 'ppcp-gateway' ),
		'CO' => array( 'woo-mercado-pago-custom', 'ppcp-gateway' ),
		'EC' => array( 'woo-mercado-pago-custom', 'ppcp-gateway' ),
		'FK' => array(),
		'GF' => array(),
		'GY' => array(),
		'PY' => array(),
		'PE' => array( 'woo-mercado-pago-custom', 'ppcp-gateway' ),
		'SR' => array(),
		'UY' => array( 'woo-mercado-pago-custom', 'ppcp-gateway' ),
		'VE' => array( 'ppcp-gateway' ),
		'AU' => array(
			'woocommerce_payments',
			'stripe',
			'airwallex_main',
			'ppcp-gateway',
			'square_credit_card',
			'afterpay',
			'klarna_payments',
		),
		'NZ' => array(
			'woocommerce_payments',
			'stripe',
			'airwallex_main',
			'ppcp-gateway',
			'klarna_payments',
		),
		'HK' => array(
			'woocommerce_payments',
			'stripe',
			'airwallex_main',
			'ppcp-gateway',
			'payoneer-checkout',
		),
		'JP' => array(
			'stripe',
			'ppcp-gateway',
			'square_credit_card',
			'amazon_payments_advanced',
		),
		'SG' => array( 'woocommerce_payments', 'stripe', 'airwallex_main', 'ppcp-gateway' ),
		'CN' => array( 'airwallex_main', 'ppcp-gateway', 'payoneer-checkout' ),
		'FJ' => array(),
		'GU' => array(),
		'ID' => array( 'stripe', 'ppcp-gateway' ),
		'IN' => array( 'stripe', 'razorpay', 'payubiz', 'ppcp-gateway' ),
		'ZA' => array( 'payfast', 'paystack' ),
		'NG' => array( 'paystack' ),
		'GH' => array( 'paystack' ),
	);

	// If the country code is not in the list, return default priority.
	if ( ! isset( $recommendation_priority_map[ $country_code ] ) ) {
		return self::get_default_recommendation_priority( $gateway_id );
	}

	$index = array_search( $gateway_id, $recommendation_priority_map[ $country_code ], true );

	// If the gateway is not in the list, return the last index + 1.
	if ( false === $index ) {
		return count( $recommendation_priority_map[ $country_code ] );
	}

	return $index;
}