<?php /** * The save payment methods module services. * * @package WooCommerce\PayPalCommerce\SavePaymentMethods */ declare(strict_types=1); namespace WooCommerce\PayPalCommerce\SavePaymentMethods; use WooCommerce\PayPalCommerce\SavePaymentMethods\Endpoint\CreatePaymentToken; use WooCommerce\PayPalCommerce\SavePaymentMethods\Endpoint\CreateSetupToken; use WooCommerce\PayPalCommerce\SavePaymentMethods\Endpoint\CreatePaymentTokenForGuest; use WooCommerce\PayPalCommerce\SavePaymentMethods\Helper\SavePaymentMethodsApplies; use WooCommerce\PayPalCommerce\Vendor\Psr\Container\ContainerInterface; return array( 'save-payment-methods.eligible' => static function ( ContainerInterface $container ): bool { $save_payment_methods_applies = $container->get( 'save-payment-methods.helpers.save-payment-methods-applies' ); assert( $save_payment_methods_applies instanceof SavePaymentMethodsApplies ); return $save_payment_methods_applies->for_country_currency(); }, 'save-payment-methods.helpers.save-payment-methods-applies' => static function ( ContainerInterface $container ) : SavePaymentMethodsApplies { return new SavePaymentMethodsApplies( $container->get( 'save-payment-methods.supported-country-currency-matrix' ), $container->get( 'api.shop.currency.getter' ), $container->get( 'api.shop.country' ) ); }, 'save-payment-methods.supported-country-currency-matrix' => static function ( ContainerInterface $container ) : array { $default_currencies = array( 'AUD', 'BRL', 'CAD', 'CHF', 'CZK', 'DKK', 'EUR', 'GBP', 'HUF', 'ILS', 'JPY', 'MXN', 'NOK', 'NZD', 'PHP', 'PLN', 'SEK', 'THB', 'TWD', 'USD', ); return apply_filters( 'woocommerce_paypal_payments_save_payment_methods_supported_country_currency_matrix', array( 'AU' => $default_currencies, 'AT' => $default_currencies, 'BE' => $default_currencies, 'BG' => $default_currencies, 'CA' => $default_currencies, 'CN' => $default_currencies, 'CY' => $default_currencies, 'CZ' => $default_currencies, 'DK' => $default_currencies, 'EE' => $default_currencies, 'FI' => $default_currencies, 'FR' => $default_currencies, 'DE' => $default_currencies, 'GR' => $default_currencies, 'HU' => $default_currencies, 'IE' => $default_currencies, 'IT' => $default_currencies, 'LV' => $default_currencies, 'LI' => $default_currencies, 'LT' => $default_currencies, 'LU' => $default_currencies, 'MT' => $default_currencies, 'NO' => $default_currencies, 'NL' => $default_currencies, 'PL' => $default_currencies, 'PT' => $default_currencies, 'RO' => $default_currencies, 'SK' => $default_currencies, 'SI' => $default_currencies, 'ES' => $default_currencies, 'SE' => $default_currencies, 'GB' => $default_currencies, 'US' => $default_currencies, ) ); }, 'save-payment-methods.module.url' => static function ( ContainerInterface $container ): string { /** * The path cannot be false. * * @psalm-suppress PossiblyFalseArgument */ return plugins_url( '/modules/ppcp-save-payment-methods/', dirname( realpath( __FILE__ ), 3 ) . '/woocommerce-paypal-payments.php' ); }, 'save-payment-methods.endpoint.create-setup-token' => static function ( ContainerInterface $container ): CreateSetupToken { return new CreateSetupToken( $container->get( 'button.request-data' ), $container->get( 'api.endpoint.payment-method-tokens' ) ); }, 'save-payment-methods.endpoint.create-payment-token' => static function ( ContainerInterface $container ): CreatePaymentToken { return new CreatePaymentToken( $container->get( 'button.request-data' ), $container->get( 'api.endpoint.payment-method-tokens' ), $container->get( 'vaulting.wc-payment-tokens' ) ); }, 'save-payment-methods.endpoint.create-payment-token-for-guest' => static function ( ContainerInterface $container ): CreatePaymentTokenForGuest { return new CreatePaymentTokenForGuest( $container->get( 'button.request-data' ), $container->get( 'api.endpoint.payment-method-tokens' ) ); }, );