diff --git a/composer.json b/composer.json index 4b8f575d3..28ff674dc 100644 --- a/composer.json +++ b/composer.json @@ -1,7 +1,7 @@ { "name": "skyverge/wc-plugin-framework", "description": "The official SkyVerge WooCommerce plugin framework", - "version": "6.0.0", + "version": "6.0.1", "license": "GPL-3.0", "minimum-stability": "dev", "prefer-stable": true, @@ -35,12 +35,12 @@ "woocommerce/class-sv-wp-admin-message-handler.php" ], "psr-4": { - "SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\": "woocommerce/" + "SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\": "woocommerce/" } }, "autoload-dev": { "psr-4": { - "SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\Tests\\": "tests/" + "SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\Tests\\": "tests/" } }, "config": { diff --git a/package-lock.json b/package-lock.json index 09496183d..0c3cdef4d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "wc-plugin-framework", - "version": "6.0.0", + "version": "6.0.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "wc-plugin-framework", - "version": "6.0.0", + "version": "6.0.1", "license": "GPL-3.0", "devDependencies": { "@parcel/transformer-coffeescript": "^2.13.3", diff --git a/package.json b/package.json index 88fdc661f..04799f729 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wc-plugin-framework", - "version": "6.0.0", + "version": "6.0.1", "title": "WooCommerce Plugin Framework", "author": "SkyVerge Team", "homepage": "https://github.com/skyverge/wc-plugin-framework#readme", diff --git a/tests/TestCase.php b/tests/TestCase.php index d1ab8912f..9c899148d 100644 --- a/tests/TestCase.php +++ b/tests/TestCase.php @@ -1,6 +1,6 @@ get_new_api_instance_with_request( $this->get_new_request_instance( $is_cacheable ) ); @@ -313,7 +313,7 @@ public function provider_is_request_cacheable(): array { * * @throws ReflectionException */ - public function test_get_request_cache_lifetime( int $lifetime, $filter_value = null, int $expected ) { + public function test_get_request_cache_lifetime( int $lifetime, $filter_value, int $expected ) { $api = $this->get_new_api_instance_with_request( $this->get_new_request_instance()->set_cache_lifetime( $lifetime ) ); diff --git a/tests/integration/DependenciesTest.php b/tests/integration/DependenciesTest.php index 100e2fa98..450a488fc 100644 --- a/tests/integration/DependenciesTest.php +++ b/tests/integration/DependenciesTest.php @@ -3,7 +3,7 @@ /** * Tests for the SV_WC_Plugin_Dependencies class. * - * @see \SkyVerge\WooCommerce\PluginFramework\v6_0_0\SV_WC_Plugin_Dependencies + * @see \SkyVerge\WooCommerce\PluginFramework\v6_0_1\SV_WC_Plugin_Dependencies */ class DependenciesTest extends \Codeception\TestCase\WPTestCase { @@ -31,7 +31,7 @@ protected function _after() { /** - * @see \SkyVerge\WooCommerce\PluginFramework\v6_0_0\SV_WC_Plugin_Dependencies::get_active_scripts_optimization_plugins() + * @see \SkyVerge\WooCommerce\PluginFramework\v6_0_1\SV_WC_Plugin_Dependencies::get_active_scripts_optimization_plugins() */ public function test_get_active_scripts_optimization_plugins() { @@ -40,7 +40,7 @@ public function test_get_active_scripts_optimization_plugins() { /** - * @see \SkyVerge\WooCommerce\PluginFramework\v6_0_0\SV_WC_Plugin_Dependencies::is_scripts_optimization_plugin_active() + * @see \SkyVerge\WooCommerce\PluginFramework\v6_0_1\SV_WC_Plugin_Dependencies::is_scripts_optimization_plugin_active() */ public function test_is_scripts_optimization_plugin_active() { diff --git a/tests/integration/HelperTest.php b/tests/integration/HelperTest.php index 5c234f46a..c7f129e4d 100644 --- a/tests/integration/HelperTest.php +++ b/tests/integration/HelperTest.php @@ -1,11 +1,11 @@ assertInstanceOf( '\SkyVerge\WooCommerce\PluginFramework\v6_0_0\SV_WC_Plugin_Dependencies', $this->get_plugin()->get_dependency_handler() ); + $this->assertInstanceOf( '\SkyVerge\WooCommerce\PluginFramework\v6_0_1\SV_WC_Plugin_Dependencies', $this->get_plugin()->get_dependency_handler() ); } @@ -161,7 +161,7 @@ public function test_get_dependency_handler() { */ public function test_get_lifecycle_handler() { - $this->assertInstanceOf( '\SkyVerge\WooCommerce\PluginFramework\v6_0_0\Plugin\Lifecycle', $this->get_plugin()->get_lifecycle_handler() ); + $this->assertInstanceOf( '\SkyVerge\WooCommerce\PluginFramework\v6_0_1\Plugin\Lifecycle', $this->get_plugin()->get_lifecycle_handler() ); } diff --git a/tests/integration/REST_API/Controllers/SettingsTest.php b/tests/integration/REST_API/Controllers/SettingsTest.php index 82bbabfec..2fad6230c 100644 --- a/tests/integration/REST_API/Controllers/SettingsTest.php +++ b/tests/integration/REST_API/Controllers/SettingsTest.php @@ -1,14 +1,14 @@ render_js(); $this->assertStringContainsString( 'function load_gateway_test_plugin_payment_methods_handler', $wc_queued_js ); - $this->assertStringContainsString( 'window.jQuery( document.body ).on( \'sv_wc_payment_methods_handler_v6_0_0_loaded\', load_gateway_test_plugin_payment_methods_handler );', $wc_queued_js ); + $this->assertStringContainsString( 'window.jQuery( document.body ).on( \'sv_wc_payment_methods_handler_v6_0_1_loaded\', load_gateway_test_plugin_payment_methods_handler );', $wc_queued_js ); } diff --git a/tests/integration/payment-gateway/PaymentFormTest.php b/tests/integration/payment-gateway/PaymentFormTest.php index c7c71aafe..bbf4df79a 100644 --- a/tests/integration/payment-gateway/PaymentFormTest.php +++ b/tests/integration/payment-gateway/PaymentFormTest.php @@ -1,11 +1,11 @@ get_plugin()->get_gateway()->get_payment_form_instance()->render_js(); $this->assertStringContainsString( 'function load_test_gateway_payment_form_handler', $wc_queued_js ); - $this->assertStringContainsString( 'window.jQuery( document.body ).on( \'sv_wc_payment_form_handler_v6_0_0_loaded\', load_test_gateway_payment_form_handler );', $wc_queued_js ); + $this->assertStringContainsString( 'window.jQuery( document.body ).on( \'sv_wc_payment_form_handler_v6_0_1_loaded\', load_test_gateway_payment_form_handler );', $wc_queued_js ); } diff --git a/tests/integration/payment-gateway/SV_WC_Payment_Gateway_Payment_Token_Test.php b/tests/integration/payment-gateway/SV_WC_Payment_Gateway_Payment_Token_Test.php index cb9b1feb3..bf9d4e0bb 100644 --- a/tests/integration/payment-gateway/SV_WC_Payment_Gateway_Payment_Token_Test.php +++ b/tests/integration/payment-gateway/SV_WC_Payment_Gateway_Payment_Token_Test.php @@ -1,11 +1,11 @@ invokeArgs( $frontend_instance, [[]] ); $this->assertStringContainsString( 'function load_test_gateway_apple_pay_handler', $wc_queued_js ); - $this->assertStringContainsString( 'window.jQuery( document.body ).on( \'sv_wc_apple_pay_handler_v6_0_0_loaded\', load_test_gateway_apple_pay_handler );', $wc_queued_js ); + $this->assertStringContainsString( 'window.jQuery( document.body ).on( \'sv_wc_apple_pay_handler_v6_0_1_loaded\', load_test_gateway_apple_pay_handler );', $wc_queued_js ); } diff --git a/tests/unit/API/CacheableRequestTraitTest.php b/tests/unit/API/CacheableRequestTraitTest.php index ce95c0dce..f099b541d 100644 --- a/tests/unit/API/CacheableRequestTraitTest.php +++ b/tests/unit/API/CacheableRequestTraitTest.php @@ -1,9 +1,9 @@ \SkyVerge\WooCommerce\PluginFramework\v6_0_0\Country_Helper::class, - PaymentFormContextChecker::class => \SkyVerge\WooCommerce\PluginFramework\v6_0_0\PaymentFormContextChecker::class, + Country_Helper::class => \SkyVerge\WooCommerce\PluginFramework\v6_0_1\Country_Helper::class, + PaymentFormContextChecker::class => \SkyVerge\WooCommerce\PluginFramework\v6_0_1\PaymentFormContextChecker::class, ]; foreach ($aliases as $alias) { diff --git a/tests/unit/HelperTest.php b/tests/unit/HelperTest.php index 759817b0d..74bd0ec65 100644 --- a/tests/unit/HelperTest.php +++ b/tests/unit/HelperTest.php @@ -1,20 +1,20 @@ js_handler_base_class_name ); + return sprintf( '%s_v6_0_1', $this->js_handler_base_class_name ); } diff --git a/woocommerce/Helpers/ArrayHelper.php b/woocommerce/Helpers/ArrayHelper.php index 3e1eaf536..2c5520edd 100644 --- a/woocommerce/Helpers/ArrayHelper.php +++ b/woocommerce/Helpers/ArrayHelper.php @@ -22,7 +22,7 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0\Helpers; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1\Helpers; use ArrayAccess; diff --git a/woocommerce/Helpers/NumberHelper.php b/woocommerce/Helpers/NumberHelper.php index 6452710cf..593a913cc 100644 --- a/woocommerce/Helpers/NumberHelper.php +++ b/woocommerce/Helpers/NumberHelper.php @@ -22,7 +22,7 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0\Helpers; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1\Helpers; class NumberHelper { diff --git a/woocommerce/Helpers/OrderHelper.php b/woocommerce/Helpers/OrderHelper.php index 3d2862234..bf9a2fb62 100644 --- a/woocommerce/Helpers/OrderHelper.php +++ b/woocommerce/Helpers/OrderHelper.php @@ -10,9 +10,9 @@ * @since x.x.x */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0\Helpers; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1\Helpers; -use SkyVerge\WooCommerce\PluginFramework\v6_0_0\Payment_Gateway\Dynamic_Props; +use SkyVerge\WooCommerce\PluginFramework\v6_0_1\Payment_Gateway\Dynamic_Props; /** * OrderHelper class diff --git a/woocommerce/Helpers/PageHelper.php b/woocommerce/Helpers/PageHelper.php index 8267595bb..fc8536b0c 100644 --- a/woocommerce/Helpers/PageHelper.php +++ b/woocommerce/Helpers/PageHelper.php @@ -22,7 +22,7 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0\Helpers; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1\Helpers; class PageHelper { diff --git a/woocommerce/Plugin/Lifecycle.php b/woocommerce/Plugin/Lifecycle.php index 77fa7fbf9..d7b40efdf 100644 --- a/woocommerce/Plugin/Lifecycle.php +++ b/woocommerce/Plugin/Lifecycle.php @@ -22,12 +22,12 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0\Plugin; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1\Plugin; -use SkyVerge\WooCommerce\PluginFramework\v6_0_0\Admin\Notes_Helper; -use SkyVerge\WooCommerce\PluginFramework\v6_0_0\SV_WC_Payment_Gateway_Plugin; -use SkyVerge\WooCommerce\PluginFramework\v6_0_0\SV_WC_Plugin; -use SkyVerge\WooCommerce\PluginFramework\v6_0_0\SV_WC_Plugin_Compatibility; +use SkyVerge\WooCommerce\PluginFramework\v6_0_1\Admin\Notes_Helper; +use SkyVerge\WooCommerce\PluginFramework\v6_0_1\SV_WC_Payment_Gateway_Plugin; +use SkyVerge\WooCommerce\PluginFramework\v6_0_1\SV_WC_Plugin; +use SkyVerge\WooCommerce\PluginFramework\v6_0_1\SV_WC_Plugin_Compatibility; defined( 'ABSPATH' ) or exit; diff --git a/woocommerce/Settings_API/Abstract_Settings.php b/woocommerce/Settings_API/Abstract_Settings.php index e07247045..4ddb56517 100644 --- a/woocommerce/Settings_API/Abstract_Settings.php +++ b/woocommerce/Settings_API/Abstract_Settings.php @@ -22,13 +22,13 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0\Settings_API; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1\Settings_API; -use SkyVerge\WooCommerce\PluginFramework\v6_0_0 as Framework; +use SkyVerge\WooCommerce\PluginFramework\v6_0_1 as Framework; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\Settings_API\\Abstract_Settings' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\Settings_API\\Abstract_Settings' ) ) : /** diff --git a/woocommerce/Settings_API/Control.php b/woocommerce/Settings_API/Control.php index 312634f89..5c9620019 100644 --- a/woocommerce/Settings_API/Control.php +++ b/woocommerce/Settings_API/Control.php @@ -22,13 +22,13 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0\Settings_API; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1\Settings_API; -use SkyVerge\WooCommerce\PluginFramework\v6_0_0 as Framework; +use SkyVerge\WooCommerce\PluginFramework\v6_0_1 as Framework; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\Settings_API\\Control' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\Settings_API\\Control' ) ) : /** diff --git a/woocommerce/Settings_API/Setting.php b/woocommerce/Settings_API/Setting.php index 0ac0f980a..3f9e1e7da 100644 --- a/woocommerce/Settings_API/Setting.php +++ b/woocommerce/Settings_API/Setting.php @@ -22,13 +22,13 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0\Settings_API; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1\Settings_API; -use SkyVerge\WooCommerce\PluginFramework\v6_0_0 as Framework; +use SkyVerge\WooCommerce\PluginFramework\v6_0_1 as Framework; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\Settings_API\\Setting' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\Settings_API\\Setting' ) ) : /** diff --git a/woocommerce/Traits/CanConvertToArrayTrait.php b/woocommerce/Traits/CanConvertToArrayTrait.php index cebcb0a1d..116411527 100644 --- a/woocommerce/Traits/CanConvertToArrayTrait.php +++ b/woocommerce/Traits/CanConvertToArrayTrait.php @@ -22,11 +22,11 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0\Traits; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1\Traits; use ReflectionClass; use ReflectionProperty; -use SkyVerge\WooCommerce\PluginFramework\v6_0_0\Helpers\ArrayHelper; +use SkyVerge\WooCommerce\PluginFramework\v6_0_1\Helpers\ArrayHelper; /** * A trait that allows a given class/object to convert its state to an array. diff --git a/woocommerce/Traits/CanGetNewInstanceTrait.php b/woocommerce/Traits/CanGetNewInstanceTrait.php index a33d1b0c2..7a73ec592 100644 --- a/woocommerce/Traits/CanGetNewInstanceTrait.php +++ b/woocommerce/Traits/CanGetNewInstanceTrait.php @@ -22,11 +22,11 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0\Traits; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1\Traits; defined('ABSPATH') or exit; -if (trait_exists('\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\Traits\\CanGetNewInstanceTrait')) { +if (trait_exists('\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\Traits\\CanGetNewInstanceTrait')) { return; } diff --git a/woocommerce/Traits/IsSingletonTrait.php b/woocommerce/Traits/IsSingletonTrait.php index 3fe24832f..508150551 100644 --- a/woocommerce/Traits/IsSingletonTrait.php +++ b/woocommerce/Traits/IsSingletonTrait.php @@ -22,11 +22,11 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0\Traits; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1\Traits; defined('ABSPATH') or exit; -if (trait_exists('\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\Traits\\IsSingletonTrait')) { +if (trait_exists('\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\Traits\\IsSingletonTrait')) { return; } diff --git a/woocommerce/admin/Notes_Helper.php b/woocommerce/admin/Notes_Helper.php index 8a4b033ab..8f071ce7d 100644 --- a/woocommerce/admin/Notes_Helper.php +++ b/woocommerce/admin/Notes_Helper.php @@ -21,13 +21,13 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0\Admin; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1\Admin; use Automattic\WooCommerce\Admin\Notes as WooCommerce_Admin_Notes; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\Admin\\Notes_Helper' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\Admin\\Notes_Helper' ) ) : /** diff --git a/woocommerce/admin/abstract-sv-wc-plugin-admin-setup-wizard.php b/woocommerce/admin/abstract-sv-wc-plugin-admin-setup-wizard.php index 666fa3b04..479c357d5 100644 --- a/woocommerce/admin/abstract-sv-wc-plugin-admin-setup-wizard.php +++ b/woocommerce/admin/abstract-sv-wc-plugin-admin-setup-wizard.php @@ -21,13 +21,13 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0\Admin; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1\Admin; defined( 'ABSPATH' ) or exit; -use SkyVerge\WooCommerce\PluginFramework\v6_0_0 as Framework; +use SkyVerge\WooCommerce\PluginFramework\v6_0_1 as Framework; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\Admin\\Setup_Wizard' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\Admin\\Setup_Wizard' ) ) : /** diff --git a/woocommerce/api/Abstract_Cacheable_API_Base.php b/woocommerce/api/Abstract_Cacheable_API_Base.php index 938d8c9d3..a1ee78ab1 100644 --- a/woocommerce/api/Abstract_Cacheable_API_Base.php +++ b/woocommerce/api/Abstract_Cacheable_API_Base.php @@ -22,14 +22,14 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0\API; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1\API; -use SkyVerge\WooCommerce\PluginFramework\v6_0_0\SV_WC_API_Base; -use SkyVerge\WooCommerce\PluginFramework\v6_0_0\API\Traits\Cacheable_Request_Trait; +use SkyVerge\WooCommerce\PluginFramework\v6_0_1\SV_WC_API_Base; +use SkyVerge\WooCommerce\PluginFramework\v6_0_1\API\Traits\Cacheable_Request_Trait; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\API\\Abstract_Cacheable_API_Base' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\API\\Abstract_Cacheable_API_Base' ) ) : /** diff --git a/woocommerce/api/Traits/Cacheable_Request_Trait.php b/woocommerce/api/Traits/Cacheable_Request_Trait.php index bab8610da..696802487 100644 --- a/woocommerce/api/Traits/Cacheable_Request_Trait.php +++ b/woocommerce/api/Traits/Cacheable_Request_Trait.php @@ -22,11 +22,11 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0\API\Traits; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1\API\Traits; defined( 'ABSPATH' ) or exit; -if ( ! trait_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\API\\Traits\\Cacheable_Request_Trait' ) ) : +if ( ! trait_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\API\\Traits\\Cacheable_Request_Trait' ) ) : /** diff --git a/woocommerce/api/abstract-sv-wc-api-json-request.php b/woocommerce/api/abstract-sv-wc-api-json-request.php index f9b83aedc..7faee9554 100644 --- a/woocommerce/api/abstract-sv-wc-api-json-request.php +++ b/woocommerce/api/abstract-sv-wc-api-json-request.php @@ -22,11 +22,11 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WC_API_JSON_Request' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WC_API_JSON_Request' ) ) : /** diff --git a/woocommerce/api/abstract-sv-wc-api-json-response.php b/woocommerce/api/abstract-sv-wc-api-json-response.php index 88420b844..9b43d19fb 100644 --- a/woocommerce/api/abstract-sv-wc-api-json-response.php +++ b/woocommerce/api/abstract-sv-wc-api-json-response.php @@ -22,11 +22,11 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WC_API_JSON_Response' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WC_API_JSON_Response' ) ) : /** diff --git a/woocommerce/api/abstract-sv-wc-api-xml-request.php b/woocommerce/api/abstract-sv-wc-api-xml-request.php index 4fabe1d4b..e6bb66881 100644 --- a/woocommerce/api/abstract-sv-wc-api-xml-request.php +++ b/woocommerce/api/abstract-sv-wc-api-xml-request.php @@ -22,11 +22,11 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WC_API_XML_Request' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WC_API_XML_Request' ) ) : /** diff --git a/woocommerce/api/abstract-sv-wc-api-xml-response.php b/woocommerce/api/abstract-sv-wc-api-xml-response.php index 39703b037..e1b4bd438 100644 --- a/woocommerce/api/abstract-sv-wc-api-xml-response.php +++ b/woocommerce/api/abstract-sv-wc-api-xml-response.php @@ -22,11 +22,11 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WC_API_XML_Response' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WC_API_XML_Response' ) ) : /** diff --git a/woocommerce/api/class-sv-wc-api-base.php b/woocommerce/api/class-sv-wc-api-base.php index a6494d5cb..5b85a3d5b 100644 --- a/woocommerce/api/class-sv-wc-api-base.php +++ b/woocommerce/api/class-sv-wc-api-base.php @@ -22,11 +22,11 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WC_API_Base' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WC_API_Base' ) ) : /** diff --git a/woocommerce/api/class-sv-wc-api-exception.php b/woocommerce/api/class-sv-wc-api-exception.php index b3df80def..ffa9fc39f 100644 --- a/woocommerce/api/class-sv-wc-api-exception.php +++ b/woocommerce/api/class-sv-wc-api-exception.php @@ -22,11 +22,11 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WC_API_Exception' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WC_API_Exception' ) ) : /** diff --git a/woocommerce/api/interface-sv-wc-api-request.php b/woocommerce/api/interface-sv-wc-api-request.php index 614afacfc..24c342c04 100644 --- a/woocommerce/api/interface-sv-wc-api-request.php +++ b/woocommerce/api/interface-sv-wc-api-request.php @@ -22,11 +22,11 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; defined( 'ABSPATH' ) or exit; -if ( ! interface_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WC_API_Request' ) ) : +if ( ! interface_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WC_API_Request' ) ) : /** diff --git a/woocommerce/api/interface-sv-wc-api-response.php b/woocommerce/api/interface-sv-wc-api-response.php index 1771c4d3b..a6f553e35 100644 --- a/woocommerce/api/interface-sv-wc-api-response.php +++ b/woocommerce/api/interface-sv-wc-api-response.php @@ -22,11 +22,11 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; defined( 'ABSPATH' ) or exit; -if ( ! interface_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WC_API_Response' ) ) : +if ( ! interface_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WC_API_Response' ) ) : /** diff --git a/woocommerce/changelog.txt b/woocommerce/changelog.txt index 039215ebf..a63c4b66f 100644 --- a/woocommerce/changelog.txt +++ b/woocommerce/changelog.txt @@ -1,5 +1,8 @@ *** SkyVerge WooCommerce Plugin Framework Changelog *** +2025.nn.nn - version 6.0.1 + * Dev - Set PHP 8.1 defaults on `html_entity_decode()` usage (ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401) + 2025.nn.nn - version 6.0.0 * Dev - Completely reworked how we handle dynamic properties on WooCommerce order objects. For now this change is backwards compatible with v5, but we will eventually drop support for the legacy method, so migrating ASAP is recommended. See the upgrade guide: https://github.com/godaddy-wordpress/wc-plugin-framework/wiki/Migrating-to-v6 * Dev - Address "Implicitly marking parameter as nullable is deprecated" warnings in PHP 8.4 diff --git a/woocommerce/class-sv-wc-admin-notice-handler.php b/woocommerce/class-sv-wc-admin-notice-handler.php index 0da126639..a11e559aa 100644 --- a/woocommerce/class-sv-wc-admin-notice-handler.php +++ b/woocommerce/class-sv-wc-admin-notice-handler.php @@ -22,11 +22,11 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WC_Admin_Notice_Handler' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WC_Admin_Notice_Handler' ) ) : /** diff --git a/woocommerce/class-sv-wc-helper.php b/woocommerce/class-sv-wc-helper.php index 2e493dfae..e891543b2 100644 --- a/woocommerce/class-sv-wc-helper.php +++ b/woocommerce/class-sv-wc-helper.php @@ -22,15 +22,15 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; -use SkyVerge\WooCommerce\PluginFramework\v6_0_0\Helpers\NumberHelper; +use SkyVerge\WooCommerce\PluginFramework\v6_0_1\Helpers\NumberHelper; use WC_Data; use WP_Post; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WC_Helper' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WC_Helper' ) ) : /** diff --git a/woocommerce/class-sv-wc-hook-deprecator.php b/woocommerce/class-sv-wc-hook-deprecator.php index 163296906..fb523e208 100644 --- a/woocommerce/class-sv-wc-hook-deprecator.php +++ b/woocommerce/class-sv-wc-hook-deprecator.php @@ -22,11 +22,11 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WC_Hook_Deprecator' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WC_Hook_Deprecator' ) ) : /** diff --git a/woocommerce/class-sv-wc-plugin-compatibility.php b/woocommerce/class-sv-wc-plugin-compatibility.php index 795d53d2f..9bff6d778 100644 --- a/woocommerce/class-sv-wc-plugin-compatibility.php +++ b/woocommerce/class-sv-wc-plugin-compatibility.php @@ -22,13 +22,13 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; use Automattic\WooCommerce\Utilities\OrderUtil; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WC_Plugin_Compatibility' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WC_Plugin_Compatibility' ) ) : /** diff --git a/woocommerce/class-sv-wc-plugin-dependencies.php b/woocommerce/class-sv-wc-plugin-dependencies.php index 90c3a3da8..d0c648b07 100644 --- a/woocommerce/class-sv-wc-plugin-dependencies.php +++ b/woocommerce/class-sv-wc-plugin-dependencies.php @@ -22,11 +22,11 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WC_Plugin_Dependencies' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WC_Plugin_Dependencies' ) ) : /** diff --git a/woocommerce/class-sv-wc-plugin-exception.php b/woocommerce/class-sv-wc-plugin-exception.php index 86423fdfc..a748f64db 100644 --- a/woocommerce/class-sv-wc-plugin-exception.php +++ b/woocommerce/class-sv-wc-plugin-exception.php @@ -22,11 +22,11 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WC_Plugin_Exception' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WC_Plugin_Exception' ) ) : /** diff --git a/woocommerce/class-sv-wc-plugin.php b/woocommerce/class-sv-wc-plugin.php index 33d608f3f..0b0400ded 100644 --- a/woocommerce/class-sv-wc-plugin.php +++ b/woocommerce/class-sv-wc-plugin.php @@ -22,18 +22,18 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; use Automattic\WooCommerce\Utilities\FeaturesUtil; -use SkyVerge\WooCommerce\PluginFramework\v6_0_0\Handlers\Country_Helper; -use SkyVerge\WooCommerce\PluginFramework\v6_0_0\Payment_Gateway\PaymentFormContextChecker; +use SkyVerge\WooCommerce\PluginFramework\v6_0_1\Handlers\Country_Helper; +use SkyVerge\WooCommerce\PluginFramework\v6_0_1\Payment_Gateway\PaymentFormContextChecker; use stdClass; use Throwable; use WC_Logger_Interface; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WC_Plugin' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WC_Plugin' ) ) : /** @@ -51,7 +51,7 @@ abstract class SV_WC_Plugin { /** Plugin Framework Version */ - public const VERSION = '6.0.0'; + public const VERSION = '6.0.1'; /** @var object single instance of plugin */ protected static $instance; @@ -487,7 +487,7 @@ private function includes() { */ protected function setupClassAliases() : void { - $countryHelperAlias = '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\Country_Helper'; + $countryHelperAlias = '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\Country_Helper'; if (! class_exists($countryHelperAlias)) { class_alias( Country_Helper::class, @@ -495,7 +495,7 @@ class_alias( ); } - $paymentFormContextCheckerAlias = '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\PaymentFormContextChecker'; + $paymentFormContextCheckerAlias = '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\PaymentFormContextChecker'; if (! class_exists($paymentFormContextCheckerAlias)) { class_alias( PaymentFormContextChecker::class, diff --git a/woocommerce/class-sv-wp-admin-message-handler.php b/woocommerce/class-sv-wp-admin-message-handler.php index 3aa994e6f..9aaf061bd 100644 --- a/woocommerce/class-sv-wp-admin-message-handler.php +++ b/woocommerce/class-sv-wp-admin-message-handler.php @@ -22,11 +22,11 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WP_Admin_Message_Handler' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WP_Admin_Message_Handler' ) ) : /** diff --git a/woocommerce/compatibility/abstract-sv-wc-data-compatibility.php b/woocommerce/compatibility/abstract-sv-wc-data-compatibility.php index d928a1596..2b9662706 100644 --- a/woocommerce/compatibility/abstract-sv-wc-data-compatibility.php +++ b/woocommerce/compatibility/abstract-sv-wc-data-compatibility.php @@ -22,11 +22,11 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WC_Data_Compatibility' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WC_Data_Compatibility' ) ) : /** diff --git a/woocommerce/compatibility/class-sv-wc-order-compatibility.php b/woocommerce/compatibility/class-sv-wc-order-compatibility.php index 56876df7f..59a84544f 100644 --- a/woocommerce/compatibility/class-sv-wc-order-compatibility.php +++ b/woocommerce/compatibility/class-sv-wc-order-compatibility.php @@ -22,7 +22,7 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; use Automattic\WooCommerce\Admin\Overrides\Order; use Automattic\WooCommerce\Internal\Admin\Orders\PageController; @@ -32,7 +32,7 @@ defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WC_Order_Compatibility' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WC_Order_Compatibility' ) ) : /** diff --git a/woocommerce/compatibility/class-sv-wc-subscription-compatibility.php b/woocommerce/compatibility/class-sv-wc-subscription-compatibility.php index 08f93d0b6..576918c7b 100644 --- a/woocommerce/compatibility/class-sv-wc-subscription-compatibility.php +++ b/woocommerce/compatibility/class-sv-wc-subscription-compatibility.php @@ -22,11 +22,11 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WC_Subscription_Compatibility' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WC_Subscription_Compatibility' ) ) : /** * WooCommerce subscription compatibility class. diff --git a/woocommerce/i18n/languages/woocommerce-plugin-framework.pot b/woocommerce/i18n/languages/woocommerce-plugin-framework.pot index f7048d2e1..3b6aa1ddd 100644 --- a/woocommerce/i18n/languages/woocommerce-plugin-framework.pot +++ b/woocommerce/i18n/languages/woocommerce-plugin-framework.pot @@ -1,14 +1,14 @@ # Copyright (c) GoDaddy Operating Company, LLC. All Rights Reserved. msgid "" msgstr "" -"Project-Id-Version: SkyVerge WooCommerce Plugin Framework 1.0.0 TODO: plugin version\n" -"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wc-plugin-framework\n" +"Project-Id-Version: SkyVerge WooCommerce Plugin Framework\n" +"Report-Msgid-Bugs-To: https://github.com/godaddy-wordpress/wc-plugin-framework/issues\n" "Last-Translator: plugins@godaddy.com\n" -"Language-Team: LANGUAGE \n" +"Language-Team: plugins@godaddy.com\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"POT-Creation-Date: 2025-12-01T10:23:14+00:00\n" +"POT-Creation-Date: 2025-12-05T12:55:06+00:00\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "X-Generator: WP-CLI 2.12.0\n" "X-Domain: woocommerce-plugin-framework\n" diff --git a/woocommerce/payment-gateway/Blocks/Gateway_Blocks_Handler.php b/woocommerce/payment-gateway/Blocks/Gateway_Blocks_Handler.php index 91d83a30a..97a71b53f 100644 --- a/woocommerce/payment-gateway/Blocks/Gateway_Blocks_Handler.php +++ b/woocommerce/payment-gateway/Blocks/Gateway_Blocks_Handler.php @@ -1,13 +1,13 @@ get_handler()->get_plugin()->get_payment_gateway_framework_assets_url() . '/css/frontend/sv-wc-payment-gateway-external-checkout.css', array(), $this->get_handler()->get_plugin()->get_version() ); // TODO: min + wp_enqueue_style( 'sv-wc-external-checkout-v6_0_1', $this->get_handler()->get_plugin()->get_payment_gateway_framework_assets_url() . '/css/frontend/sv-wc-payment-gateway-external-checkout.css', array(), $this->get_handler()->get_plugin()->get_version() ); // TODO: min } diff --git a/woocommerce/payment-gateway/External_Checkout/Google_Pay/AJAX.php b/woocommerce/payment-gateway/External_Checkout/Google_Pay/AJAX.php index 0fc93d689..a3362e153 100644 --- a/woocommerce/payment-gateway/External_Checkout/Google_Pay/AJAX.php +++ b/woocommerce/payment-gateway/External_Checkout/Google_Pay/AJAX.php @@ -22,14 +22,14 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0\Payment_Gateway\External_Checkout\Google_Pay; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1\Payment_Gateway\External_Checkout\Google_Pay; -use SkyVerge\WooCommerce\PluginFramework\v6_0_0\SV_WC_Helper; -use SkyVerge\WooCommerce\PluginFramework\v6_0_0\SV_WC_Payment_Gateway_Exception; +use SkyVerge\WooCommerce\PluginFramework\v6_0_1\SV_WC_Helper; +use SkyVerge\WooCommerce\PluginFramework\v6_0_1\SV_WC_Payment_Gateway_Exception; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\Payment_Gateway\\External_Checkout\\Google_Pay\\AJAX' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\Payment_Gateway\\External_Checkout\\Google_Pay\\AJAX' ) ) : /** diff --git a/woocommerce/payment-gateway/External_Checkout/Google_Pay/Admin.php b/woocommerce/payment-gateway/External_Checkout/Google_Pay/Admin.php index debf20ec9..731a65f84 100755 --- a/woocommerce/payment-gateway/External_Checkout/Google_Pay/Admin.php +++ b/woocommerce/payment-gateway/External_Checkout/Google_Pay/Admin.php @@ -22,13 +22,13 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0\Payment_Gateway\External_Checkout\Google_Pay; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1\Payment_Gateway\External_Checkout\Google_Pay; -use SkyVerge\WooCommerce\PluginFramework\v6_0_0\SV_WC_Helper; +use SkyVerge\WooCommerce\PluginFramework\v6_0_1\SV_WC_Helper; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\Payment_Gateway\\External_Checkout\\Google_Pay\\Admin' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\Payment_Gateway\\External_Checkout\\Google_Pay\\Admin' ) ) : /** @@ -37,7 +37,7 @@ * @since 5.10.0 */ #[\AllowDynamicProperties] -class Admin extends \SkyVerge\WooCommerce\PluginFramework\v6_0_0\Payment_Gateway\External_Checkout\Admin { +class Admin extends \SkyVerge\WooCommerce\PluginFramework\v6_0_1\Payment_Gateway\External_Checkout\Admin { /** @var Google_Pay the Google Pay handler instance */ diff --git a/woocommerce/payment-gateway/External_Checkout/Google_Pay/Frontend.php b/woocommerce/payment-gateway/External_Checkout/Google_Pay/Frontend.php index e480073d7..1fc8d6ed3 100644 --- a/woocommerce/payment-gateway/External_Checkout/Google_Pay/Frontend.php +++ b/woocommerce/payment-gateway/External_Checkout/Google_Pay/Frontend.php @@ -22,14 +22,14 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0\Payment_Gateway\External_Checkout\Google_Pay; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1\Payment_Gateway\External_Checkout\Google_Pay; -use SkyVerge\WooCommerce\PluginFramework\v6_0_0\SV_WC_Payment_Gateway_Exception; -use SkyVerge\WooCommerce\PluginFramework\v6_0_0\SV_WC_Payment_Gateway_Plugin; +use SkyVerge\WooCommerce\PluginFramework\v6_0_1\SV_WC_Payment_Gateway_Exception; +use SkyVerge\WooCommerce\PluginFramework\v6_0_1\SV_WC_Payment_Gateway_Plugin; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\Payment_Gateway\\External_Checkout\\Google_Pay\\Frontend' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\Payment_Gateway\\External_Checkout\\Google_Pay\\Frontend' ) ) : /** @@ -38,7 +38,7 @@ * @since 5.10.0 */ #[\AllowDynamicProperties] -class Frontend extends \SkyVerge\WooCommerce\PluginFramework\v6_0_0\Payment_Gateway\External_Checkout\Frontend { +class Frontend extends \SkyVerge\WooCommerce\PluginFramework\v6_0_1\Payment_Gateway\External_Checkout\Frontend { /** @var string JS handler base class name, without the FW version */ @@ -102,7 +102,7 @@ public function enqueue_scripts() { $version = $gateway->get_plugin()->get_assets_version( $gateway->get_id() ); wp_enqueue_script( 'google-pay-js-library', 'https://pay.google.com/gp/p/js/pay.js', [], $version, true ); - wp_enqueue_script( 'sv-wc-google-pay-v6_0_0', $this->get_plugin()->get_payment_gateway_framework_assets_url() . '/dist/frontend/sv-wc-payment-gateway-google-pay.js', [ 'google-pay-js-library', 'jquery' ], $version, true ); + wp_enqueue_script( 'sv-wc-google-pay-v6_0_1', $this->get_plugin()->get_payment_gateway_framework_assets_url() . '/dist/frontend/sv-wc-payment-gateway-google-pay.js', [ 'google-pay-js-library', 'jquery' ], $version, true ); } diff --git a/woocommerce/payment-gateway/External_Checkout/Google_Pay/Google_Pay.php b/woocommerce/payment-gateway/External_Checkout/Google_Pay/Google_Pay.php index c35767a8a..7be165c27 100755 --- a/woocommerce/payment-gateway/External_Checkout/Google_Pay/Google_Pay.php +++ b/woocommerce/payment-gateway/External_Checkout/Google_Pay/Google_Pay.php @@ -22,17 +22,17 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0\Payment_Gateway\External_Checkout\Google_Pay; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1\Payment_Gateway\External_Checkout\Google_Pay; -use SkyVerge\WooCommerce\PluginFramework\v6_0_0\Payment_Gateway\External_Checkout\External_Checkout; -use SkyVerge\WooCommerce\PluginFramework\v6_0_0\Payment_Gateway\External_Checkout\Orders; -use SkyVerge\WooCommerce\PluginFramework\v6_0_0\SV_WC_Payment_Gateway_Exception; -use SkyVerge\WooCommerce\PluginFramework\v6_0_0\SV_WC_Payment_Gateway_Helper; -use SkyVerge\WooCommerce\PluginFramework\v6_0_0\SV_WC_Payment_Gateway_Plugin; +use SkyVerge\WooCommerce\PluginFramework\v6_0_1\Payment_Gateway\External_Checkout\External_Checkout; +use SkyVerge\WooCommerce\PluginFramework\v6_0_1\Payment_Gateway\External_Checkout\Orders; +use SkyVerge\WooCommerce\PluginFramework\v6_0_1\SV_WC_Payment_Gateway_Exception; +use SkyVerge\WooCommerce\PluginFramework\v6_0_1\SV_WC_Payment_Gateway_Helper; +use SkyVerge\WooCommerce\PluginFramework\v6_0_1\SV_WC_Payment_Gateway_Plugin; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\Payment_Gateway\\External_Checkout\\Google_Pay\\Google_Pay' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\Payment_Gateway\\External_Checkout\\Google_Pay\\Google_Pay' ) ) : /** @@ -680,7 +680,7 @@ public function get_supported_networks() { $accepted_card_types = ( $this->get_processing_gateway() ) ? $this->get_processing_gateway()->get_card_types() : []; - $accepted_card_types = array_map( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WC_Payment_Gateway_Helper::normalize_card_type', $accepted_card_types ); + $accepted_card_types = array_map( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WC_Payment_Gateway_Helper::normalize_card_type', $accepted_card_types ); $valid_networks = [ SV_WC_Payment_Gateway_Helper::CARD_TYPE_AMEX => 'AMEX', diff --git a/woocommerce/payment-gateway/External_Checkout/Orders.php b/woocommerce/payment-gateway/External_Checkout/Orders.php index 3a0013bb9..20c61b38e 100644 --- a/woocommerce/payment-gateway/External_Checkout/Orders.php +++ b/woocommerce/payment-gateway/External_Checkout/Orders.php @@ -22,9 +22,9 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0\Payment_Gateway\External_Checkout; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1\Payment_Gateway\External_Checkout; -use SkyVerge\WooCommerce\PluginFramework\v6_0_0 as Framework; +use SkyVerge\WooCommerce\PluginFramework\v6_0_1 as Framework; defined( 'ABSPATH' ) or exit; diff --git a/woocommerce/payment-gateway/External_Checkout/apple-pay/api/class-sv-wc-payment-gateway-apple-pay-api-request.php b/woocommerce/payment-gateway/External_Checkout/apple-pay/api/class-sv-wc-payment-gateway-apple-pay-api-request.php index 499c53041..cbfa76504 100644 --- a/woocommerce/payment-gateway/External_Checkout/apple-pay/api/class-sv-wc-payment-gateway-apple-pay-api-request.php +++ b/woocommerce/payment-gateway/External_Checkout/apple-pay/api/class-sv-wc-payment-gateway-apple-pay-api-request.php @@ -22,11 +22,11 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WC_Payment_Gateway_Apple_Pay_API_Request' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WC_Payment_Gateway_Apple_Pay_API_Request' ) ) : /** diff --git a/woocommerce/payment-gateway/External_Checkout/apple-pay/api/class-sv-wc-payment-gateway-apple-pay-api-response.php b/woocommerce/payment-gateway/External_Checkout/apple-pay/api/class-sv-wc-payment-gateway-apple-pay-api-response.php index 847c7acd6..6b9b2d4ac 100644 --- a/woocommerce/payment-gateway/External_Checkout/apple-pay/api/class-sv-wc-payment-gateway-apple-pay-api-response.php +++ b/woocommerce/payment-gateway/External_Checkout/apple-pay/api/class-sv-wc-payment-gateway-apple-pay-api-response.php @@ -22,11 +22,11 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WC_Payment_Gateway_Apple_Pay_API_Response' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WC_Payment_Gateway_Apple_Pay_API_Response' ) ) : /** diff --git a/woocommerce/payment-gateway/External_Checkout/apple-pay/api/class-sv-wc-payment-gateway-apple-pay-api.php b/woocommerce/payment-gateway/External_Checkout/apple-pay/api/class-sv-wc-payment-gateway-apple-pay-api.php index d60f87aae..c656aac63 100644 --- a/woocommerce/payment-gateway/External_Checkout/apple-pay/api/class-sv-wc-payment-gateway-apple-pay-api.php +++ b/woocommerce/payment-gateway/External_Checkout/apple-pay/api/class-sv-wc-payment-gateway-apple-pay-api.php @@ -22,11 +22,11 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WC_Payment_Gateway_Apple_Pay_API' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WC_Payment_Gateway_Apple_Pay_API' ) ) : /** @@ -58,7 +58,7 @@ public function __construct( SV_WC_Payment_Gateway $gateway ) { $this->set_request_content_type_header( 'application/json' ); $this->set_request_accept_header( 'application/json' ); - $this->set_response_handler( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WC_Payment_Gateway_Apple_Pay_API_Response' ); + $this->set_response_handler( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WC_Payment_Gateway_Apple_Pay_API_Response' ); } diff --git a/woocommerce/payment-gateway/External_Checkout/apple-pay/api/class-sv-wc-payment-gateway-apple-pay-payment-response.php b/woocommerce/payment-gateway/External_Checkout/apple-pay/api/class-sv-wc-payment-gateway-apple-pay-payment-response.php index 967d86ca6..ea20a26c5 100644 --- a/woocommerce/payment-gateway/External_Checkout/apple-pay/api/class-sv-wc-payment-gateway-apple-pay-payment-response.php +++ b/woocommerce/payment-gateway/External_Checkout/apple-pay/api/class-sv-wc-payment-gateway-apple-pay-payment-response.php @@ -22,11 +22,11 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WC_Payment_Gateway_Apple_Pay_Payment_Response' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WC_Payment_Gateway_Apple_Pay_Payment_Response' ) ) : /** diff --git a/woocommerce/payment-gateway/External_Checkout/apple-pay/class-sv-wc-payment-gateway-apple-pay-admin.php b/woocommerce/payment-gateway/External_Checkout/apple-pay/class-sv-wc-payment-gateway-apple-pay-admin.php index 62b1f589c..1dc372938 100755 --- a/woocommerce/payment-gateway/External_Checkout/apple-pay/class-sv-wc-payment-gateway-apple-pay-admin.php +++ b/woocommerce/payment-gateway/External_Checkout/apple-pay/class-sv-wc-payment-gateway-apple-pay-admin.php @@ -22,13 +22,13 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; -use SkyVerge\WooCommerce\PluginFramework\v6_0_0\Payment_Gateway\External_Checkout\Admin; +use SkyVerge\WooCommerce\PluginFramework\v6_0_1\Payment_Gateway\External_Checkout\Admin; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WC_Payment_Gateway_Apple_Pay_Admin' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WC_Payment_Gateway_Apple_Pay_Admin' ) ) : /** diff --git a/woocommerce/payment-gateway/External_Checkout/apple-pay/class-sv-wc-payment-gateway-apple-pay-ajax.php b/woocommerce/payment-gateway/External_Checkout/apple-pay/class-sv-wc-payment-gateway-apple-pay-ajax.php index 0c54d94f0..6ef03c3c1 100644 --- a/woocommerce/payment-gateway/External_Checkout/apple-pay/class-sv-wc-payment-gateway-apple-pay-ajax.php +++ b/woocommerce/payment-gateway/External_Checkout/apple-pay/class-sv-wc-payment-gateway-apple-pay-ajax.php @@ -22,11 +22,11 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WC_Payment_Gateway_Apple_Pay_AJAX' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WC_Payment_Gateway_Apple_Pay_AJAX' ) ) : /** diff --git a/woocommerce/payment-gateway/External_Checkout/apple-pay/class-sv-wc-payment-gateway-apple-pay-frontend.php b/woocommerce/payment-gateway/External_Checkout/apple-pay/class-sv-wc-payment-gateway-apple-pay-frontend.php index 60b542b18..2cb2dce0a 100644 --- a/woocommerce/payment-gateway/External_Checkout/apple-pay/class-sv-wc-payment-gateway-apple-pay-frontend.php +++ b/woocommerce/payment-gateway/External_Checkout/apple-pay/class-sv-wc-payment-gateway-apple-pay-frontend.php @@ -22,11 +22,11 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WC_Payment_Gateway_Apple_Pay_Frontend' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WC_Payment_Gateway_Apple_Pay_Frontend' ) ) : /** @@ -35,7 +35,7 @@ * @since 4.7.0 */ #[\AllowDynamicProperties] -class SV_WC_Payment_Gateway_Apple_Pay_Frontend extends \SkyVerge\WooCommerce\PluginFramework\v6_0_0\Payment_Gateway\External_Checkout\Frontend { +class SV_WC_Payment_Gateway_Apple_Pay_Frontend extends \SkyVerge\WooCommerce\PluginFramework\v6_0_1\Payment_Gateway\External_Checkout\Frontend { /** @var string JS handler base class name, without the FW version */ @@ -116,9 +116,9 @@ public function enqueue_scripts() { $gateway = $this->get_gateway(); $version = $gateway->get_plugin()->get_assets_version( $gateway->get_id() ); - wp_enqueue_style( 'sv-wc-apple-pay-v6_0_0', $this->get_plugin()->get_payment_gateway_framework_assets_url() . '/css/frontend/sv-wc-payment-gateway-apple-pay.css', [], $version ); // TODO: min + wp_enqueue_style( 'sv-wc-apple-pay-v6_0_1', $this->get_plugin()->get_payment_gateway_framework_assets_url() . '/css/frontend/sv-wc-payment-gateway-apple-pay.css', [], $version ); // TODO: min - wp_enqueue_script( 'sv-wc-apple-pay-v6_0_0', $this->get_plugin()->get_payment_gateway_framework_assets_url() . '/dist/frontend/sv-wc-payment-gateway-apple-pay.js', [ 'jquery' ], $version, true ); + wp_enqueue_script( 'sv-wc-apple-pay-v6_0_1', $this->get_plugin()->get_payment_gateway_framework_assets_url() . '/dist/frontend/sv-wc-payment-gateway-apple-pay.js', [ 'jquery' ], $version, true ); } diff --git a/woocommerce/payment-gateway/External_Checkout/apple-pay/class-sv-wc-payment-gateway-apple-pay.php b/woocommerce/payment-gateway/External_Checkout/apple-pay/class-sv-wc-payment-gateway-apple-pay.php index 06a9cc494..ac9e8da21 100755 --- a/woocommerce/payment-gateway/External_Checkout/apple-pay/class-sv-wc-payment-gateway-apple-pay.php +++ b/woocommerce/payment-gateway/External_Checkout/apple-pay/class-sv-wc-payment-gateway-apple-pay.php @@ -22,13 +22,13 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; -use SkyVerge\WooCommerce\PluginFramework\v6_0_0\Payment_Gateway\External_Checkout\Orders; +use SkyVerge\WooCommerce\PluginFramework\v6_0_1\Payment_Gateway\External_Checkout\Orders; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WC_Payment_Gateway_Apple_Pay' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WC_Payment_Gateway_Apple_Pay' ) ) : /** @@ -940,7 +940,7 @@ public function get_supported_networks() { $accepted_card_types = ( $this->get_processing_gateway() ) ? $this->get_processing_gateway()->get_card_types() : array(); - $accepted_card_types = array_map( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WC_Payment_Gateway_Helper::normalize_card_type', $accepted_card_types ); + $accepted_card_types = array_map( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WC_Payment_Gateway_Helper::normalize_card_type', $accepted_card_types ); $valid_networks = array( SV_WC_Payment_Gateway_Helper::CARD_TYPE_AMEX => 'amex', diff --git a/woocommerce/payment-gateway/Handlers/Abstract_Hosted_Payment_Handler.php b/woocommerce/payment-gateway/Handlers/Abstract_Hosted_Payment_Handler.php index 01680922f..09e9c25a1 100644 --- a/woocommerce/payment-gateway/Handlers/Abstract_Hosted_Payment_Handler.php +++ b/woocommerce/payment-gateway/Handlers/Abstract_Hosted_Payment_Handler.php @@ -22,12 +22,12 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0\Payment_Gateway\Handlers; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1\Payment_Gateway\Handlers; -use SkyVerge\WooCommerce\PluginFramework\v6_0_0 as FrameworkBase; -use SkyVerge\WooCommerce\PluginFramework\v6_0_0\Helpers\OrderHelper; +use SkyVerge\WooCommerce\PluginFramework\v6_0_1 as FrameworkBase; +use SkyVerge\WooCommerce\PluginFramework\v6_0_1\Helpers\OrderHelper; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\Payment_Gateway\\Handlers\\Abstract_Hosted_Payment_Handler' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\Payment_Gateway\\Handlers\\Abstract_Hosted_Payment_Handler' ) ) : /** diff --git a/woocommerce/payment-gateway/Handlers/Abstract_Payment_Handler.php b/woocommerce/payment-gateway/Handlers/Abstract_Payment_Handler.php index 79e6c61fe..a694e9a41 100644 --- a/woocommerce/payment-gateway/Handlers/Abstract_Payment_Handler.php +++ b/woocommerce/payment-gateway/Handlers/Abstract_Payment_Handler.php @@ -22,11 +22,11 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0\Payment_Gateway\Handlers; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1\Payment_Gateway\Handlers; -use SkyVerge\WooCommerce\PluginFramework\v6_0_0 as FrameworkBase; +use SkyVerge\WooCommerce\PluginFramework\v6_0_1 as FrameworkBase; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\Payment_Gateway\\Handlers\\Abstract_Payment_Handler' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\Payment_Gateway\\Handlers\\Abstract_Payment_Handler' ) ) : /** diff --git a/woocommerce/payment-gateway/Handlers/Capture.php b/woocommerce/payment-gateway/Handlers/Capture.php index 3a125eaa1..9aa87b023 100644 --- a/woocommerce/payment-gateway/Handlers/Capture.php +++ b/woocommerce/payment-gateway/Handlers/Capture.php @@ -22,14 +22,14 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0\Payment_Gateway\Handlers; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1\Payment_Gateway\Handlers; -use SkyVerge\WooCommerce\PluginFramework\v6_0_0 as Framework; -use SkyVerge\WooCommerce\PluginFramework\v6_0_0\Payment_Gateway\Dynamic_Props; +use SkyVerge\WooCommerce\PluginFramework\v6_0_1 as Framework; +use SkyVerge\WooCommerce\PluginFramework\v6_0_1\Payment_Gateway\Dynamic_Props; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\Payment_Gateway\\Handlers\\Capture' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\Payment_Gateway\\Handlers\\Capture' ) ) : /** diff --git a/woocommerce/payment-gateway/PaymentFormContextChecker.php b/woocommerce/payment-gateway/PaymentFormContextChecker.php index e76d997fd..368ad647d 100644 --- a/woocommerce/payment-gateway/PaymentFormContextChecker.php +++ b/woocommerce/payment-gateway/PaymentFormContextChecker.php @@ -1,9 +1,9 @@ html_entity_decode( wp_strip_all_tags( $result['message'] ) ), // ensure any HTML tags are removed and the currency symbol entity is decoded + 'message' => html_entity_decode( wp_strip_all_tags( $result['message'] ), ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401 ), // ensure any HTML tags are removed and the currency symbol entity is decoded ] ); } catch ( SV_WC_Payment_Gateway_Exception $e ) { diff --git a/woocommerce/payment-gateway/admin/class-sv-wc-payment-gateway-admin-payment-token-editor.php b/woocommerce/payment-gateway/admin/class-sv-wc-payment-gateway-admin-payment-token-editor.php index 4cf2f6332..01780791b 100644 --- a/woocommerce/payment-gateway/admin/class-sv-wc-payment-gateway-admin-payment-token-editor.php +++ b/woocommerce/payment-gateway/admin/class-sv-wc-payment-gateway-admin-payment-token-editor.php @@ -22,11 +22,11 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WC_Payment_Gateway_Admin_Payment_Token_Editor' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WC_Payment_Gateway_Admin_Payment_Token_Editor' ) ) : /** diff --git a/woocommerce/payment-gateway/admin/class-sv-wc-payment-gateway-admin-user-handler.php b/woocommerce/payment-gateway/admin/class-sv-wc-payment-gateway-admin-user-handler.php index 987549171..f01d3204d 100644 --- a/woocommerce/payment-gateway/admin/class-sv-wc-payment-gateway-admin-user-handler.php +++ b/woocommerce/payment-gateway/admin/class-sv-wc-payment-gateway-admin-user-handler.php @@ -22,11 +22,11 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WC_Payment_Gateway_Admin_User_Handler' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WC_Payment_Gateway_Admin_User_Handler' ) ) : /** diff --git a/woocommerce/payment-gateway/api/class-sv-wc-payment-gateway-api-response-message-helper.php b/woocommerce/payment-gateway/api/class-sv-wc-payment-gateway-api-response-message-helper.php index 16a248684..ff4c33205 100644 --- a/woocommerce/payment-gateway/api/class-sv-wc-payment-gateway-api-response-message-helper.php +++ b/woocommerce/payment-gateway/api/class-sv-wc-payment-gateway-api-response-message-helper.php @@ -22,11 +22,11 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WC_Payment_Gateway_API_Response_Message_Helper' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WC_Payment_Gateway_API_Response_Message_Helper' ) ) : /** diff --git a/woocommerce/payment-gateway/api/interface-sv-wc-payment-gateway-api-authorization-response.php b/woocommerce/payment-gateway/api/interface-sv-wc-payment-gateway-api-authorization-response.php index df48685c8..3fd43ff50 100644 --- a/woocommerce/payment-gateway/api/interface-sv-wc-payment-gateway-api-authorization-response.php +++ b/woocommerce/payment-gateway/api/interface-sv-wc-payment-gateway-api-authorization-response.php @@ -22,11 +22,11 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; defined( 'ABSPATH' ) or exit; -if ( ! interface_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WC_Payment_Gateway_API_Authorization_Response' ) ) : +if ( ! interface_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WC_Payment_Gateway_API_Authorization_Response' ) ) : /** diff --git a/woocommerce/payment-gateway/api/interface-sv-wc-payment-gateway-api-create-payment-token-response.php b/woocommerce/payment-gateway/api/interface-sv-wc-payment-gateway-api-create-payment-token-response.php index 60c621632..0c530dc1b 100644 --- a/woocommerce/payment-gateway/api/interface-sv-wc-payment-gateway-api-create-payment-token-response.php +++ b/woocommerce/payment-gateway/api/interface-sv-wc-payment-gateway-api-create-payment-token-response.php @@ -22,11 +22,11 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; defined( 'ABSPATH' ) or exit; -if ( ! interface_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WC_Payment_Gateway_API_Create_Payment_Token_Response' ) ) : +if ( ! interface_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WC_Payment_Gateway_API_Create_Payment_Token_Response' ) ) : /** diff --git a/woocommerce/payment-gateway/api/interface-sv-wc-payment-gateway-api-customer-response.php b/woocommerce/payment-gateway/api/interface-sv-wc-payment-gateway-api-customer-response.php index 53be15329..8d025f737 100644 --- a/woocommerce/payment-gateway/api/interface-sv-wc-payment-gateway-api-customer-response.php +++ b/woocommerce/payment-gateway/api/interface-sv-wc-payment-gateway-api-customer-response.php @@ -22,11 +22,11 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; defined( 'ABSPATH' ) or exit; -if ( ! interface_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WC_Payment_Gateway_API_Customer_Response' ) ) : +if ( ! interface_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WC_Payment_Gateway_API_Customer_Response' ) ) : /** diff --git a/woocommerce/payment-gateway/api/interface-sv-wc-payment-gateway-api-get-tokenized-payment-methods-response.php b/woocommerce/payment-gateway/api/interface-sv-wc-payment-gateway-api-get-tokenized-payment-methods-response.php index b96c8dede..493dafff2 100644 --- a/woocommerce/payment-gateway/api/interface-sv-wc-payment-gateway-api-get-tokenized-payment-methods-response.php +++ b/woocommerce/payment-gateway/api/interface-sv-wc-payment-gateway-api-get-tokenized-payment-methods-response.php @@ -22,11 +22,11 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; defined( 'ABSPATH' ) or exit; -if ( ! interface_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WC_API_Get_Tokenized_Payment_Methods_Response' ) ) : +if ( ! interface_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WC_API_Get_Tokenized_Payment_Methods_Response' ) ) : /** diff --git a/woocommerce/payment-gateway/api/interface-sv-wc-payment-gateway-api-payment-notification-credit-card-response.php b/woocommerce/payment-gateway/api/interface-sv-wc-payment-gateway-api-payment-notification-credit-card-response.php index e3e54df30..ca642fc70 100644 --- a/woocommerce/payment-gateway/api/interface-sv-wc-payment-gateway-api-payment-notification-credit-card-response.php +++ b/woocommerce/payment-gateway/api/interface-sv-wc-payment-gateway-api-payment-notification-credit-card-response.php @@ -22,11 +22,11 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; defined( 'ABSPATH' ) or exit; -if ( ! interface_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WC_Payment_Gateway_API_Payment_Notification_Credit_Card_Response' ) ) : +if ( ! interface_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WC_Payment_Gateway_API_Payment_Notification_Credit_Card_Response' ) ) : /** diff --git a/woocommerce/payment-gateway/api/interface-sv-wc-payment-gateway-api-payment-notification-echeck-response.php b/woocommerce/payment-gateway/api/interface-sv-wc-payment-gateway-api-payment-notification-echeck-response.php index 031be701e..cc854e5d4 100644 --- a/woocommerce/payment-gateway/api/interface-sv-wc-payment-gateway-api-payment-notification-echeck-response.php +++ b/woocommerce/payment-gateway/api/interface-sv-wc-payment-gateway-api-payment-notification-echeck-response.php @@ -22,11 +22,11 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; defined( 'ABSPATH' ) or exit; -if ( ! interface_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WC_Payment_Gateway_API_Payment_Notification_eCheck_Response' ) ) : +if ( ! interface_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WC_Payment_Gateway_API_Payment_Notification_eCheck_Response' ) ) : /** diff --git a/woocommerce/payment-gateway/api/interface-sv-wc-payment-gateway-api-payment-notification-response.php b/woocommerce/payment-gateway/api/interface-sv-wc-payment-gateway-api-payment-notification-response.php index fda1c909e..350fd561d 100644 --- a/woocommerce/payment-gateway/api/interface-sv-wc-payment-gateway-api-payment-notification-response.php +++ b/woocommerce/payment-gateway/api/interface-sv-wc-payment-gateway-api-payment-notification-response.php @@ -22,11 +22,11 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; defined( 'ABSPATH' ) or exit; -if ( ! interface_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WC_Payment_Gateway_API_Payment_Notification_Response' ) ) : +if ( ! interface_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WC_Payment_Gateway_API_Payment_Notification_Response' ) ) : /** diff --git a/woocommerce/payment-gateway/api/interface-sv-wc-payment-gateway-api-payment-notification-tokenization-response.php b/woocommerce/payment-gateway/api/interface-sv-wc-payment-gateway-api-payment-notification-tokenization-response.php index a8e6bab26..bc768e593 100644 --- a/woocommerce/payment-gateway/api/interface-sv-wc-payment-gateway-api-payment-notification-tokenization-response.php +++ b/woocommerce/payment-gateway/api/interface-sv-wc-payment-gateway-api-payment-notification-tokenization-response.php @@ -22,11 +22,11 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; defined( 'ABSPATH' ) or exit; -if ( ! interface_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WC_Payment_Gateway_Payment_Notification_Tokenization_Response' ) ) : +if ( ! interface_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WC_Payment_Gateway_Payment_Notification_Tokenization_Response' ) ) : /** diff --git a/woocommerce/payment-gateway/api/interface-sv-wc-payment-gateway-api-request.php b/woocommerce/payment-gateway/api/interface-sv-wc-payment-gateway-api-request.php index f23385d3d..bc2414565 100644 --- a/woocommerce/payment-gateway/api/interface-sv-wc-payment-gateway-api-request.php +++ b/woocommerce/payment-gateway/api/interface-sv-wc-payment-gateway-api-request.php @@ -22,11 +22,11 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; defined( 'ABSPATH' ) or exit; -if ( ! interface_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WC_Payment_Gateway_API_Request' ) ) : +if ( ! interface_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WC_Payment_Gateway_API_Request' ) ) : /** diff --git a/woocommerce/payment-gateway/api/interface-sv-wc-payment-gateway-api-response.php b/woocommerce/payment-gateway/api/interface-sv-wc-payment-gateway-api-response.php index 128474ea4..62914723e 100644 --- a/woocommerce/payment-gateway/api/interface-sv-wc-payment-gateway-api-response.php +++ b/woocommerce/payment-gateway/api/interface-sv-wc-payment-gateway-api-response.php @@ -22,11 +22,11 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; defined( 'ABSPATH' ) or exit; -if ( ! interface_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WC_Payment_Gateway_API_Response' ) ) : +if ( ! interface_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WC_Payment_Gateway_API_Response' ) ) : /** diff --git a/woocommerce/payment-gateway/api/interface-sv-wc-payment-gateway-api.php b/woocommerce/payment-gateway/api/interface-sv-wc-payment-gateway-api.php index 1c8372dfd..5091fd807 100644 --- a/woocommerce/payment-gateway/api/interface-sv-wc-payment-gateway-api.php +++ b/woocommerce/payment-gateway/api/interface-sv-wc-payment-gateway-api.php @@ -22,11 +22,11 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; defined( 'ABSPATH' ) or exit; -if ( ! interface_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WC_Payment_Gateway_API' ) ) : +if ( ! interface_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WC_Payment_Gateway_API' ) ) : /** diff --git a/woocommerce/payment-gateway/assets/dist/frontend/sv-wc-payment-gateway-apple-pay.js b/woocommerce/payment-gateway/assets/dist/frontend/sv-wc-payment-gateway-apple-pay.js index 7fae6cc4c..265b143b0 100644 --- a/woocommerce/payment-gateway/assets/dist/frontend/sv-wc-payment-gateway-apple-pay.js +++ b/woocommerce/payment-gateway/assets/dist/frontend/sv-wc-payment-gateway-apple-pay.js @@ -1,2 +1,2 @@ -(function(){jQuery(function(e){return window.SV_WC_Apple_Pay_Handler_v6_0_0=class{constructor(e){this.init_product_page=this.init_product_page.bind(this),this.init_cart_page=this.init_cart_page.bind(this),this.init_checkout_page=this.init_checkout_page.bind(this),this.on_validate_merchant=this.on_validate_merchant.bind(this),this.validate_merchant=this.validate_merchant.bind(this),this.on_payment_method_selected=this.on_payment_method_selected.bind(this),this.on_shipping_contact_selected=this.on_shipping_contact_selected.bind(this),this.on_shipping_method_selected=this.on_shipping_method_selected.bind(this),this.on_payment_authorized=this.on_payment_authorized.bind(this),this.process_authorization=this.process_authorization.bind(this),this.on_cancel_payment=this.on_cancel_payment.bind(this),this.reset_payment_request=this.reset_payment_request.bind(this),this.get_payment_request=this.get_payment_request.bind(this),this.gateway_id=e.gateway_id,this.gateway_slug=e.gateway_slug,this.merchant_id=e.merchant_id,this.ajax_url=e.ajax_url,this.validate_nonce=e.validate_nonce,this.recalculate_totals_nonce=e.recalculate_totals_nonce,this.process_nonce=e.process_nonce,this.payment_request=e.payment_request,this.generic_error=e.generic_error,this.wrapper=".sv-wc-external-checkout",this.container=".buttons-container",this.button=".sv-wc-apple-pay-button"}is_available(){return!!window.ApplePaySession&&ApplePaySession.canMakePaymentsWithActiveCard(this.merchant_id).then(e=>e)}init(){if(1===e(this.container).children().length&&e(this.wrapper).hide(),this.is_available()&&(e("form.cart").length?this.init_product_page():e("form.woocommerce-cart-form").length?this.init_cart_page():e("form.woocommerce-checkout").length&&this.init_checkout_page(),this.ui_element))return this.payment_request&&(e(this.button).show(),e(this.wrapper).show()),e(document.body).on("click",".sv-wc-apple-pay-button",e=>{e.preventDefault(),this.block_ui();try{return this.session=this.get_new_session(this.payment_request),this.session.onvalidatemerchant=e=>this.on_validate_merchant(e),this.session.onpaymentmethodselected=e=>this.on_payment_method_selected(e),this.session.onshippingcontactselected=e=>this.on_shipping_contact_selected(e),this.session.onshippingmethodselected=e=>this.on_shipping_method_selected(e),this.session.onpaymentauthorized=e=>this.on_payment_authorized(e),this.session.oncancel=e=>this.on_cancel_payment(e),this.session.begin()}catch(e){return this.fail_payment(e)}})}init_product_page(){return this.ui_element=e("form.cart")}init_cart_page(){return this.ui_element=e("form.woocommerce-cart-form").parents("div.woocommerce"),e(document.body).on("updated_cart_totals",()=>this.reset_payment_request())}init_checkout_page(){return this.ui_element=e("form.woocommerce-checkout"),e(document.body).on("updated_checkout",()=>this.reset_payment_request())}get_new_session(e){return new ApplePaySession(this.get_sdk_version(),e)}get_sdk_version(){return 2}on_validate_merchant(e){return this.validate_merchant(e.validationURL).then(e=>(e=JSON.parse(e),this.session.completeMerchantValidation(e)),e=>(this.session.abort(),this.fail_payment("Merchant could no be validated. "+e.message)))}validate_merchant(t){return new Promise((s,i)=>{var n;return n={action:`wc_${this.gateway_id}_apple_pay_validate_merchant`,nonce:this.validate_nonce,merchant_id:this.merchant_id,url:t},e.post(this.ajax_url,n,e=>e.success?s(e.data):i(e.data))})}on_payment_method_selected(t){return new Promise((t,s)=>{var i;return i={action:`wc_${this.gateway_id}_apple_pay_recalculate_totals`,nonce:this.recalculate_totals_nonce},e.post(this.ajax_url,i,e=>e.success?(i=e.data,t(this.session.completePaymentMethodSelection(i.total,i.line_items))):(console.error("[Apple Pay] Error selecting a shipping contact. "+e.data.message),s(this.session.completePaymentMethodSelection(this.payment_request.total,this.payment_request.lineItems))))})}on_shipping_contact_selected(t){return new Promise((s,i)=>{var n;return n={action:`wc_${this.gateway_id}_apple_pay_recalculate_totals`,nonce:this.recalculate_totals_nonce,contact:t.shippingContact},e.post(this.ajax_url,n,e=>e.success?(n=e.data,s(this.session.completeShippingContactSelection(ApplePaySession.STATUS_SUCCESS,n.shipping_methods,n.total,n.line_items))):(console.error("[Apple Pay] Error selecting a shipping contact. "+e.data.message),i(this.session.completeShippingContactSelection(ApplePaySession.STATUS_FAILURE,[],this.payment_request.total,this.payment_request.lineItems))))})}on_shipping_method_selected(t){return new Promise((s,i)=>{var n;return n={action:`wc_${this.gateway_id}_apple_pay_recalculate_totals`,nonce:this.recalculate_totals_nonce,method:t.shippingMethod.identifier},e.post(this.ajax_url,n,e=>e.success?(n=e.data,s(this.session.completeShippingMethodSelection(ApplePaySession.STATUS_SUCCESS,n.total,n.line_items))):(console.error("[Apple Pay] Error selecting a shipping method. "+e.data.message),i(this.session.completeShippingMethodSelection(ApplePaySession.STATUS_FAILURE,this.payment_request.total,this.payment_request.lineItems))))})}on_payment_authorized(e){return this.process_authorization(e.payment).then(e=>(this.set_payment_status(!0),this.complete_purchase(e)),e=>(this.set_payment_status(!1),this.fail_payment("Payment could no be processed. "+e.message)))}process_authorization(t){return new Promise((s,i)=>{var n;return n={action:`wc_${this.gateway_id}_apple_pay_process_payment`,nonce:this.process_nonce,payment:JSON.stringify(t)},e.post(this.ajax_url,n,e=>e.success?s(e.data):i(e.data))})}on_cancel_payment(e){return this.unblock_ui()}complete_purchase(e){return window.location=e.redirect}fail_payment(e){return console.error("[Apple Pay] "+e),this.unblock_ui(),this.render_errors([this.generic_error])}set_payment_status(e){var t;return t=e?ApplePaySession.STATUS_SUCCESS:ApplePaySession.STATUS_FAILURE,this.session.completePayment(t)}reset_payment_request(t={}){return this.block_ui(),this.get_payment_request(t).then(t=>(e(this.button).show(),e(this.wrapper).show(),this.payment_request=JSON.parse(t),this.unblock_ui()),t=>(console.error("[Apple Pay] Could not build payment request. "+t.message),e(this.button).hide(),1===e(this.container).children().length&&e(this.wrapper).hide(),this.unblock_ui()))}get_payment_request(t){return new Promise((s,i)=>{var n;return n={action:`wc_${this.gateway_id}_apple_pay_get_payment_request`},e.extend(t,n),e.post(this.ajax_url,t,e=>e.success?s(e.data):i(e.data))})}render_errors(t){return e(".woocommerce-error, .woocommerce-message").remove(),this.ui_element.prepend('"),this.ui_element.removeClass("processing").unblock(),e("html, body").animate({scrollTop:this.ui_element.offset().top-100},1e3)}block_ui(){return this.ui_element.block({message:null,overlayCSS:{background:"#fff",opacity:.6}})}unblock_ui(){return this.ui_element.unblock()}},e(document.body).trigger("sv_wc_apple_pay_handler_v6_0_0_loaded")})}).call({}); +(function(){jQuery(function(e){return window.SV_WC_Apple_Pay_Handler_v6_0_1=class{constructor(e){this.init_product_page=this.init_product_page.bind(this),this.init_cart_page=this.init_cart_page.bind(this),this.init_checkout_page=this.init_checkout_page.bind(this),this.on_validate_merchant=this.on_validate_merchant.bind(this),this.validate_merchant=this.validate_merchant.bind(this),this.on_payment_method_selected=this.on_payment_method_selected.bind(this),this.on_shipping_contact_selected=this.on_shipping_contact_selected.bind(this),this.on_shipping_method_selected=this.on_shipping_method_selected.bind(this),this.on_payment_authorized=this.on_payment_authorized.bind(this),this.process_authorization=this.process_authorization.bind(this),this.on_cancel_payment=this.on_cancel_payment.bind(this),this.reset_payment_request=this.reset_payment_request.bind(this),this.get_payment_request=this.get_payment_request.bind(this),this.gateway_id=e.gateway_id,this.gateway_slug=e.gateway_slug,this.merchant_id=e.merchant_id,this.ajax_url=e.ajax_url,this.validate_nonce=e.validate_nonce,this.recalculate_totals_nonce=e.recalculate_totals_nonce,this.process_nonce=e.process_nonce,this.payment_request=e.payment_request,this.generic_error=e.generic_error,this.wrapper=".sv-wc-external-checkout",this.container=".buttons-container",this.button=".sv-wc-apple-pay-button"}is_available(){return!!window.ApplePaySession&&ApplePaySession.canMakePaymentsWithActiveCard(this.merchant_id).then(e=>e)}init(){if(1===e(this.container).children().length&&e(this.wrapper).hide(),this.is_available()&&(e("form.cart").length?this.init_product_page():e("form.woocommerce-cart-form").length?this.init_cart_page():e("form.woocommerce-checkout").length&&this.init_checkout_page(),this.ui_element))return this.payment_request&&(e(this.button).show(),e(this.wrapper).show()),e(document.body).on("click",".sv-wc-apple-pay-button",e=>{e.preventDefault(),this.block_ui();try{return this.session=this.get_new_session(this.payment_request),this.session.onvalidatemerchant=e=>this.on_validate_merchant(e),this.session.onpaymentmethodselected=e=>this.on_payment_method_selected(e),this.session.onshippingcontactselected=e=>this.on_shipping_contact_selected(e),this.session.onshippingmethodselected=e=>this.on_shipping_method_selected(e),this.session.onpaymentauthorized=e=>this.on_payment_authorized(e),this.session.oncancel=e=>this.on_cancel_payment(e),this.session.begin()}catch(e){return this.fail_payment(e)}})}init_product_page(){return this.ui_element=e("form.cart")}init_cart_page(){return this.ui_element=e("form.woocommerce-cart-form").parents("div.woocommerce"),e(document.body).on("updated_cart_totals",()=>this.reset_payment_request())}init_checkout_page(){return this.ui_element=e("form.woocommerce-checkout"),e(document.body).on("updated_checkout",()=>this.reset_payment_request())}get_new_session(e){return new ApplePaySession(this.get_sdk_version(),e)}get_sdk_version(){return 2}on_validate_merchant(e){return this.validate_merchant(e.validationURL).then(e=>(e=JSON.parse(e),this.session.completeMerchantValidation(e)),e=>(this.session.abort(),this.fail_payment("Merchant could no be validated. "+e.message)))}validate_merchant(t){return new Promise((s,i)=>{var n;return n={action:`wc_${this.gateway_id}_apple_pay_validate_merchant`,nonce:this.validate_nonce,merchant_id:this.merchant_id,url:t},e.post(this.ajax_url,n,e=>e.success?s(e.data):i(e.data))})}on_payment_method_selected(t){return new Promise((t,s)=>{var i;return i={action:`wc_${this.gateway_id}_apple_pay_recalculate_totals`,nonce:this.recalculate_totals_nonce},e.post(this.ajax_url,i,e=>e.success?(i=e.data,t(this.session.completePaymentMethodSelection(i.total,i.line_items))):(console.error("[Apple Pay] Error selecting a shipping contact. "+e.data.message),s(this.session.completePaymentMethodSelection(this.payment_request.total,this.payment_request.lineItems))))})}on_shipping_contact_selected(t){return new Promise((s,i)=>{var n;return n={action:`wc_${this.gateway_id}_apple_pay_recalculate_totals`,nonce:this.recalculate_totals_nonce,contact:t.shippingContact},e.post(this.ajax_url,n,e=>e.success?(n=e.data,s(this.session.completeShippingContactSelection(ApplePaySession.STATUS_SUCCESS,n.shipping_methods,n.total,n.line_items))):(console.error("[Apple Pay] Error selecting a shipping contact. "+e.data.message),i(this.session.completeShippingContactSelection(ApplePaySession.STATUS_FAILURE,[],this.payment_request.total,this.payment_request.lineItems))))})}on_shipping_method_selected(t){return new Promise((s,i)=>{var n;return n={action:`wc_${this.gateway_id}_apple_pay_recalculate_totals`,nonce:this.recalculate_totals_nonce,method:t.shippingMethod.identifier},e.post(this.ajax_url,n,e=>e.success?(n=e.data,s(this.session.completeShippingMethodSelection(ApplePaySession.STATUS_SUCCESS,n.total,n.line_items))):(console.error("[Apple Pay] Error selecting a shipping method. "+e.data.message),i(this.session.completeShippingMethodSelection(ApplePaySession.STATUS_FAILURE,this.payment_request.total,this.payment_request.lineItems))))})}on_payment_authorized(e){return this.process_authorization(e.payment).then(e=>(this.set_payment_status(!0),this.complete_purchase(e)),e=>(this.set_payment_status(!1),this.fail_payment("Payment could no be processed. "+e.message)))}process_authorization(t){return new Promise((s,i)=>{var n;return n={action:`wc_${this.gateway_id}_apple_pay_process_payment`,nonce:this.process_nonce,payment:JSON.stringify(t)},e.post(this.ajax_url,n,e=>e.success?s(e.data):i(e.data))})}on_cancel_payment(e){return this.unblock_ui()}complete_purchase(e){return window.location=e.redirect}fail_payment(e){return console.error("[Apple Pay] "+e),this.unblock_ui(),this.render_errors([this.generic_error])}set_payment_status(e){var t;return t=e?ApplePaySession.STATUS_SUCCESS:ApplePaySession.STATUS_FAILURE,this.session.completePayment(t)}reset_payment_request(t={}){return this.block_ui(),this.get_payment_request(t).then(t=>(e(this.button).show(),e(this.wrapper).show(),this.payment_request=JSON.parse(t),this.unblock_ui()),t=>(console.error("[Apple Pay] Could not build payment request. "+t.message),e(this.button).hide(),1===e(this.container).children().length&&e(this.wrapper).hide(),this.unblock_ui()))}get_payment_request(t){return new Promise((s,i)=>{var n;return n={action:`wc_${this.gateway_id}_apple_pay_get_payment_request`},e.extend(t,n),e.post(this.ajax_url,t,e=>e.success?s(e.data):i(e.data))})}render_errors(t){return e(".woocommerce-error, .woocommerce-message").remove(),this.ui_element.prepend('"),this.ui_element.removeClass("processing").unblock(),e("html, body").animate({scrollTop:this.ui_element.offset().top-100},1e3)}block_ui(){return this.ui_element.block({message:null,overlayCSS:{background:"#fff",opacity:.6}})}unblock_ui(){return this.ui_element.unblock()}},e(document.body).trigger("sv_wc_apple_pay_handler_v6_0_1_loaded")})}).call({}); //# sourceMappingURL=sv-wc-payment-gateway-apple-pay.js.map diff --git a/woocommerce/payment-gateway/assets/dist/frontend/sv-wc-payment-gateway-apple-pay.js.map b/woocommerce/payment-gateway/assets/dist/frontend/sv-wc-payment-gateway-apple-pay.js.map index 1efade3fd..fda324e68 100644 --- a/woocommerce/payment-gateway/assets/dist/frontend/sv-wc-payment-gateway-apple-pay.js.map +++ b/woocommerce/payment-gateway/assets/dist/frontend/sv-wc-payment-gateway-apple-pay.js.map @@ -1 +1 @@ -{"mappings":"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","sources":["","woocommerce/payment-gateway/assets/js/frontend/sv-wc-payment-gateway-apple-pay.coffee"],"sourcesContent":["(() => {\nvar $83dab3ad15da905a$exports = {};\n(function() {\n /*\n WooCommerce Apple Pay Handler\n Version 4.7.0\n\n Copyright (c) 2016, SkyVerge, Inc.\n Licensed under the GNU General Public License v3.0\n http://www.gnu.org/licenses/gpl-3.0.html\n */ jQuery(function($) {\n \"use strict\";\n // The WooCommerce Apple Pay handler base class.\n // @since 4.7.0\n window.SV_WC_Apple_Pay_Handler_v6_0_0 = class SV_WC_Apple_Pay_Handler_v6_0_0 {\n // Constructs the handler.\n // @since 4.7.0\n constructor(args){\n // Initializes the product page.\n // @since 5.6.0\n this.init_product_page = this.init_product_page.bind(this);\n // Initializes the cart page.\n // @since 5.6.0\n this.init_cart_page = this.init_cart_page.bind(this);\n // Initializes the checkout page.\n // @since 5.6.0\n this.init_checkout_page = this.init_checkout_page.bind(this);\n // The callback for after the merchant data is validated.\n // @since 4.7.0\n this.on_validate_merchant = this.on_validate_merchant.bind(this);\n // Validates the merchant data.\n // @since 4.7.0\n // @return object\n this.validate_merchant = this.validate_merchant.bind(this);\n // Fires after a payment method has been selected.\n // @since 4.7.0\n this.on_payment_method_selected = this.on_payment_method_selected.bind(this);\n // Fires after a shipping contact has been selected.\n // @since 4.7.0\n this.on_shipping_contact_selected = this.on_shipping_contact_selected.bind(this);\n // Fires after a shipping method has been selected.\n // @since 4.7.0\n this.on_shipping_method_selected = this.on_shipping_method_selected.bind(this);\n // The callback for after the payment data is authorized.\n // @since 4.7.0\n this.on_payment_authorized = this.on_payment_authorized.bind(this);\n // Processes the transaction data.\n // @since 4.7.0\n this.process_authorization = this.process_authorization.bind(this);\n // The callback for when the payment card is cancelled/dismissed.\n // @since 4.7.0\n this.on_cancel_payment = this.on_cancel_payment.bind(this);\n // Resets the payment request via AJAX.\n // Extending handlers can call this on change events to refresh the data.\n // @since 4.7.0\n this.reset_payment_request = this.reset_payment_request.bind(this);\n // Gets the payment request via AJAX.\n // @since 4.7.0\n this.get_payment_request = this.get_payment_request.bind(this);\n this.gateway_id = args.gateway_id;\n this.gateway_slug = args.gateway_slug;\n this.merchant_id = args.merchant_id;\n this.ajax_url = args.ajax_url;\n this.validate_nonce = args.validate_nonce;\n this.recalculate_totals_nonce = args.recalculate_totals_nonce;\n this.process_nonce = args.process_nonce;\n this.payment_request = args.payment_request;\n this.generic_error = args.generic_error;\n this.wrapper = '.sv-wc-external-checkout';\n this.container = '.buttons-container';\n this.button = '.sv-wc-apple-pay-button';\n }\n // Determines if Apple Pay is available.\n // @since 4.7.0\n // @return bool\n is_available() {\n if (!window.ApplePaySession) return false;\n return ApplePaySession.canMakePaymentsWithActiveCard(this.merchant_id).then((canMakePayments)=>{\n return canMakePayments;\n });\n }\n // Initializes the handler.\n // @since 4.7.0\n init() {\n // hide the wrapper if Apple Pay is the only button\n if ($(this.container).children().length === 1) $(this.wrapper).hide();\n if (!this.is_available()) return;\n // initialize for the various pages\n if ($('form.cart').length) this.init_product_page();\n else if ($('form.woocommerce-cart-form').length) this.init_cart_page();\n else if ($('form.woocommerce-checkout').length) this.init_checkout_page();\n // bail if no UI was initialized\n if (!this.ui_element) return;\n if (this.payment_request) {\n $(this.button).show();\n $(this.wrapper).show();\n }\n return $(document.body).on('click', '.sv-wc-apple-pay-button', (e)=>{\n var error;\n e.preventDefault();\n this.block_ui();\n try {\n this.session = this.get_new_session(this.payment_request);\n // set the payment card events\n this.session.onvalidatemerchant = (event)=>{\n return this.on_validate_merchant(event);\n };\n this.session.onpaymentmethodselected = (event)=>{\n return this.on_payment_method_selected(event);\n };\n this.session.onshippingcontactselected = (event)=>{\n return this.on_shipping_contact_selected(event);\n };\n this.session.onshippingmethodselected = (event)=>{\n return this.on_shipping_method_selected(event);\n };\n this.session.onpaymentauthorized = (event)=>{\n return this.on_payment_authorized(event);\n };\n this.session.oncancel = (event)=>{\n return this.on_cancel_payment(event);\n };\n return this.session.begin();\n } catch (error1) {\n error = error1;\n return this.fail_payment(error);\n }\n });\n }\n init_product_page() {\n return this.ui_element = $('form.cart');\n }\n init_cart_page() {\n this.ui_element = $('form.woocommerce-cart-form').parents('div.woocommerce');\n // re-init if the cart totals are updated\n return $(document.body).on('updated_cart_totals', ()=>{\n return this.reset_payment_request();\n });\n }\n init_checkout_page() {\n this.ui_element = $('form.woocommerce-checkout');\n return $(document.body).on('updated_checkout', ()=>{\n // re-init if the checkout is updated\n return this.reset_payment_request();\n });\n }\n // Gets a new Apple Pay session.\n // @since 5.6.0\n // @param [Object] payment_request payment request object\n // @return ApplePaySession\n get_new_session(payment_request) {\n return new ApplePaySession(this.get_sdk_version(), payment_request);\n }\n // Gets the Apple SDK version to use.\n // @since 5.6.0\n // @return int\n get_sdk_version() {\n return 2;\n }\n on_validate_merchant(event) {\n return this.validate_merchant(event.validationURL).then((merchant_session)=>{\n merchant_session = JSON.parse(merchant_session);\n return this.session.completeMerchantValidation(merchant_session);\n }, (response)=>{\n this.session.abort();\n return this.fail_payment('Merchant could no be validated. ' + response.message);\n });\n }\n validate_merchant(url) {\n return new Promise((resolve, reject)=>{\n var data;\n data = {\n 'action': `wc_${this.gateway_id}_apple_pay_validate_merchant`,\n 'nonce': this.validate_nonce,\n 'merchant_id': this.merchant_id,\n 'url': url\n };\n // retrieve a payment request object\n return $.post(this.ajax_url, data, (response)=>{\n if (response.success) return resolve(response.data);\n else return reject(response.data);\n });\n });\n }\n on_payment_method_selected(event) {\n return new Promise((resolve, reject)=>{\n var data;\n data = {\n 'action': `wc_${this.gateway_id}_apple_pay_recalculate_totals`,\n 'nonce': this.recalculate_totals_nonce\n };\n // retrieve a payment request object\n return $.post(this.ajax_url, data, (response)=>{\n if (response.success) {\n data = response.data;\n return resolve(this.session.completePaymentMethodSelection(data.total, data.line_items));\n } else {\n console.error('[Apple Pay] Error selecting a shipping contact. ' + response.data.message);\n return reject(this.session.completePaymentMethodSelection(this.payment_request.total, this.payment_request.lineItems));\n }\n });\n });\n }\n on_shipping_contact_selected(event) {\n return new Promise((resolve, reject)=>{\n var data;\n data = {\n 'action': `wc_${this.gateway_id}_apple_pay_recalculate_totals`,\n 'nonce': this.recalculate_totals_nonce,\n 'contact': event.shippingContact\n };\n // retrieve a payment request object\n return $.post(this.ajax_url, data, (response)=>{\n if (response.success) {\n data = response.data;\n return resolve(this.session.completeShippingContactSelection(ApplePaySession.STATUS_SUCCESS, data.shipping_methods, data.total, data.line_items));\n } else {\n console.error('[Apple Pay] Error selecting a shipping contact. ' + response.data.message);\n return reject(this.session.completeShippingContactSelection(ApplePaySession.STATUS_FAILURE, [], this.payment_request.total, this.payment_request.lineItems));\n }\n });\n });\n }\n on_shipping_method_selected(event) {\n return new Promise((resolve, reject)=>{\n var data;\n data = {\n 'action': `wc_${this.gateway_id}_apple_pay_recalculate_totals`,\n 'nonce': this.recalculate_totals_nonce,\n 'method': event.shippingMethod.identifier\n };\n // retrieve a payment request object\n return $.post(this.ajax_url, data, (response)=>{\n if (response.success) {\n data = response.data;\n return resolve(this.session.completeShippingMethodSelection(ApplePaySession.STATUS_SUCCESS, data.total, data.line_items));\n } else {\n console.error('[Apple Pay] Error selecting a shipping method. ' + response.data.message);\n return reject(this.session.completeShippingMethodSelection(ApplePaySession.STATUS_FAILURE, this.payment_request.total, this.payment_request.lineItems));\n }\n });\n });\n }\n on_payment_authorized(event) {\n return this.process_authorization(event.payment).then((response)=>{\n this.set_payment_status(true);\n return this.complete_purchase(response);\n }, (response)=>{\n this.set_payment_status(false);\n return this.fail_payment('Payment could no be processed. ' + response.message);\n });\n }\n process_authorization(payment) {\n return new Promise((resolve, reject)=>{\n var data;\n data = {\n action: `wc_${this.gateway_id}_apple_pay_process_payment`,\n nonce: this.process_nonce,\n payment: JSON.stringify(payment)\n };\n return $.post(this.ajax_url, data, (response)=>{\n if (response.success) return resolve(response.data);\n else return reject(response.data);\n });\n });\n }\n on_cancel_payment(event) {\n return this.unblock_ui();\n }\n // Completes the purchase based on the gateway result.\n // @since 4.7.0\n complete_purchase(response) {\n return window.location = response.redirect;\n }\n // Fails the purchase based on the gateway result.\n // @since 4.7.0\n fail_payment(error) {\n console.error('[Apple Pay] ' + error);\n this.unblock_ui();\n return this.render_errors([\n this.generic_error\n ]);\n }\n // Sets the Apple Pay payment status depending on the gateway result.\n // @since 4.7.0\n set_payment_status(success) {\n var status;\n if (success) status = ApplePaySession.STATUS_SUCCESS;\n else status = ApplePaySession.STATUS_FAILURE;\n return this.session.completePayment(status);\n }\n reset_payment_request(data = {}) {\n this.block_ui();\n return this.get_payment_request(data).then((response)=>{\n $(this.button).show();\n $(this.wrapper).show();\n this.payment_request = JSON.parse(response);\n return this.unblock_ui();\n }, (response)=>{\n console.error('[Apple Pay] Could not build payment request. ' + response.message);\n $(this.button).hide();\n // hide the wrapper if Apple Pay is the only button\n if ($(this.container).children().length === 1) $(this.wrapper).hide();\n return this.unblock_ui();\n });\n }\n get_payment_request(data) {\n return new Promise((resolve, reject)=>{\n var base_data;\n base_data = {\n 'action': `wc_${this.gateway_id}_apple_pay_get_payment_request`\n };\n $.extend(data, base_data);\n // retrieve a payment request object\n return $.post(this.ajax_url, data, (response)=>{\n if (response.success) return resolve(response.data);\n else return reject(response.data);\n });\n });\n }\n // Renders any new errors and bring them into the viewport.\n // @since 4.7.0\n render_errors(errors) {\n // hide and remove any previous errors\n $('.woocommerce-error, .woocommerce-message').remove();\n // add errors\n this.ui_element.prepend('');\n // unblock UI\n this.ui_element.removeClass('processing').unblock();\n // scroll to top\n return $('html, body').animate({\n scrollTop: this.ui_element.offset().top - 100\n }, 1000);\n }\n // Blocks the payment form UI.\n // @since 4.7.0\n block_ui() {\n return this.ui_element.block({\n message: null,\n overlayCSS: {\n background: '#fff',\n opacity: 0.6\n }\n });\n }\n // Unblocks the payment form UI.\n // @since 4.7.0\n unblock_ui() {\n return this.ui_element.unblock();\n }\n };\n // dispatch loaded event\n return $(document.body).trigger('sv_wc_apple_pay_handler_v6_0_0_loaded');\n });\n}).call($83dab3ad15da905a$exports);\n\n})();\n//# sourceMappingURL=sv-wc-payment-gateway-apple-pay.js.map\n","###\n WooCommerce Apple Pay Handler\n Version 4.7.0\n\n Copyright (c) 2016, SkyVerge, Inc.\n Licensed under the GNU General Public License v3.0\n http://www.gnu.org/licenses/gpl-3.0.html\n###\n\njQuery ( $ ) ->\n\n\t\"use strict\"\n\n\t# The WooCommerce Apple Pay handler base class.\n\t#\n\t# @since 4.7.0\n\tclass window.SV_WC_Apple_Pay_Handler_v6_0_0\n\n\n\t\t# Constructs the handler.\n\t\t#\n\t\t# @since 4.7.0\n\t\tconstructor: (args) ->\n\n\t\t\t@gateway_id = args.gateway_id\n\t\t\t@gateway_slug = args.gateway_slug\n\t\t\t@merchant_id = args.merchant_id\n\t\t\t@ajax_url = args.ajax_url\n\t\t\t@validate_nonce = args.validate_nonce\n\t\t\t@recalculate_totals_nonce = args.recalculate_totals_nonce\n\t\t\t@process_nonce = args.process_nonce\n\t\t\t@payment_request = args.payment_request\n\t\t\t@generic_error = args.generic_error\n\n\t\t\t@wrapper = '.sv-wc-external-checkout'\n\t\t\t@container = '.buttons-container'\n\t\t\t@button = '.sv-wc-apple-pay-button'\n\n\n\t\t# Determines if Apple Pay is available.\n\t\t#\n\t\t# @since 4.7.0\n\t\t# @return bool\n\t\tis_available: ->\n\n\t\t\treturn false unless window.ApplePaySession\n\n\t\t\tApplePaySession.canMakePaymentsWithActiveCard( @merchant_id ).then ( canMakePayments ) =>\n\n\t\t\t\treturn canMakePayments\n\n\n\t\t# Initializes the handler.\n\t\t#\n\t\t# @since 4.7.0\n\t\tinit: ->\n\n\t\t\t# hide the wrapper if Apple Pay is the only button\n\t\t\tif $( @container ).children().length is 1\n\t\t\t\t$( @wrapper ).hide()\n\n\t\t\treturn unless this.is_available()\n\n\t\t\t# initialize for the various pages\n\t\t\tif $( 'form.cart' ).length\n\t\t\t\tthis.init_product_page()\n\t\t\telse if $( 'form.woocommerce-cart-form' ).length\n\t\t\t\tthis.init_cart_page()\n\t\t\telse if $( 'form.woocommerce-checkout' ).length\n\t\t\t\tthis.init_checkout_page()\n\n\t\t\t# bail if no UI was initialized\n\t\t\treturn unless @ui_element\n\n\t\t\tif @payment_request\n\t\t\t\t$( @button ).show()\n\t\t\t\t$( @wrapper ).show()\n\n\t\t\t$( document.body ).on 'click', '.sv-wc-apple-pay-button', ( e ) =>\n\n\t\t\t\te.preventDefault()\n\n\t\t\t\tthis.block_ui()\n\n\t\t\t\ttry\n\n\t\t\t\t\t@session = this.get_new_session( @payment_request )\n\n\t\t\t\t\t# set the payment card events\n\t\t\t\t\t@session.onvalidatemerchant = ( event ) => this.on_validate_merchant( event )\n\t\t\t\t\t@session.onpaymentmethodselected = ( event ) => this.on_payment_method_selected( event )\n\t\t\t\t\t@session.onshippingcontactselected = ( event ) => this.on_shipping_contact_selected( event )\n\t\t\t\t\t@session.onshippingmethodselected = ( event ) => this.on_shipping_method_selected( event )\n\t\t\t\t\t@session.onpaymentauthorized = ( event ) => this.on_payment_authorized( event )\n\t\t\t\t\t@session.oncancel = ( event ) => this.on_cancel_payment( event )\n\n\t\t\t\t\t@session.begin()\n\n\t\t\t\tcatch error\n\n\t\t\t\t\tthis.fail_payment( error )\n\n\n\t\t# Initializes the product page.\n\t\t#\n\t\t# @since 5.6.0\n\t\tinit_product_page: =>\n\n\t\t\t@ui_element = $( 'form.cart' )\n\n\n\t\t# Initializes the cart page.\n\t\t#\n\t\t# @since 5.6.0\n\t\tinit_cart_page: =>\n\n\t\t\t@ui_element = $( 'form.woocommerce-cart-form' ).parents( 'div.woocommerce' )\n\n\t\t\t# re-init if the cart totals are updated\n\t\t\t$( document.body ).on 'updated_cart_totals', =>\n\n\t\t\t\tthis.reset_payment_request()\n\n\n\t\t# Initializes the checkout page.\n\t\t#\n\t\t# @since 5.6.0\n\t\tinit_checkout_page: =>\n\n\t\t\t@ui_element = $( 'form.woocommerce-checkout' )\n\n\t\t\t$( document.body ).on 'updated_checkout', =>\n\n\t\t\t\t# re-init if the checkout is updated\n\t\t\t\tthis.reset_payment_request()\n\n\n\t\t# Gets a new Apple Pay session.\n\t\t#\n\t\t# @since 5.6.0\n\t\t#\n\t\t# @param [Object] payment_request payment request object\n\t\t# @return ApplePaySession\n\t\tget_new_session: ( payment_request ) ->\n\n\t\t\treturn new ApplePaySession( this.get_sdk_version(), payment_request )\n\n\n\t\t# Gets the Apple SDK version to use.\n\t\t#\n\t\t# @since 5.6.0\n\t\t# @return int\n\t\tget_sdk_version: ->\n\n\t\t\treturn 2\n\n\n\t\t# The callback for after the merchant data is validated.\n\t\t#\n\t\t# @since 4.7.0\n\t\ton_validate_merchant: ( event ) =>\n\n\t\t\tthis.validate_merchant( event.validationURL ).then ( merchant_session ) =>\n\n\t\t\t\tmerchant_session = JSON.parse( merchant_session )\n\n\t\t\t\t@session.completeMerchantValidation( merchant_session )\n\n\t\t\t, ( response ) =>\n\n\t\t\t\t@session.abort()\n\n\t\t\t\tthis.fail_payment 'Merchant could no be validated. ' + response.message\n\n\n\t\t# Validates the merchant data.\n\t\t#\n\t\t# @since 4.7.0\n\t\t# @return object\n\t\tvalidate_merchant: ( url ) => new Promise ( resolve, reject ) =>\n\n\t\t\tdata = {\n\t\t\t\t'action': \"wc_#{ @gateway_id }_apple_pay_validate_merchant\",\n\t\t\t\t'nonce': @validate_nonce,\n\t\t\t\t'merchant_id': @merchant_id,\n\t\t\t\t'url': url\n\t\t\t}\n\n\t\t\t# retrieve a payment request object\n\t\t\t$.post @ajax_url, data, ( response ) =>\n\n\t\t\t\tif response.success\n\t\t\t\t\tresolve response.data\n\t\t\t\telse\n\t\t\t\t\treject response.data\n\n\n\t\t# Fires after a payment method has been selected.\n\t\t#\n\t\t# @since 4.7.0\n\t\ton_payment_method_selected: ( event ) =>\n\n\t\t\tnew Promise ( resolve, reject ) =>\n\n\t\t\t\tdata = {\n\t\t\t\t\t'action': \"wc_#{ @gateway_id }_apple_pay_recalculate_totals\",\n\t\t\t\t\t'nonce': @recalculate_totals_nonce,\n\t\t\t\t}\n\n\t\t\t\t# retrieve a payment request object\n\t\t\t\t$.post @ajax_url, data, ( response ) =>\n\n\t\t\t\t\tif response.success\n\n\t\t\t\t\t\tdata = response.data\n\n\t\t\t\t\t\tresolve @session.completePaymentMethodSelection( data.total, data.line_items )\n\n\t\t\t\t\telse\n\n\t\t\t\t\t\tconsole.error '[Apple Pay] Error selecting a shipping contact. ' + response.data.message\n\n\t\t\t\t\t\treject @session.completePaymentMethodSelection( @payment_request.total, @payment_request.lineItems )\n\n\n\t\t# Fires after a shipping contact has been selected.\n\t\t#\n\t\t# @since 4.7.0\n\t\ton_shipping_contact_selected: ( event ) =>\n\n\t\t\tnew Promise ( resolve, reject ) =>\n\n\t\t\t\tdata = {\n\t\t\t\t\t'action': \"wc_#{ @gateway_id }_apple_pay_recalculate_totals\",\n\t\t\t\t\t'nonce': @recalculate_totals_nonce,\n\t\t\t\t\t'contact': event.shippingContact\n\t\t\t\t}\n\n\t\t\t\t# retrieve a payment request object\n\t\t\t\t$.post @ajax_url, data, ( response ) =>\n\n\t\t\t\t\tif response.success\n\n\t\t\t\t\t\tdata = response.data\n\n\t\t\t\t\t\tresolve @session.completeShippingContactSelection( ApplePaySession.STATUS_SUCCESS, data.shipping_methods, data.total, data.line_items )\n\n\t\t\t\t\telse\n\n\t\t\t\t\t\tconsole.error '[Apple Pay] Error selecting a shipping contact. ' + response.data.message\n\n\t\t\t\t\t\treject @session.completeShippingContactSelection( ApplePaySession.STATUS_FAILURE, [], @payment_request.total, @payment_request.lineItems )\n\n\n\t\t# Fires after a shipping method has been selected.\n\t\t#\n\t\t# @since 4.7.0\n\t\ton_shipping_method_selected: ( event ) =>\n\n\t\t\tnew Promise ( resolve, reject ) =>\n\n\t\t\t\tdata = {\n\t\t\t\t\t'action': \"wc_#{ @gateway_id }_apple_pay_recalculate_totals\",\n\t\t\t\t\t'nonce': @recalculate_totals_nonce,\n\t\t\t\t\t'method': event.shippingMethod.identifier\n\t\t\t\t}\n\n\t\t\t\t# retrieve a payment request object\n\t\t\t\t$.post @ajax_url, data, ( response ) =>\n\n\t\t\t\t\tif response.success\n\n\t\t\t\t\t\tdata = response.data\n\n\t\t\t\t\t\tresolve @session.completeShippingMethodSelection( ApplePaySession.STATUS_SUCCESS, data.total, data.line_items )\n\n\t\t\t\t\telse\n\n\t\t\t\t\t\tconsole.error '[Apple Pay] Error selecting a shipping method. ' + response.data.message\n\n\t\t\t\t\t\treject @session.completeShippingMethodSelection( ApplePaySession.STATUS_FAILURE, @payment_request.total, @payment_request.lineItems )\n\n\n\t\t# The callback for after the payment data is authorized.\n\t\t#\n\t\t# @since 4.7.0\n\t\ton_payment_authorized: ( event ) =>\n\n\t\t\tthis.process_authorization( event.payment ).then ( response ) =>\n\n\t\t\t\tthis.set_payment_status( true )\n\n\t\t\t\tthis.complete_purchase( response )\n\n\t\t\t, ( response ) =>\n\n\t\t\t\tthis.set_payment_status( false )\n\n\t\t\t\tthis.fail_payment 'Payment could no be processed. ' + response.message\n\n\n\t\t# Processes the transaction data.\n\t\t#\n\t\t# @since 4.7.0\n\t\tprocess_authorization: ( payment ) => new Promise ( resolve, reject ) =>\n\n\t\t\tdata = {\n\t\t\t\taction: \"wc_#{ @gateway_id }_apple_pay_process_payment\",\n\t\t\t\tnonce: @process_nonce,\n\t\t\t\tpayment: JSON.stringify( payment )\n\t\t\t}\n\n\t\t\t$.post @ajax_url, data, ( response ) =>\n\n\t\t\t\tif response.success\n\t\t\t\t\tresolve response.data\n\t\t\t\telse\n\t\t\t\t\treject response.data\n\n\n\t\t# The callback for when the payment card is cancelled/dismissed.\n\t\t#\n\t\t# @since 4.7.0\n\t\ton_cancel_payment: ( event ) =>\n\n\t\t\tthis.unblock_ui()\n\n\n\t\t# Completes the purchase based on the gateway result.\n\t\t#\n\t\t# @since 4.7.0\n\t\tcomplete_purchase: ( response ) ->\n\n\t\t\twindow.location = response.redirect\n\n\n\t\t# Fails the purchase based on the gateway result.\n\t\t#\n\t\t# @since 4.7.0\n\t\tfail_payment: ( error ) ->\n\n\t\t\tconsole.error '[Apple Pay] ' + error\n\n\t\t\tthis.unblock_ui()\n\n\t\t\tthis.render_errors( [ @generic_error ] )\n\n\n\t\t# Sets the Apple Pay payment status depending on the gateway result.\n\t\t#\n\t\t# @since 4.7.0\n\t\tset_payment_status: ( success ) ->\n\n\t\t\tif success\n\t\t\t\tstatus = ApplePaySession.STATUS_SUCCESS\n\t\t\telse\n\t\t\t\tstatus = ApplePaySession.STATUS_FAILURE\n\n\t\t\t@session.completePayment( status )\n\n\n\t\t# Resets the payment request via AJAX.\n\t\t#\n\t\t# Extending handlers can call this on change events to refresh the data.\n\t\t#\n\t\t# @since 4.7.0\n\t\treset_payment_request: ( data = {} ) =>\n\n\t\t\tthis.block_ui()\n\n\t\t\tthis.get_payment_request( data ).then ( response ) =>\n\n\t\t\t\t$( @button ).show()\n\t\t\t\t$( @wrapper ).show()\n\n\t\t\t\t@payment_request = JSON.parse( response )\n\n\t\t\t\tthis.unblock_ui()\n\n\t\t\t, ( response ) =>\n\n\t\t\t\tconsole.error '[Apple Pay] Could not build payment request. ' + response.message\n\n\t\t\t\t$( @button ).hide()\n\t\t\t\t# hide the wrapper if Apple Pay is the only button\n\t\t\t\tif $( @container ).children().length is 1\n\t\t\t\t\t$( @wrapper ).hide()\n\n\t\t\t\tthis.unblock_ui()\n\n\n\t\t# Gets the payment request via AJAX.\n\t\t#\n\t\t# @since 4.7.0\n\t\tget_payment_request: ( data ) => new Promise ( resolve, reject ) =>\n\n\t\t\tbase_data = {\n\t\t\t\t'action': \"wc_#{ @gateway_id }_apple_pay_get_payment_request\"\n\t\t\t}\n\n\t\t\t$.extend data, base_data\n\n\t\t\t# retrieve a payment request object\n\t\t\t$.post @ajax_url, data, ( response ) =>\n\n\t\t\t\tif response.success\n\t\t\t\t\tresolve response.data\n\t\t\t\telse\n\t\t\t\t\treject response.data\n\n\n\t\t# Renders any new errors and bring them into the viewport.\n\t\t#\n\t\t# @since 4.7.0\n\t\trender_errors: ( errors ) ->\n\n\t\t\t# hide and remove any previous errors\n\t\t\t$( '.woocommerce-error, .woocommerce-message' ).remove()\n\n\t\t\t# add errors\n\t\t\t@ui_element.prepend ''\n\n\t\t\t# unblock UI\n\t\t\t@ui_element.removeClass( 'processing' ).unblock()\n\n\t\t\t# scroll to top\n\t\t\t$( 'html, body' ).animate( { scrollTop: @ui_element.offset().top - 100 }, 1000 )\n\n\n\t\t# Blocks the payment form UI.\n\t\t#\n\t\t# @since 4.7.0\n\t\tblock_ui: -> @ui_element.block( message: null, overlayCSS: background: '#fff', opacity: 0.6 )\n\n\n\t\t# Unblocks the payment form UI.\n\t\t#\n\t\t# @since 4.7.0\n\t\tunblock_ui: -> @ui_element.unblock()\n\n\n\t# dispatch loaded event\n\t$( document.body ).trigger( 'sv_wc_apple_pay_handler_v6_0_0_loaded' )\n"],"names":["jQuery","$","window","SV_WC_Apple_Pay_Handler_v6_0_0","constructor","args","init_product_page","bind","init_cart_page","init_checkout_page","on_validate_merchant","validate_merchant","on_payment_method_selected","on_shipping_contact_selected","on_shipping_method_selected","on_payment_authorized","process_authorization","on_cancel_payment","reset_payment_request","get_payment_request","gateway_id","gateway_slug","merchant_id","ajax_url","validate_nonce","recalculate_totals_nonce","process_nonce","payment_request","generic_error","wrapper","container","button","is_available","ApplePaySession","canMakePaymentsWithActiveCard","then","canMakePayments","init","children","length","hide","ui_element","show","document","body","on","e","preventDefault","block_ui","session","get_new_session","onvalidatemerchant","event","onpaymentmethodselected","onshippingcontactselected","onshippingmethodselected","onpaymentauthorized","oncancel","begin","error1","fail_payment","parents","get_sdk_version","validationURL","merchant_session","JSON","parse","completeMerchantValidation","response","abort","message","url","Promise","resolve","reject","data","post","success","completePaymentMethodSelection","total","line_items","console","error","lineItems","shippingContact","completeShippingContactSelection","STATUS_SUCCESS","shipping_methods","STATUS_FAILURE","shippingMethod","identifier","completeShippingMethodSelection","payment","set_payment_status","complete_purchase","action","nonce","stringify","unblock_ui","location","redirect","render_errors","status","completePayment","base_data","extend","errors","remove","prepend","join","removeClass","unblock","animate","scrollTop","offset","top","block","overlayCSS","background","opacity","trigger","call"],"version":3,"file":"sv-wc-payment-gateway-apple-pay.js.map"} \ No newline at end of file +{"mappings":"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","sources":["","woocommerce/payment-gateway/assets/js/frontend/sv-wc-payment-gateway-apple-pay.coffee"],"sourcesContent":["(() => {\nvar $83dab3ad15da905a$exports = {};\n(function() {\n /*\n WooCommerce Apple Pay Handler\n Version 4.7.0\n\n Copyright (c) 2016, SkyVerge, Inc.\n Licensed under the GNU General Public License v3.0\n http://www.gnu.org/licenses/gpl-3.0.html\n */ jQuery(function($) {\n \"use strict\";\n // The WooCommerce Apple Pay handler base class.\n // @since 4.7.0\n window.SV_WC_Apple_Pay_Handler_v6_0_1 = class SV_WC_Apple_Pay_Handler_v6_0_1 {\n // Constructs the handler.\n // @since 4.7.0\n constructor(args){\n // Initializes the product page.\n // @since 5.6.0\n this.init_product_page = this.init_product_page.bind(this);\n // Initializes the cart page.\n // @since 5.6.0\n this.init_cart_page = this.init_cart_page.bind(this);\n // Initializes the checkout page.\n // @since 5.6.0\n this.init_checkout_page = this.init_checkout_page.bind(this);\n // The callback for after the merchant data is validated.\n // @since 4.7.0\n this.on_validate_merchant = this.on_validate_merchant.bind(this);\n // Validates the merchant data.\n // @since 4.7.0\n // @return object\n this.validate_merchant = this.validate_merchant.bind(this);\n // Fires after a payment method has been selected.\n // @since 4.7.0\n this.on_payment_method_selected = this.on_payment_method_selected.bind(this);\n // Fires after a shipping contact has been selected.\n // @since 4.7.0\n this.on_shipping_contact_selected = this.on_shipping_contact_selected.bind(this);\n // Fires after a shipping method has been selected.\n // @since 4.7.0\n this.on_shipping_method_selected = this.on_shipping_method_selected.bind(this);\n // The callback for after the payment data is authorized.\n // @since 4.7.0\n this.on_payment_authorized = this.on_payment_authorized.bind(this);\n // Processes the transaction data.\n // @since 4.7.0\n this.process_authorization = this.process_authorization.bind(this);\n // The callback for when the payment card is cancelled/dismissed.\n // @since 4.7.0\n this.on_cancel_payment = this.on_cancel_payment.bind(this);\n // Resets the payment request via AJAX.\n // Extending handlers can call this on change events to refresh the data.\n // @since 4.7.0\n this.reset_payment_request = this.reset_payment_request.bind(this);\n // Gets the payment request via AJAX.\n // @since 4.7.0\n this.get_payment_request = this.get_payment_request.bind(this);\n this.gateway_id = args.gateway_id;\n this.gateway_slug = args.gateway_slug;\n this.merchant_id = args.merchant_id;\n this.ajax_url = args.ajax_url;\n this.validate_nonce = args.validate_nonce;\n this.recalculate_totals_nonce = args.recalculate_totals_nonce;\n this.process_nonce = args.process_nonce;\n this.payment_request = args.payment_request;\n this.generic_error = args.generic_error;\n this.wrapper = '.sv-wc-external-checkout';\n this.container = '.buttons-container';\n this.button = '.sv-wc-apple-pay-button';\n }\n // Determines if Apple Pay is available.\n // @since 4.7.0\n // @return bool\n is_available() {\n if (!window.ApplePaySession) return false;\n return ApplePaySession.canMakePaymentsWithActiveCard(this.merchant_id).then((canMakePayments)=>{\n return canMakePayments;\n });\n }\n // Initializes the handler.\n // @since 4.7.0\n init() {\n // hide the wrapper if Apple Pay is the only button\n if ($(this.container).children().length === 1) $(this.wrapper).hide();\n if (!this.is_available()) return;\n // initialize for the various pages\n if ($('form.cart').length) this.init_product_page();\n else if ($('form.woocommerce-cart-form').length) this.init_cart_page();\n else if ($('form.woocommerce-checkout').length) this.init_checkout_page();\n // bail if no UI was initialized\n if (!this.ui_element) return;\n if (this.payment_request) {\n $(this.button).show();\n $(this.wrapper).show();\n }\n return $(document.body).on('click', '.sv-wc-apple-pay-button', (e)=>{\n var error;\n e.preventDefault();\n this.block_ui();\n try {\n this.session = this.get_new_session(this.payment_request);\n // set the payment card events\n this.session.onvalidatemerchant = (event)=>{\n return this.on_validate_merchant(event);\n };\n this.session.onpaymentmethodselected = (event)=>{\n return this.on_payment_method_selected(event);\n };\n this.session.onshippingcontactselected = (event)=>{\n return this.on_shipping_contact_selected(event);\n };\n this.session.onshippingmethodselected = (event)=>{\n return this.on_shipping_method_selected(event);\n };\n this.session.onpaymentauthorized = (event)=>{\n return this.on_payment_authorized(event);\n };\n this.session.oncancel = (event)=>{\n return this.on_cancel_payment(event);\n };\n return this.session.begin();\n } catch (error1) {\n error = error1;\n return this.fail_payment(error);\n }\n });\n }\n init_product_page() {\n return this.ui_element = $('form.cart');\n }\n init_cart_page() {\n this.ui_element = $('form.woocommerce-cart-form').parents('div.woocommerce');\n // re-init if the cart totals are updated\n return $(document.body).on('updated_cart_totals', ()=>{\n return this.reset_payment_request();\n });\n }\n init_checkout_page() {\n this.ui_element = $('form.woocommerce-checkout');\n return $(document.body).on('updated_checkout', ()=>{\n // re-init if the checkout is updated\n return this.reset_payment_request();\n });\n }\n // Gets a new Apple Pay session.\n // @since 5.6.0\n // @param [Object] payment_request payment request object\n // @return ApplePaySession\n get_new_session(payment_request) {\n return new ApplePaySession(this.get_sdk_version(), payment_request);\n }\n // Gets the Apple SDK version to use.\n // @since 5.6.0\n // @return int\n get_sdk_version() {\n return 2;\n }\n on_validate_merchant(event) {\n return this.validate_merchant(event.validationURL).then((merchant_session)=>{\n merchant_session = JSON.parse(merchant_session);\n return this.session.completeMerchantValidation(merchant_session);\n }, (response)=>{\n this.session.abort();\n return this.fail_payment('Merchant could no be validated. ' + response.message);\n });\n }\n validate_merchant(url) {\n return new Promise((resolve, reject)=>{\n var data;\n data = {\n 'action': `wc_${this.gateway_id}_apple_pay_validate_merchant`,\n 'nonce': this.validate_nonce,\n 'merchant_id': this.merchant_id,\n 'url': url\n };\n // retrieve a payment request object\n return $.post(this.ajax_url, data, (response)=>{\n if (response.success) return resolve(response.data);\n else return reject(response.data);\n });\n });\n }\n on_payment_method_selected(event) {\n return new Promise((resolve, reject)=>{\n var data;\n data = {\n 'action': `wc_${this.gateway_id}_apple_pay_recalculate_totals`,\n 'nonce': this.recalculate_totals_nonce\n };\n // retrieve a payment request object\n return $.post(this.ajax_url, data, (response)=>{\n if (response.success) {\n data = response.data;\n return resolve(this.session.completePaymentMethodSelection(data.total, data.line_items));\n } else {\n console.error('[Apple Pay] Error selecting a shipping contact. ' + response.data.message);\n return reject(this.session.completePaymentMethodSelection(this.payment_request.total, this.payment_request.lineItems));\n }\n });\n });\n }\n on_shipping_contact_selected(event) {\n return new Promise((resolve, reject)=>{\n var data;\n data = {\n 'action': `wc_${this.gateway_id}_apple_pay_recalculate_totals`,\n 'nonce': this.recalculate_totals_nonce,\n 'contact': event.shippingContact\n };\n // retrieve a payment request object\n return $.post(this.ajax_url, data, (response)=>{\n if (response.success) {\n data = response.data;\n return resolve(this.session.completeShippingContactSelection(ApplePaySession.STATUS_SUCCESS, data.shipping_methods, data.total, data.line_items));\n } else {\n console.error('[Apple Pay] Error selecting a shipping contact. ' + response.data.message);\n return reject(this.session.completeShippingContactSelection(ApplePaySession.STATUS_FAILURE, [], this.payment_request.total, this.payment_request.lineItems));\n }\n });\n });\n }\n on_shipping_method_selected(event) {\n return new Promise((resolve, reject)=>{\n var data;\n data = {\n 'action': `wc_${this.gateway_id}_apple_pay_recalculate_totals`,\n 'nonce': this.recalculate_totals_nonce,\n 'method': event.shippingMethod.identifier\n };\n // retrieve a payment request object\n return $.post(this.ajax_url, data, (response)=>{\n if (response.success) {\n data = response.data;\n return resolve(this.session.completeShippingMethodSelection(ApplePaySession.STATUS_SUCCESS, data.total, data.line_items));\n } else {\n console.error('[Apple Pay] Error selecting a shipping method. ' + response.data.message);\n return reject(this.session.completeShippingMethodSelection(ApplePaySession.STATUS_FAILURE, this.payment_request.total, this.payment_request.lineItems));\n }\n });\n });\n }\n on_payment_authorized(event) {\n return this.process_authorization(event.payment).then((response)=>{\n this.set_payment_status(true);\n return this.complete_purchase(response);\n }, (response)=>{\n this.set_payment_status(false);\n return this.fail_payment('Payment could no be processed. ' + response.message);\n });\n }\n process_authorization(payment) {\n return new Promise((resolve, reject)=>{\n var data;\n data = {\n action: `wc_${this.gateway_id}_apple_pay_process_payment`,\n nonce: this.process_nonce,\n payment: JSON.stringify(payment)\n };\n return $.post(this.ajax_url, data, (response)=>{\n if (response.success) return resolve(response.data);\n else return reject(response.data);\n });\n });\n }\n on_cancel_payment(event) {\n return this.unblock_ui();\n }\n // Completes the purchase based on the gateway result.\n // @since 4.7.0\n complete_purchase(response) {\n return window.location = response.redirect;\n }\n // Fails the purchase based on the gateway result.\n // @since 4.7.0\n fail_payment(error) {\n console.error('[Apple Pay] ' + error);\n this.unblock_ui();\n return this.render_errors([\n this.generic_error\n ]);\n }\n // Sets the Apple Pay payment status depending on the gateway result.\n // @since 4.7.0\n set_payment_status(success) {\n var status;\n if (success) status = ApplePaySession.STATUS_SUCCESS;\n else status = ApplePaySession.STATUS_FAILURE;\n return this.session.completePayment(status);\n }\n reset_payment_request(data = {}) {\n this.block_ui();\n return this.get_payment_request(data).then((response)=>{\n $(this.button).show();\n $(this.wrapper).show();\n this.payment_request = JSON.parse(response);\n return this.unblock_ui();\n }, (response)=>{\n console.error('[Apple Pay] Could not build payment request. ' + response.message);\n $(this.button).hide();\n // hide the wrapper if Apple Pay is the only button\n if ($(this.container).children().length === 1) $(this.wrapper).hide();\n return this.unblock_ui();\n });\n }\n get_payment_request(data) {\n return new Promise((resolve, reject)=>{\n var base_data;\n base_data = {\n 'action': `wc_${this.gateway_id}_apple_pay_get_payment_request`\n };\n $.extend(data, base_data);\n // retrieve a payment request object\n return $.post(this.ajax_url, data, (response)=>{\n if (response.success) return resolve(response.data);\n else return reject(response.data);\n });\n });\n }\n // Renders any new errors and bring them into the viewport.\n // @since 4.7.0\n render_errors(errors) {\n // hide and remove any previous errors\n $('.woocommerce-error, .woocommerce-message').remove();\n // add errors\n this.ui_element.prepend('
  • ' + errors.join('
  • ') + '
');\n // unblock UI\n this.ui_element.removeClass('processing').unblock();\n // scroll to top\n return $('html, body').animate({\n scrollTop: this.ui_element.offset().top - 100\n }, 1000);\n }\n // Blocks the payment form UI.\n // @since 4.7.0\n block_ui() {\n return this.ui_element.block({\n message: null,\n overlayCSS: {\n background: '#fff',\n opacity: 0.6\n }\n });\n }\n // Unblocks the payment form UI.\n // @since 4.7.0\n unblock_ui() {\n return this.ui_element.unblock();\n }\n };\n // dispatch loaded event\n return $(document.body).trigger('sv_wc_apple_pay_handler_v6_0_1_loaded');\n });\n}).call($83dab3ad15da905a$exports);\n\n})();\n//# sourceMappingURL=sv-wc-payment-gateway-apple-pay.js.map\n","###\n WooCommerce Apple Pay Handler\n Version 4.7.0\n\n Copyright (c) 2016, SkyVerge, Inc.\n Licensed under the GNU General Public License v3.0\n http://www.gnu.org/licenses/gpl-3.0.html\n###\n\njQuery ( $ ) ->\n\n\t\"use strict\"\n\n\t# The WooCommerce Apple Pay handler base class.\n\t#\n\t# @since 4.7.0\n\tclass window.SV_WC_Apple_Pay_Handler_v6_0_1\n\n\n\t\t# Constructs the handler.\n\t\t#\n\t\t# @since 4.7.0\n\t\tconstructor: (args) ->\n\n\t\t\t@gateway_id = args.gateway_id\n\t\t\t@gateway_slug = args.gateway_slug\n\t\t\t@merchant_id = args.merchant_id\n\t\t\t@ajax_url = args.ajax_url\n\t\t\t@validate_nonce = args.validate_nonce\n\t\t\t@recalculate_totals_nonce = args.recalculate_totals_nonce\n\t\t\t@process_nonce = args.process_nonce\n\t\t\t@payment_request = args.payment_request\n\t\t\t@generic_error = args.generic_error\n\n\t\t\t@wrapper = '.sv-wc-external-checkout'\n\t\t\t@container = '.buttons-container'\n\t\t\t@button = '.sv-wc-apple-pay-button'\n\n\n\t\t# Determines if Apple Pay is available.\n\t\t#\n\t\t# @since 4.7.0\n\t\t# @return bool\n\t\tis_available: ->\n\n\t\t\treturn false unless window.ApplePaySession\n\n\t\t\tApplePaySession.canMakePaymentsWithActiveCard( @merchant_id ).then ( canMakePayments ) =>\n\n\t\t\t\treturn canMakePayments\n\n\n\t\t# Initializes the handler.\n\t\t#\n\t\t# @since 4.7.0\n\t\tinit: ->\n\n\t\t\t# hide the wrapper if Apple Pay is the only button\n\t\t\tif $( @container ).children().length is 1\n\t\t\t\t$( @wrapper ).hide()\n\n\t\t\treturn unless this.is_available()\n\n\t\t\t# initialize for the various pages\n\t\t\tif $( 'form.cart' ).length\n\t\t\t\tthis.init_product_page()\n\t\t\telse if $( 'form.woocommerce-cart-form' ).length\n\t\t\t\tthis.init_cart_page()\n\t\t\telse if $( 'form.woocommerce-checkout' ).length\n\t\t\t\tthis.init_checkout_page()\n\n\t\t\t# bail if no UI was initialized\n\t\t\treturn unless @ui_element\n\n\t\t\tif @payment_request\n\t\t\t\t$( @button ).show()\n\t\t\t\t$( @wrapper ).show()\n\n\t\t\t$( document.body ).on 'click', '.sv-wc-apple-pay-button', ( e ) =>\n\n\t\t\t\te.preventDefault()\n\n\t\t\t\tthis.block_ui()\n\n\t\t\t\ttry\n\n\t\t\t\t\t@session = this.get_new_session( @payment_request )\n\n\t\t\t\t\t# set the payment card events\n\t\t\t\t\t@session.onvalidatemerchant = ( event ) => this.on_validate_merchant( event )\n\t\t\t\t\t@session.onpaymentmethodselected = ( event ) => this.on_payment_method_selected( event )\n\t\t\t\t\t@session.onshippingcontactselected = ( event ) => this.on_shipping_contact_selected( event )\n\t\t\t\t\t@session.onshippingmethodselected = ( event ) => this.on_shipping_method_selected( event )\n\t\t\t\t\t@session.onpaymentauthorized = ( event ) => this.on_payment_authorized( event )\n\t\t\t\t\t@session.oncancel = ( event ) => this.on_cancel_payment( event )\n\n\t\t\t\t\t@session.begin()\n\n\t\t\t\tcatch error\n\n\t\t\t\t\tthis.fail_payment( error )\n\n\n\t\t# Initializes the product page.\n\t\t#\n\t\t# @since 5.6.0\n\t\tinit_product_page: =>\n\n\t\t\t@ui_element = $( 'form.cart' )\n\n\n\t\t# Initializes the cart page.\n\t\t#\n\t\t# @since 5.6.0\n\t\tinit_cart_page: =>\n\n\t\t\t@ui_element = $( 'form.woocommerce-cart-form' ).parents( 'div.woocommerce' )\n\n\t\t\t# re-init if the cart totals are updated\n\t\t\t$( document.body ).on 'updated_cart_totals', =>\n\n\t\t\t\tthis.reset_payment_request()\n\n\n\t\t# Initializes the checkout page.\n\t\t#\n\t\t# @since 5.6.0\n\t\tinit_checkout_page: =>\n\n\t\t\t@ui_element = $( 'form.woocommerce-checkout' )\n\n\t\t\t$( document.body ).on 'updated_checkout', =>\n\n\t\t\t\t# re-init if the checkout is updated\n\t\t\t\tthis.reset_payment_request()\n\n\n\t\t# Gets a new Apple Pay session.\n\t\t#\n\t\t# @since 5.6.0\n\t\t#\n\t\t# @param [Object] payment_request payment request object\n\t\t# @return ApplePaySession\n\t\tget_new_session: ( payment_request ) ->\n\n\t\t\treturn new ApplePaySession( this.get_sdk_version(), payment_request )\n\n\n\t\t# Gets the Apple SDK version to use.\n\t\t#\n\t\t# @since 5.6.0\n\t\t# @return int\n\t\tget_sdk_version: ->\n\n\t\t\treturn 2\n\n\n\t\t# The callback for after the merchant data is validated.\n\t\t#\n\t\t# @since 4.7.0\n\t\ton_validate_merchant: ( event ) =>\n\n\t\t\tthis.validate_merchant( event.validationURL ).then ( merchant_session ) =>\n\n\t\t\t\tmerchant_session = JSON.parse( merchant_session )\n\n\t\t\t\t@session.completeMerchantValidation( merchant_session )\n\n\t\t\t, ( response ) =>\n\n\t\t\t\t@session.abort()\n\n\t\t\t\tthis.fail_payment 'Merchant could no be validated. ' + response.message\n\n\n\t\t# Validates the merchant data.\n\t\t#\n\t\t# @since 4.7.0\n\t\t# @return object\n\t\tvalidate_merchant: ( url ) => new Promise ( resolve, reject ) =>\n\n\t\t\tdata = {\n\t\t\t\t'action': \"wc_#{ @gateway_id }_apple_pay_validate_merchant\",\n\t\t\t\t'nonce': @validate_nonce,\n\t\t\t\t'merchant_id': @merchant_id,\n\t\t\t\t'url': url\n\t\t\t}\n\n\t\t\t# retrieve a payment request object\n\t\t\t$.post @ajax_url, data, ( response ) =>\n\n\t\t\t\tif response.success\n\t\t\t\t\tresolve response.data\n\t\t\t\telse\n\t\t\t\t\treject response.data\n\n\n\t\t# Fires after a payment method has been selected.\n\t\t#\n\t\t# @since 4.7.0\n\t\ton_payment_method_selected: ( event ) =>\n\n\t\t\tnew Promise ( resolve, reject ) =>\n\n\t\t\t\tdata = {\n\t\t\t\t\t'action': \"wc_#{ @gateway_id }_apple_pay_recalculate_totals\",\n\t\t\t\t\t'nonce': @recalculate_totals_nonce,\n\t\t\t\t}\n\n\t\t\t\t# retrieve a payment request object\n\t\t\t\t$.post @ajax_url, data, ( response ) =>\n\n\t\t\t\t\tif response.success\n\n\t\t\t\t\t\tdata = response.data\n\n\t\t\t\t\t\tresolve @session.completePaymentMethodSelection( data.total, data.line_items )\n\n\t\t\t\t\telse\n\n\t\t\t\t\t\tconsole.error '[Apple Pay] Error selecting a shipping contact. ' + response.data.message\n\n\t\t\t\t\t\treject @session.completePaymentMethodSelection( @payment_request.total, @payment_request.lineItems )\n\n\n\t\t# Fires after a shipping contact has been selected.\n\t\t#\n\t\t# @since 4.7.0\n\t\ton_shipping_contact_selected: ( event ) =>\n\n\t\t\tnew Promise ( resolve, reject ) =>\n\n\t\t\t\tdata = {\n\t\t\t\t\t'action': \"wc_#{ @gateway_id }_apple_pay_recalculate_totals\",\n\t\t\t\t\t'nonce': @recalculate_totals_nonce,\n\t\t\t\t\t'contact': event.shippingContact\n\t\t\t\t}\n\n\t\t\t\t# retrieve a payment request object\n\t\t\t\t$.post @ajax_url, data, ( response ) =>\n\n\t\t\t\t\tif response.success\n\n\t\t\t\t\t\tdata = response.data\n\n\t\t\t\t\t\tresolve @session.completeShippingContactSelection( ApplePaySession.STATUS_SUCCESS, data.shipping_methods, data.total, data.line_items )\n\n\t\t\t\t\telse\n\n\t\t\t\t\t\tconsole.error '[Apple Pay] Error selecting a shipping contact. ' + response.data.message\n\n\t\t\t\t\t\treject @session.completeShippingContactSelection( ApplePaySession.STATUS_FAILURE, [], @payment_request.total, @payment_request.lineItems )\n\n\n\t\t# Fires after a shipping method has been selected.\n\t\t#\n\t\t# @since 4.7.0\n\t\ton_shipping_method_selected: ( event ) =>\n\n\t\t\tnew Promise ( resolve, reject ) =>\n\n\t\t\t\tdata = {\n\t\t\t\t\t'action': \"wc_#{ @gateway_id }_apple_pay_recalculate_totals\",\n\t\t\t\t\t'nonce': @recalculate_totals_nonce,\n\t\t\t\t\t'method': event.shippingMethod.identifier\n\t\t\t\t}\n\n\t\t\t\t# retrieve a payment request object\n\t\t\t\t$.post @ajax_url, data, ( response ) =>\n\n\t\t\t\t\tif response.success\n\n\t\t\t\t\t\tdata = response.data\n\n\t\t\t\t\t\tresolve @session.completeShippingMethodSelection( ApplePaySession.STATUS_SUCCESS, data.total, data.line_items )\n\n\t\t\t\t\telse\n\n\t\t\t\t\t\tconsole.error '[Apple Pay] Error selecting a shipping method. ' + response.data.message\n\n\t\t\t\t\t\treject @session.completeShippingMethodSelection( ApplePaySession.STATUS_FAILURE, @payment_request.total, @payment_request.lineItems )\n\n\n\t\t# The callback for after the payment data is authorized.\n\t\t#\n\t\t# @since 4.7.0\n\t\ton_payment_authorized: ( event ) =>\n\n\t\t\tthis.process_authorization( event.payment ).then ( response ) =>\n\n\t\t\t\tthis.set_payment_status( true )\n\n\t\t\t\tthis.complete_purchase( response )\n\n\t\t\t, ( response ) =>\n\n\t\t\t\tthis.set_payment_status( false )\n\n\t\t\t\tthis.fail_payment 'Payment could no be processed. ' + response.message\n\n\n\t\t# Processes the transaction data.\n\t\t#\n\t\t# @since 4.7.0\n\t\tprocess_authorization: ( payment ) => new Promise ( resolve, reject ) =>\n\n\t\t\tdata = {\n\t\t\t\taction: \"wc_#{ @gateway_id }_apple_pay_process_payment\",\n\t\t\t\tnonce: @process_nonce,\n\t\t\t\tpayment: JSON.stringify( payment )\n\t\t\t}\n\n\t\t\t$.post @ajax_url, data, ( response ) =>\n\n\t\t\t\tif response.success\n\t\t\t\t\tresolve response.data\n\t\t\t\telse\n\t\t\t\t\treject response.data\n\n\n\t\t# The callback for when the payment card is cancelled/dismissed.\n\t\t#\n\t\t# @since 4.7.0\n\t\ton_cancel_payment: ( event ) =>\n\n\t\t\tthis.unblock_ui()\n\n\n\t\t# Completes the purchase based on the gateway result.\n\t\t#\n\t\t# @since 4.7.0\n\t\tcomplete_purchase: ( response ) ->\n\n\t\t\twindow.location = response.redirect\n\n\n\t\t# Fails the purchase based on the gateway result.\n\t\t#\n\t\t# @since 4.7.0\n\t\tfail_payment: ( error ) ->\n\n\t\t\tconsole.error '[Apple Pay] ' + error\n\n\t\t\tthis.unblock_ui()\n\n\t\t\tthis.render_errors( [ @generic_error ] )\n\n\n\t\t# Sets the Apple Pay payment status depending on the gateway result.\n\t\t#\n\t\t# @since 4.7.0\n\t\tset_payment_status: ( success ) ->\n\n\t\t\tif success\n\t\t\t\tstatus = ApplePaySession.STATUS_SUCCESS\n\t\t\telse\n\t\t\t\tstatus = ApplePaySession.STATUS_FAILURE\n\n\t\t\t@session.completePayment( status )\n\n\n\t\t# Resets the payment request via AJAX.\n\t\t#\n\t\t# Extending handlers can call this on change events to refresh the data.\n\t\t#\n\t\t# @since 4.7.0\n\t\treset_payment_request: ( data = {} ) =>\n\n\t\t\tthis.block_ui()\n\n\t\t\tthis.get_payment_request( data ).then ( response ) =>\n\n\t\t\t\t$( @button ).show()\n\t\t\t\t$( @wrapper ).show()\n\n\t\t\t\t@payment_request = JSON.parse( response )\n\n\t\t\t\tthis.unblock_ui()\n\n\t\t\t, ( response ) =>\n\n\t\t\t\tconsole.error '[Apple Pay] Could not build payment request. ' + response.message\n\n\t\t\t\t$( @button ).hide()\n\t\t\t\t# hide the wrapper if Apple Pay is the only button\n\t\t\t\tif $( @container ).children().length is 1\n\t\t\t\t\t$( @wrapper ).hide()\n\n\t\t\t\tthis.unblock_ui()\n\n\n\t\t# Gets the payment request via AJAX.\n\t\t#\n\t\t# @since 4.7.0\n\t\tget_payment_request: ( data ) => new Promise ( resolve, reject ) =>\n\n\t\t\tbase_data = {\n\t\t\t\t'action': \"wc_#{ @gateway_id }_apple_pay_get_payment_request\"\n\t\t\t}\n\n\t\t\t$.extend data, base_data\n\n\t\t\t# retrieve a payment request object\n\t\t\t$.post @ajax_url, data, ( response ) =>\n\n\t\t\t\tif response.success\n\t\t\t\t\tresolve response.data\n\t\t\t\telse\n\t\t\t\t\treject response.data\n\n\n\t\t# Renders any new errors and bring them into the viewport.\n\t\t#\n\t\t# @since 4.7.0\n\t\trender_errors: ( errors ) ->\n\n\t\t\t# hide and remove any previous errors\n\t\t\t$( '.woocommerce-error, .woocommerce-message' ).remove()\n\n\t\t\t# add errors\n\t\t\t@ui_element.prepend '
  • ' + errors.join( '
  • ' ) + '
'\n\n\t\t\t# unblock UI\n\t\t\t@ui_element.removeClass( 'processing' ).unblock()\n\n\t\t\t# scroll to top\n\t\t\t$( 'html, body' ).animate( { scrollTop: @ui_element.offset().top - 100 }, 1000 )\n\n\n\t\t# Blocks the payment form UI.\n\t\t#\n\t\t# @since 4.7.0\n\t\tblock_ui: -> @ui_element.block( message: null, overlayCSS: background: '#fff', opacity: 0.6 )\n\n\n\t\t# Unblocks the payment form UI.\n\t\t#\n\t\t# @since 4.7.0\n\t\tunblock_ui: -> @ui_element.unblock()\n\n\n\t# dispatch loaded event\n\t$( document.body ).trigger( 'sv_wc_apple_pay_handler_v6_0_1_loaded' )\n"],"names":["jQuery","$","window","SV_WC_Apple_Pay_Handler_v6_0_1","constructor","args","init_product_page","bind","init_cart_page","init_checkout_page","on_validate_merchant","validate_merchant","on_payment_method_selected","on_shipping_contact_selected","on_shipping_method_selected","on_payment_authorized","process_authorization","on_cancel_payment","reset_payment_request","get_payment_request","gateway_id","gateway_slug","merchant_id","ajax_url","validate_nonce","recalculate_totals_nonce","process_nonce","payment_request","generic_error","wrapper","container","button","is_available","ApplePaySession","canMakePaymentsWithActiveCard","then","canMakePayments","init","children","length","hide","ui_element","show","document","body","on","e","preventDefault","block_ui","session","get_new_session","onvalidatemerchant","event","onpaymentmethodselected","onshippingcontactselected","onshippingmethodselected","onpaymentauthorized","oncancel","begin","error1","fail_payment","parents","get_sdk_version","validationURL","merchant_session","JSON","parse","completeMerchantValidation","response","abort","message","url","Promise","resolve","reject","data","post","success","completePaymentMethodSelection","total","line_items","console","error","lineItems","shippingContact","completeShippingContactSelection","STATUS_SUCCESS","shipping_methods","STATUS_FAILURE","shippingMethod","identifier","completeShippingMethodSelection","payment","set_payment_status","complete_purchase","action","nonce","stringify","unblock_ui","location","redirect","render_errors","status","completePayment","base_data","extend","errors","remove","prepend","join","removeClass","unblock","animate","scrollTop","offset","top","block","overlayCSS","background","opacity","trigger","call"],"version":3,"file":"sv-wc-payment-gateway-apple-pay.js.map"} \ No newline at end of file diff --git a/woocommerce/payment-gateway/assets/dist/frontend/sv-wc-payment-gateway-google-pay.js b/woocommerce/payment-gateway/assets/dist/frontend/sv-wc-payment-gateway-google-pay.js index 884345bd2..1baae43b1 100644 --- a/woocommerce/payment-gateway/assets/dist/frontend/sv-wc-payment-gateway-google-pay.js +++ b/woocommerce/payment-gateway/assets/dist/frontend/sv-wc-payment-gateway-google-pay.js @@ -1,2 +1,2 @@ -jQuery(function(e){window.SV_WC_Google_Pay_Handler_v6_0_0=class{constructor(e){let{plugin_id:t,merchant_id:a,merchant_name:o,gateway_id:n,gateway_id_dasherized:s,gateway_merchant_id:i,environment:r,ajax_url:l,recalculate_totals_nonce:c,process_nonce:h,button_style:d,card_types:m,available_countries:g,currency_code:u,needs_shipping:p,generic_error:y}=e;this.gatewayID=n,this.gatewayMerchantID=i,this.merchantID=a,this.merchantName=o,this.environment=r,this.ajaxURL=l,this.recalculateTotalsNonce=c,this.processNonce=h,this.buttonStyle=d,this.availableCountries=g,this.currencyCode=u,this.needsShipping=p,this.genericError=y,e.product_id&&(this.productID=e.product_id),this.baseRequest={apiVersion:2,apiVersionMinor:0};let P={type:"PAYMENT_GATEWAY",parameters:{gateway:t,gatewayMerchantId:this.gatewayMerchantID}};this.baseCardPaymentMethod={type:"CARD",parameters:{allowedAuthMethods:["PAN_ONLY","CRYPTOGRAM_3DS"],allowedCardNetworks:m,billingAddressRequired:!0,billingAddressParameters:{format:"FULL",phoneNumberRequired:!0}}},this.cardPaymentMethod=Object.assign({},this.baseCardPaymentMethod,{tokenizationSpecification:P}),this.paymentsClient=null}getGoogleIsReadyToPayRequest(){return Object.assign({},this.baseRequest,{allowedPaymentMethods:[this.baseCardPaymentMethod]})}getGooglePaymentDataRequest(e){return this.getGoogleTransactionInfo(t=>{let a=Object.assign({},this.baseRequest);a.allowedPaymentMethods=[this.cardPaymentMethod],a.transactionInfo=t,a.merchantInfo={merchantId:this.merchantID,merchantName:this.merchantName},a.emailRequired=!0,a.callbackIntents=["PAYMENT_AUTHORIZATION"],this.needsShipping&&(a.callbackIntents=["SHIPPING_ADDRESS","SHIPPING_OPTION","PAYMENT_AUTHORIZATION"],a.shippingAddressRequired=!0,a.shippingAddressParameters=this.getGoogleShippingAddressParameters(),a.shippingOptionRequired=!0),e(a)})}getGooglePaymentsClient(){if(null===this.paymentsClient){let e={environment:this.environment,merchantInfo:{merchantName:this.merchantName,merchantId:this.merchantID},paymentDataCallbacks:{onPaymentAuthorized:e=>this.onPaymentAuthorized(e)}};this.needsShipping&&(e.paymentDataCallbacks.onPaymentDataChanged=e=>this.onPaymentDataChanged(e)),this.paymentsClient=new google.payments.api.PaymentsClient(e)}return this.paymentsClient}onPaymentAuthorized(e){return this.blockUI(),new Promise((t,a)=>{try{this.processPayment(e,t)}catch(e){a({transactionState:"ERROR",error:{intent:"PAYMENT_AUTHORIZATION",message:"Payment could not be processed",reason:"PAYMENT_DATA_INVALID"}})}this.unblockUI()})}onPaymentDataChanged(e){return this.blockUI(),new Promise((t,a)=>{try{let a=e.shippingAddress,o=e.shippingOptionData,n="";"SHIPPING_OPTION"==e.callbackTrigger&&(n=o.id),this.getUpdatedTotals(a,n,e=>{0==e.newShippingOptionParameters.shippingOptions.length&&(e={error:this.getGoogleUnserviceableAddressError()}),t(e)})}catch(e){this.failPayment("Could not load updated totals or process payment data request update. "+e)}this.unblockUI()})}getGoogleTransactionInfo(t){let a={action:`wc_${this.gatewayID}_google_pay_get_transaction_info`};this.productID&&(a.productID=this.productID),e.post(this.ajaxURL,a,e=>{e.success?t(JSON.parse(e.data)):this.failPayment("Could not build transaction info. "+e.data.message)})}getUpdatedTotals(t,a,o){let n={action:`wc_${this.gatewayID}_google_pay_recalculate_totals`,nonce:this.recalculateTotalsNonce,shippingAddress:t,shippingMethod:a};this.productID&&(n.productID=this.productID),e.post(this.ajaxURL,n,e=>{e.success?o(JSON.parse(e.data)):this.failPayment("Could not recalculate totals. "+e.data.message)})}getGoogleShippingAddressParameters(){return{allowedCountryCodes:this.availableCountries}}getGoogleUnserviceableAddressError(){return{reason:"SHIPPING_ADDRESS_UNSERVICEABLE",message:"Cannot ship to the selected address",intent:"SHIPPING_ADDRESS"}}addGooglePayButton(){let e=this.getGooglePaymentsClient().createButton({onClick:e=>this.onGooglePaymentButtonClicked(e),buttonColor:this.buttonStyle,buttonSizeMode:"fill"});document.getElementById("sv-wc-google-pay-button-container").appendChild(e)}prefetchGooglePaymentData(){this.getGooglePaymentDataRequest(e=>{e.transactionInfo={totalPriceStatus:"NOT_CURRENTLY_KNOWN",currencyCode:this.currencyCode},this.getGooglePaymentsClient().prefetchPaymentData(e)})}processPayment(t,a){let o={action:`wc_${this.gatewayID}_google_pay_process_payment`,nonce:this.processNonce,paymentData:JSON.stringify(t)};return this.productID&&!this.needsShipping&&(o.productID=this.productID),e.post(this.ajaxURL,o,e=>{e.success?(a({transactionState:"SUCCESS"}),window.location=e.data.redirect):(a({transactionState:"ERROR",error:{intent:"SHIPPING_ADDRESS",message:"Invalid data",reason:"PAYMENT_DATA_INVALID"}}),this.failPayment("Payment could not be processed. "+e.data.message))})}onGooglePaymentButtonClicked(e){e.preventDefault(),this.blockUI(),this.getGooglePaymentDataRequest(e=>{let t=this.getGooglePaymentsClient();try{t.loadPaymentData(e)}catch(e){this.failPayment("Could not load payment data. "+e)}this.unblockUI()})}init(){if(e("form.cart").length)this.initProductPage();else if(e("form.woocommerce-cart-form").length)this.initCartPage();else{if(!e("form.woocommerce-checkout").length)return;this.initCheckoutPage()}this.initGooglePay()}initGooglePay(){this.getGooglePaymentsClient().isReadyToPay(this.getGoogleIsReadyToPayRequest()).then(e=>{e.result&&(this.addGooglePayButton(),this.prefetchGooglePaymentData())}).catch(e=>{this.failPayment("Google Pay is not ready. "+e)})}initProductPage(){this.uiElement=e("form.cart")}initCartPage(){this.uiElement=e("form.woocommerce-cart-form").parents("div.woocommerce"),e(document.body).on("updated_cart_totals",()=>{this.initGooglePay()})}initCheckoutPage(){this.uiElement=e("form.woocommerce-checkout")}failPayment(e){console.error("[Google Pay] "+e),this.unblockUI(),this.renderErrors([this.genericError])}renderErrors(t){e(".woocommerce-error, .woocommerce-message").remove(),this.uiElement.prepend('
  • '+t.join("
  • ")+"
"),this.uiElement.removeClass("processing").unblock(),e("html, body").animate({scrollTop:this.uiElement.offset().top-100},1e3)}blockUI(){this.uiElement.block({message:null,overlayCSS:{background:"#fff",opacity:.6}})}unblockUI(){this.uiElement.unblock()}},e(document.body).trigger("sv_wc_google_pay_handler_v6_0_0_loaded")}); +jQuery(function(e){window.SV_WC_Google_Pay_Handler_v6_0_1=class{constructor(e){let{plugin_id:t,merchant_id:a,merchant_name:o,gateway_id:n,gateway_id_dasherized:s,gateway_merchant_id:i,environment:r,ajax_url:l,recalculate_totals_nonce:c,process_nonce:h,button_style:d,card_types:m,available_countries:g,currency_code:u,needs_shipping:p,generic_error:y}=e;this.gatewayID=n,this.gatewayMerchantID=i,this.merchantID=a,this.merchantName=o,this.environment=r,this.ajaxURL=l,this.recalculateTotalsNonce=c,this.processNonce=h,this.buttonStyle=d,this.availableCountries=g,this.currencyCode=u,this.needsShipping=p,this.genericError=y,e.product_id&&(this.productID=e.product_id),this.baseRequest={apiVersion:2,apiVersionMinor:0};let P={type:"PAYMENT_GATEWAY",parameters:{gateway:t,gatewayMerchantId:this.gatewayMerchantID}};this.baseCardPaymentMethod={type:"CARD",parameters:{allowedAuthMethods:["PAN_ONLY","CRYPTOGRAM_3DS"],allowedCardNetworks:m,billingAddressRequired:!0,billingAddressParameters:{format:"FULL",phoneNumberRequired:!0}}},this.cardPaymentMethod=Object.assign({},this.baseCardPaymentMethod,{tokenizationSpecification:P}),this.paymentsClient=null}getGoogleIsReadyToPayRequest(){return Object.assign({},this.baseRequest,{allowedPaymentMethods:[this.baseCardPaymentMethod]})}getGooglePaymentDataRequest(e){return this.getGoogleTransactionInfo(t=>{let a=Object.assign({},this.baseRequest);a.allowedPaymentMethods=[this.cardPaymentMethod],a.transactionInfo=t,a.merchantInfo={merchantId:this.merchantID,merchantName:this.merchantName},a.emailRequired=!0,a.callbackIntents=["PAYMENT_AUTHORIZATION"],this.needsShipping&&(a.callbackIntents=["SHIPPING_ADDRESS","SHIPPING_OPTION","PAYMENT_AUTHORIZATION"],a.shippingAddressRequired=!0,a.shippingAddressParameters=this.getGoogleShippingAddressParameters(),a.shippingOptionRequired=!0),e(a)})}getGooglePaymentsClient(){if(null===this.paymentsClient){let e={environment:this.environment,merchantInfo:{merchantName:this.merchantName,merchantId:this.merchantID},paymentDataCallbacks:{onPaymentAuthorized:e=>this.onPaymentAuthorized(e)}};this.needsShipping&&(e.paymentDataCallbacks.onPaymentDataChanged=e=>this.onPaymentDataChanged(e)),this.paymentsClient=new google.payments.api.PaymentsClient(e)}return this.paymentsClient}onPaymentAuthorized(e){return this.blockUI(),new Promise((t,a)=>{try{this.processPayment(e,t)}catch(e){a({transactionState:"ERROR",error:{intent:"PAYMENT_AUTHORIZATION",message:"Payment could not be processed",reason:"PAYMENT_DATA_INVALID"}})}this.unblockUI()})}onPaymentDataChanged(e){return this.blockUI(),new Promise((t,a)=>{try{let a=e.shippingAddress,o=e.shippingOptionData,n="";"SHIPPING_OPTION"==e.callbackTrigger&&(n=o.id),this.getUpdatedTotals(a,n,e=>{0==e.newShippingOptionParameters.shippingOptions.length&&(e={error:this.getGoogleUnserviceableAddressError()}),t(e)})}catch(e){this.failPayment("Could not load updated totals or process payment data request update. "+e)}this.unblockUI()})}getGoogleTransactionInfo(t){let a={action:`wc_${this.gatewayID}_google_pay_get_transaction_info`};this.productID&&(a.productID=this.productID),e.post(this.ajaxURL,a,e=>{e.success?t(JSON.parse(e.data)):this.failPayment("Could not build transaction info. "+e.data.message)})}getUpdatedTotals(t,a,o){let n={action:`wc_${this.gatewayID}_google_pay_recalculate_totals`,nonce:this.recalculateTotalsNonce,shippingAddress:t,shippingMethod:a};this.productID&&(n.productID=this.productID),e.post(this.ajaxURL,n,e=>{e.success?o(JSON.parse(e.data)):this.failPayment("Could not recalculate totals. "+e.data.message)})}getGoogleShippingAddressParameters(){return{allowedCountryCodes:this.availableCountries}}getGoogleUnserviceableAddressError(){return{reason:"SHIPPING_ADDRESS_UNSERVICEABLE",message:"Cannot ship to the selected address",intent:"SHIPPING_ADDRESS"}}addGooglePayButton(){let e=this.getGooglePaymentsClient().createButton({onClick:e=>this.onGooglePaymentButtonClicked(e),buttonColor:this.buttonStyle,buttonSizeMode:"fill"});document.getElementById("sv-wc-google-pay-button-container").appendChild(e)}prefetchGooglePaymentData(){this.getGooglePaymentDataRequest(e=>{e.transactionInfo={totalPriceStatus:"NOT_CURRENTLY_KNOWN",currencyCode:this.currencyCode},this.getGooglePaymentsClient().prefetchPaymentData(e)})}processPayment(t,a){let o={action:`wc_${this.gatewayID}_google_pay_process_payment`,nonce:this.processNonce,paymentData:JSON.stringify(t)};return this.productID&&!this.needsShipping&&(o.productID=this.productID),e.post(this.ajaxURL,o,e=>{e.success?(a({transactionState:"SUCCESS"}),window.location=e.data.redirect):(a({transactionState:"ERROR",error:{intent:"SHIPPING_ADDRESS",message:"Invalid data",reason:"PAYMENT_DATA_INVALID"}}),this.failPayment("Payment could not be processed. "+e.data.message))})}onGooglePaymentButtonClicked(e){e.preventDefault(),this.blockUI(),this.getGooglePaymentDataRequest(e=>{let t=this.getGooglePaymentsClient();try{t.loadPaymentData(e)}catch(e){this.failPayment("Could not load payment data. "+e)}this.unblockUI()})}init(){if(e("form.cart").length)this.initProductPage();else if(e("form.woocommerce-cart-form").length)this.initCartPage();else{if(!e("form.woocommerce-checkout").length)return;this.initCheckoutPage()}this.initGooglePay()}initGooglePay(){this.getGooglePaymentsClient().isReadyToPay(this.getGoogleIsReadyToPayRequest()).then(e=>{e.result&&(this.addGooglePayButton(),this.prefetchGooglePaymentData())}).catch(e=>{this.failPayment("Google Pay is not ready. "+e)})}initProductPage(){this.uiElement=e("form.cart")}initCartPage(){this.uiElement=e("form.woocommerce-cart-form").parents("div.woocommerce"),e(document.body).on("updated_cart_totals",()=>{this.initGooglePay()})}initCheckoutPage(){this.uiElement=e("form.woocommerce-checkout")}failPayment(e){console.error("[Google Pay] "+e),this.unblockUI(),this.renderErrors([this.genericError])}renderErrors(t){e(".woocommerce-error, .woocommerce-message").remove(),this.uiElement.prepend('
  • '+t.join("
  • ")+"
"),this.uiElement.removeClass("processing").unblock(),e("html, body").animate({scrollTop:this.uiElement.offset().top-100},1e3)}blockUI(){this.uiElement.block({message:null,overlayCSS:{background:"#fff",opacity:.6}})}unblockUI(){this.uiElement.unblock()}},e(document.body).trigger("sv_wc_google_pay_handler_v6_0_1_loaded")}); //# sourceMappingURL=sv-wc-payment-gateway-google-pay.js.map diff --git a/woocommerce/payment-gateway/assets/dist/frontend/sv-wc-payment-gateway-google-pay.js.map b/woocommerce/payment-gateway/assets/dist/frontend/sv-wc-payment-gateway-google-pay.js.map index 6e7754bb4..5cfe1a415 100644 --- a/woocommerce/payment-gateway/assets/dist/frontend/sv-wc-payment-gateway-google-pay.js.map +++ b/woocommerce/payment-gateway/assets/dist/frontend/sv-wc-payment-gateway-google-pay.js.map @@ -1 +1 @@ -{"mappings":"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","sources":["","woocommerce/payment-gateway/assets/js/frontend/sv-wc-payment-gateway-google-pay.js"],"sourcesContent":["(() => {\njQuery(function($) {\n \"use strict\";\n /**\n\t * Google Pay handler.\n\t *\n\t * @since 5.10.0\n\t *\n\t * @type {SV_WC_Google_Pay_Handler_v6_0_0} object\n\t */ window.SV_WC_Google_Pay_Handler_v6_0_0 = class SV_WC_Google_Pay_Handler_v6_0_0 {\n /**\n\t\t * Handler constructor.\n\t\t *\n\t\t * @since 5.10.0\n\t\t *\n\t\t * @param {Object} params The plugin ID\n\t\t * @param {string} params.plugin_id The plugin ID\n\t\t * @param {string} params.merchant_id The merchant ID\n\t\t * @param {string} params.merchant_name The site name\n\t\t * @param {string} params.gateway_id The gateway ID\n\t\t * @param {string} params.gateway_id_dasherized The gateway ID dasherized\n\t\t * @param {string} params.gateway_merchant_id The gateway merchant ID\n\t\t * @param {string} params.environment The gateway environment (PRODUCTION or TEST)\n\t\t * @param {string} params.ajax_url The AJAX URL\n\t\t * @param {string} params.recalculate_totals_nonce Nonce for the recalculate_totals AJAX action\n\t\t * @param {string} params.process_nonce Nonce for the process AJAX action\n\t\t * @param {string} params.button_style The button style\n\t\t * @param {string[]} params.card_types The supported card types\n\t\t * @param {string[]} params.available_countries Array of two-letter country codes the gateway is available for\n\t\t * @param {string[]} params.currency_code WC configured currency\n\t\t * @param {boolean} params.needs_shipping Whether or not the cart or product needs shipping\n\t\t * @param {string} params.generic_error The generic error message\n\t\t * @param {string} params.product_id The product ID if we are on a Product page\n\t\t */ constructor(params){\n let { plugin_id: plugin_id, merchant_id: merchant_id, merchant_name: merchant_name, gateway_id: gateway_id, gateway_id_dasherized: gateway_id_dasherized, gateway_merchant_id: gateway_merchant_id, environment: environment, ajax_url: ajax_url, recalculate_totals_nonce: recalculate_totals_nonce, process_nonce: process_nonce, button_style: button_style, card_types: card_types, available_countries: available_countries, currency_code: currency_code, needs_shipping: needs_shipping, generic_error: generic_error } = params;\n this.gatewayID = gateway_id;\n this.gatewayMerchantID = gateway_merchant_id;\n this.merchantID = merchant_id;\n this.merchantName = merchant_name;\n this.environment = environment;\n this.ajaxURL = ajax_url;\n this.recalculateTotalsNonce = recalculate_totals_nonce;\n this.processNonce = process_nonce;\n this.buttonStyle = button_style;\n this.availableCountries = available_countries;\n this.currencyCode = currency_code;\n this.needsShipping = needs_shipping;\n this.genericError = generic_error;\n if (params.product_id) this.productID = params.product_id;\n /**\n\t\t\t * Card networks supported by your site and your gateway\n\t\t\t *\n\t\t\t * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#CardParameters|CardParameters}\n\t\t\t */ const allowedCardNetworks = card_types;\n /**\n\t\t\t * Define the version of the Google Pay API referenced when creating your configuration\n\t\t\t *\n\t\t\t * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#PaymentDataRequest|apiVersion in PaymentDataRequest}\n\t\t\t */ this.baseRequest = {\n apiVersion: 2,\n apiVersionMinor: 0\n };\n /**\n\t\t\t * Card authentication methods supported by your site and your gateway\n\t\t\t *\n\t\t\t * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#CardParameters|CardParameters}\n\t\t\t *\n\t\t\t * @todo confirm your processor supports Android device tokens for your supported card networks\n\t\t\t */ const allowedCardAuthMethods = [\n 'PAN_ONLY',\n 'CRYPTOGRAM_3DS'\n ];\n /**\n\t\t\t * Identify your gateway and your site's gateway merchant identifier\n\t\t\t *\n\t\t\t * The Google Pay API response will return an encrypted payment method capable\n\t\t\t * of being charged by a supported gateway after payer authorization\n\t\t\t *\n\t\t\t * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#gateway|PaymentMethodTokenizationSpecification}\n\t\t\t */ const tokenizationSpecification = {\n type: 'PAYMENT_GATEWAY',\n parameters: {\n 'gateway': plugin_id,\n 'gatewayMerchantId': this.gatewayMerchantID\n }\n };\n /**\n\t\t\t * Describe your site's support for the CARD payment method and its required fields\n\t\t\t *\n\t\t\t * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#CardParameters|CardParameters}\n\t\t\t */ this.baseCardPaymentMethod = {\n type: 'CARD',\n parameters: {\n allowedAuthMethods: allowedCardAuthMethods,\n allowedCardNetworks: allowedCardNetworks,\n billingAddressRequired: true,\n billingAddressParameters: {\n format: 'FULL',\n phoneNumberRequired: true\n }\n }\n };\n /**\n\t\t\t * Describe your site's support for the CARD payment method including optional fields\n\t\t\t *\n\t\t\t * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#CardParameters|CardParameters}\n\t\t\t */ this.cardPaymentMethod = Object.assign({}, this.baseCardPaymentMethod, {\n tokenizationSpecification: tokenizationSpecification\n });\n /**\n\t\t\t * An initialized google.payments.api.PaymentsClient object or null if not yet set\n\t\t\t *\n\t\t\t * @see {@link getGooglePaymentsClient}\n\t\t\t */ this.paymentsClient = null;\n }\n /**\n\t\t * Configure your site's support for payment methods supported by the Google Pay\n\t\t * API.\n\t\t *\n\t\t * Each member of allowedPaymentMethods should contain only the required fields,\n\t\t * allowing reuse of this base request when determining a viewer's ability\n\t\t * to pay and later requesting a supported payment method\n\t\t *\n\t\t * @returns {object} Google Pay API version, payment methods supported by the site\n\t\t */ getGoogleIsReadyToPayRequest() {\n return Object.assign({}, this.baseRequest, {\n allowedPaymentMethods: [\n this.baseCardPaymentMethod\n ]\n });\n }\n /**\n\t\t * Configure support for the Google Pay API\n\t\t *\n\t\t * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#PaymentDataRequest|PaymentDataRequest}\n\t\t *\n\t\t * @param {function} resolve callback\n\t\t * @returns {object} PaymentDataRequest fields\n\t\t */ getGooglePaymentDataRequest(resolve) {\n return this.getGoogleTransactionInfo((transactionInfo)=>{\n const paymentDataRequest = Object.assign({}, this.baseRequest);\n paymentDataRequest.allowedPaymentMethods = [\n this.cardPaymentMethod\n ];\n paymentDataRequest.transactionInfo = transactionInfo;\n paymentDataRequest.merchantInfo = {\n merchantId: this.merchantID,\n merchantName: this.merchantName\n };\n paymentDataRequest.emailRequired = true;\n paymentDataRequest.callbackIntents = [\n 'PAYMENT_AUTHORIZATION'\n ];\n if (this.needsShipping) {\n paymentDataRequest.callbackIntents = [\n 'SHIPPING_ADDRESS',\n 'SHIPPING_OPTION',\n 'PAYMENT_AUTHORIZATION'\n ];\n paymentDataRequest.shippingAddressRequired = true;\n paymentDataRequest.shippingAddressParameters = this.getGoogleShippingAddressParameters();\n paymentDataRequest.shippingOptionRequired = true;\n }\n resolve(paymentDataRequest);\n });\n }\n /**\n\t\t * Return an active PaymentsClient or initialize\n\t\t *\n\t\t * @see {@link https://developers.google.com/pay/api/web/reference/client#PaymentsClient|PaymentsClient constructor}\n\t\t * @returns {google.payments.api.PaymentsClient} Google Pay API client\n\t\t */ getGooglePaymentsClient() {\n if (this.paymentsClient === null) {\n let args = {\n environment: this.environment,\n merchantInfo: {\n merchantName: this.merchantName,\n merchantId: this.merchantID\n },\n paymentDataCallbacks: {\n onPaymentAuthorized: (paymentData)=>this.onPaymentAuthorized(paymentData)\n }\n };\n if (this.needsShipping) args.paymentDataCallbacks.onPaymentDataChanged = (paymentData)=>this.onPaymentDataChanged(paymentData);\n this.paymentsClient = new google.payments.api.PaymentsClient(args);\n }\n return this.paymentsClient;\n }\n /**\n\t\t * Handles payment authorization callback intent.\n\t\t *\n\t\t * @param {object} paymentData response from Google Pay API after a payer approves payment.\n\t\t * @see {@link https://developers.google.com/pay/api/web/reference/response-objects#PaymentData|PaymentData object reference}\n\t\t *\n\t\t * @returns Promise<{object}> Promise object to complete or fail the transaction.\n\t\t */ onPaymentAuthorized(paymentData) {\n this.blockUI();\n return new Promise((resolve, reject)=>{\n // handle the response\n try {\n this.processPayment(paymentData, resolve);\n } catch (err) {\n reject({\n transactionState: 'ERROR',\n error: {\n intent: 'PAYMENT_AUTHORIZATION',\n message: 'Payment could not be processed',\n reason: 'PAYMENT_DATA_INVALID'\n }\n });\n }\n this.unblockUI();\n });\n }\n /**\n\t\t * Handles dynamic buy flow shipping address and shipping options callback intents.\n\t\t *\n\t\t * @param {object} intermediatePaymentData response from Google Pay API a shipping address or shipping option is selected in the payment sheet.\n\t\t * @see {@link https://developers.google.com/pay/api/web/reference/response-objects#IntermediatePaymentData|IntermediatePaymentData object reference}\n\t\t *\n\t\t * @see {@link https://developers.google.com/pay/api/web/reference/response-objects#PaymentDataRequestUpdate|PaymentDataRequestUpdate}\n\t\t * @returns Promise<{object}> Promise of PaymentDataRequestUpdate object to update the payment sheet.\n\t\t */ onPaymentDataChanged(intermediatePaymentData) {\n this.blockUI();\n return new Promise((resolve, reject)=>{\n try {\n let shippingAddress = intermediatePaymentData.shippingAddress;\n let shippingOptionData = intermediatePaymentData.shippingOptionData;\n let chosenShippingMethod = '';\n if (intermediatePaymentData.callbackTrigger == 'SHIPPING_OPTION') chosenShippingMethod = shippingOptionData.id;\n this.getUpdatedTotals(shippingAddress, chosenShippingMethod, (paymentDataRequestUpdate)=>{\n if (paymentDataRequestUpdate.newShippingOptionParameters.shippingOptions.length == 0) paymentDataRequestUpdate = {\n error: this.getGoogleUnserviceableAddressError()\n };\n resolve(paymentDataRequestUpdate);\n });\n } catch (err) {\n this.failPayment('Could not load updated totals or process payment data request update. ' + err);\n }\n this.unblockUI();\n });\n }\n /**\n\t\t * Provide Google Pay API with a payment amount, currency, and amount status\n\t\t *\n\t\t * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#TransactionInfo|TransactionInfo}\n\t\t *\n\t\t * @param {function} resolve callback\n\t\t * @returns {object} transaction info, suitable for use as transactionInfo property of PaymentDataRequest\n\t\t */ getGoogleTransactionInfo(resolve) {\n // get transaction info from cart\n const data = {\n action: `wc_${this.gatewayID}_google_pay_get_transaction_info`\n };\n if (this.productID) data.productID = this.productID;\n $.post(this.ajaxURL, data, (response)=>{\n if (response.success) resolve(JSON.parse(response.data));\n else this.failPayment('Could not build transaction info. ' + response.data.message);\n });\n }\n /**\n\t\t * Get updated totals and shipping options via AJAX for use in the PaymentDataRequest\n\t\t *\n\t\t * @see {@link https://developers.google.com/pay/api/web/reference/response-objects#PaymentDataRequestUpdate|PaymentDataRequestUpdate}\n\t\t *\n\t\t * @param {object} shippingAddress shipping address\n\t\t * @param {object} shippingMethod chosen shipping method\n\t\t * @param {function} resolve callback\n\t\t */ getUpdatedTotals(shippingAddress, shippingMethod, resolve) {\n const data = {\n action: `wc_${this.gatewayID}_google_pay_recalculate_totals`,\n 'nonce': this.recalculateTotalsNonce,\n shippingAddress: shippingAddress,\n shippingMethod: shippingMethod\n };\n if (this.productID) data.productID = this.productID;\n $.post(this.ajaxURL, data, (response)=>{\n if (response.success) resolve(JSON.parse(response.data));\n else this.failPayment('Could not recalculate totals. ' + response.data.message);\n });\n }\n /**\n\t\t * Provide Google Pay API with shipping address parameters when using dynamic buy flow.\n\t\t *\n\t\t * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#ShippingAddressParameters|ShippingAddressParameters}\n\t\t * @returns {object} shipping address details, suitable for use as shippingAddressParameters property of PaymentDataRequest\n\t\t */ getGoogleShippingAddressParameters() {\n return {\n allowedCountryCodes: this.availableCountries\n };\n }\n /**\n\t\t * Provide Google Pay API with a payment data error.\n\t\t *\n\t\t * @see {@link https://developers.google.com/pay/api/web/reference/response-objects#PaymentDataError|PaymentDataError}\n\t\t * @returns {object} payment data error, suitable for use as error property of PaymentDataRequestUpdate\n\t\t */ getGoogleUnserviceableAddressError() {\n return {\n reason: 'SHIPPING_ADDRESS_UNSERVICEABLE',\n message: 'Cannot ship to the selected address',\n intent: 'SHIPPING_ADDRESS'\n };\n }\n /**\n\t\t * Add a Google Pay purchase button alongside an existing checkout button\n\t\t *\n\t\t * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#ButtonOptions|Button options}\n\t\t * @see {@link https://developers.google.com/pay/api/web/guides/brand-guidelines|Google Pay brand guidelines}\n\t\t */ addGooglePayButton() {\n const paymentsClient = this.getGooglePaymentsClient();\n const button = paymentsClient.createButton({\n onClick: (event)=>this.onGooglePaymentButtonClicked(event),\n buttonColor: this.buttonStyle,\n buttonSizeMode: 'fill'\n });\n document.getElementById('sv-wc-google-pay-button-container').appendChild(button);\n }\n /**\n\t\t * Prefetch payment data to improve performance\n\t\t *\n\t\t * @see {@link https://developers.google.com/pay/api/web/reference/client#prefetchPaymentData|prefetchPaymentData()}\n\t\t */ prefetchGooglePaymentData() {\n this.getGooglePaymentDataRequest((paymentDataRequest)=>{\n // transactionInfo must be set but does not affect cache\n paymentDataRequest.transactionInfo = {\n totalPriceStatus: 'NOT_CURRENTLY_KNOWN',\n currencyCode: this.currencyCode\n };\n const paymentsClient = this.getGooglePaymentsClient();\n paymentsClient.prefetchPaymentData(paymentDataRequest);\n });\n }\n /**\n\t\t * Process payment data returned by the Google Pay API\n\t\t *\n\t\t * @see {@link https://developers.google.com/pay/api/web/reference/response-objects#PaymentData|PaymentData object reference}\n\t\t *\n\t\t * @param {object} paymentData response from Google Pay API after user approves payment\n\t\t * @param {function} resolve callback\n\t\t */ processPayment(paymentData, resolve) {\n // pass payment token to your gateway to process payment\n const data = {\n action: `wc_${this.gatewayID}_google_pay_process_payment`,\n nonce: this.processNonce,\n paymentData: JSON.stringify(paymentData)\n };\n if (this.productID && !this.needsShipping) data.productID = this.productID;\n return $.post(this.ajaxURL, data, (response)=>{\n if (response.success) {\n resolve({\n transactionState: 'SUCCESS'\n });\n window.location = response.data.redirect;\n } else {\n resolve({\n transactionState: 'ERROR',\n error: {\n intent: 'SHIPPING_ADDRESS',\n message: 'Invalid data',\n reason: 'PAYMENT_DATA_INVALID'\n }\n });\n this.failPayment('Payment could not be processed. ' + response.data.message);\n }\n });\n }\n /**\n\t\t * Show Google Pay payment sheet when Google Pay payment button is clicked\n\t\t */ onGooglePaymentButtonClicked(event) {\n event.preventDefault();\n this.blockUI();\n this.getGooglePaymentDataRequest((paymentDataRequest)=>{\n const paymentsClient = this.getGooglePaymentsClient();\n try {\n paymentsClient.loadPaymentData(paymentDataRequest);\n } catch (err) {\n this.failPayment('Could not load payment data. ' + err);\n }\n this.unblockUI();\n });\n }\n /**\n\t\t * Initialize Google PaymentsClient after Google-hosted JavaScript has loaded\n\t\t *\n\t\t * Display a Google Pay payment button after confirmation of the viewer's\n\t\t * ability to pay.\n\t\t */ init() {\n // initialize for the various pages\n if ($('form.cart').length) this.initProductPage();\n else if ($('form.woocommerce-cart-form').length) this.initCartPage();\n else if ($('form.woocommerce-checkout').length) this.initCheckoutPage();\n else return;\n this.initGooglePay();\n }\n /**\n\t\t * Initializes Google Pay.\n\t\t */ initGooglePay() {\n const paymentsClient = this.getGooglePaymentsClient();\n paymentsClient.isReadyToPay(this.getGoogleIsReadyToPayRequest()).then((response)=>{\n if (response.result) {\n this.addGooglePayButton();\n // prefetch payment data to improve performance\n this.prefetchGooglePaymentData();\n }\n }).catch((err)=>{\n this.failPayment('Google Pay is not ready. ' + err);\n });\n }\n /**\n\t\t * Initializes the product page.\n\t\t */ initProductPage() {\n this.uiElement = $('form.cart');\n }\n /**\n\t\t * Initializes the cart page.\n\t\t */ initCartPage() {\n this.uiElement = $('form.woocommerce-cart-form').parents('div.woocommerce');\n // re-init if the cart totals are updated\n $(document.body).on('updated_cart_totals', ()=>{\n this.initGooglePay();\n });\n }\n /**\n\t\t * Initializes the checkout page.\n\t\t */ initCheckoutPage() {\n this.uiElement = $('form.woocommerce-checkout');\n }\n /**\n\t\t * Fails the purchase based on the gateway result.\n\t\t */ failPayment(error) {\n console.error('[Google Pay] ' + error);\n this.unblockUI();\n this.renderErrors([\n this.genericError\n ]);\n }\n /**\n\t\t * Renders any new errors and bring them into the viewport.\n \t\t */ renderErrors(errors) {\n // hide and remove any previous errors\n $('.woocommerce-error, .woocommerce-message').remove();\n // add errors\n this.uiElement.prepend('
  • ' + errors.join('
  • ') + '
');\n // unblock UI\n this.uiElement.removeClass('processing').unblock();\n // scroll to top\n $('html, body').animate({\n scrollTop: this.uiElement.offset().top - 100\n }, 1000);\n }\n /**\n\t\t * Blocks the payment form UI.\n\t\t */ blockUI() {\n this.uiElement.block({\n message: null,\n overlayCSS: {\n background: '#fff',\n opacity: 0.6\n }\n });\n }\n /**\n\t\t * Unblocks the payment form UI.\n\t\t */ unblockUI() {\n this.uiElement.unblock();\n }\n };\n $(document.body).trigger('sv_wc_google_pay_handler_v6_0_0_loaded');\n});\n\n})();\n//# sourceMappingURL=sv-wc-payment-gateway-google-pay.js.map\n","jQuery( function( $ ) {\n\n\t\"use strict\"\n\n\t/**\n\t * Google Pay handler.\n\t *\n\t * @since 5.10.0\n\t *\n\t * @type {SV_WC_Google_Pay_Handler_v6_0_0} object\n\t */\n\twindow.SV_WC_Google_Pay_Handler_v6_0_0 = class SV_WC_Google_Pay_Handler_v6_0_0 {\n\n\t\t/**\n\t\t * Handler constructor.\n\t\t *\n\t\t * @since 5.10.0\n\t\t *\n\t\t * @param {Object} params The plugin ID\n\t\t * @param {string} params.plugin_id The plugin ID\n\t\t * @param {string} params.merchant_id The merchant ID\n\t\t * @param {string} params.merchant_name The site name\n\t\t * @param {string} params.gateway_id The gateway ID\n\t\t * @param {string} params.gateway_id_dasherized The gateway ID dasherized\n\t\t * @param {string} params.gateway_merchant_id The gateway merchant ID\n\t\t * @param {string} params.environment The gateway environment (PRODUCTION or TEST)\n\t\t * @param {string} params.ajax_url The AJAX URL\n\t\t * @param {string} params.recalculate_totals_nonce Nonce for the recalculate_totals AJAX action\n\t\t * @param {string} params.process_nonce Nonce for the process AJAX action\n\t\t * @param {string} params.button_style The button style\n\t\t * @param {string[]} params.card_types The supported card types\n\t\t * @param {string[]} params.available_countries Array of two-letter country codes the gateway is available for\n\t\t * @param {string[]} params.currency_code WC configured currency\n\t\t * @param {boolean} params.needs_shipping Whether or not the cart or product needs shipping\n\t\t * @param {string} params.generic_error The generic error message\n\t\t * @param {string} params.product_id The product ID if we are on a Product page\n\t\t */\n\t\tconstructor( params ) {\n\n\t\t\tlet {\n\t\t\t\tplugin_id,\n\t\t\t\tmerchant_id,\n\t\t\t\tmerchant_name,\n\t\t\t\tgateway_id,\n\t\t\t\tgateway_id_dasherized,\n\t\t\t\tgateway_merchant_id,\n\t\t\t\tenvironment,\n\t\t\t\tajax_url,\n\t\t\t\trecalculate_totals_nonce,\n\t\t\t\tprocess_nonce,\n\t\t\t\tbutton_style,\n\t\t\t\tcard_types,\n\t\t\t\tavailable_countries,\n\t\t\t\tcurrency_code,\n\t\t\t\tneeds_shipping,\n\t\t\t\tgeneric_error\n\t\t\t} = params;\n\n\t\t\tthis.gatewayID = gateway_id;\n\t\t\tthis.gatewayMerchantID = gateway_merchant_id;\n\t\t\tthis.merchantID = merchant_id;\n\t\t\tthis.merchantName = merchant_name;\n\t\t\tthis.environment = environment;\n\t\t\tthis.ajaxURL = ajax_url;\n\t\t\tthis.recalculateTotalsNonce = recalculate_totals_nonce;\n\t\t\tthis.processNonce = process_nonce;\n\t\t\tthis.buttonStyle = button_style;\n\t\t\tthis.availableCountries = available_countries;\n\t\t\tthis.currencyCode = currency_code;\n\t\t\tthis.needsShipping = needs_shipping;\n\t\t\tthis.genericError = generic_error;\n\n\t\t\tif ( params.product_id ) {\n\t\t\t\tthis.productID = params.product_id;\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Card networks supported by your site and your gateway\n\t\t\t *\n\t\t\t * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#CardParameters|CardParameters}\n\t\t\t */\n\t\t\tconst allowedCardNetworks = card_types;\n\n\t\t\t/**\n\t\t\t * Define the version of the Google Pay API referenced when creating your configuration\n\t\t\t *\n\t\t\t * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#PaymentDataRequest|apiVersion in PaymentDataRequest}\n\t\t\t */\n\t\t\tthis.baseRequest = {\n\t\t\t\tapiVersion: 2,\n\t\t\t\tapiVersionMinor: 0\n\t\t\t};\n\n\t\t\t/**\n\t\t\t * Card authentication methods supported by your site and your gateway\n\t\t\t *\n\t\t\t * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#CardParameters|CardParameters}\n\t\t\t *\n\t\t\t * @todo confirm your processor supports Android device tokens for your supported card networks\n\t\t\t */\n\t\t\tconst allowedCardAuthMethods = [ 'PAN_ONLY', 'CRYPTOGRAM_3DS' ];\n\n\t\t\t/**\n\t\t\t * Identify your gateway and your site's gateway merchant identifier\n\t\t\t *\n\t\t\t * The Google Pay API response will return an encrypted payment method capable\n\t\t\t * of being charged by a supported gateway after payer authorization\n\t\t\t *\n\t\t\t * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#gateway|PaymentMethodTokenizationSpecification}\n\t\t\t */\n\t\t\tconst tokenizationSpecification = {\n\t\t\t\ttype: 'PAYMENT_GATEWAY',\n\t\t\t\tparameters: {\n\t\t\t\t\t'gateway': plugin_id,\n\t\t\t\t\t'gatewayMerchantId': this.gatewayMerchantID\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t/**\n\t\t\t * Describe your site's support for the CARD payment method and its required fields\n\t\t\t *\n\t\t\t * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#CardParameters|CardParameters}\n\t\t\t */\n\t\t\tthis.baseCardPaymentMethod = {\n\t\t\t\ttype: 'CARD',\n\t\t\t\tparameters: {\n\t\t\t\t\tallowedAuthMethods: allowedCardAuthMethods,\n\t\t\t\t\tallowedCardNetworks: allowedCardNetworks,\n\t\t\t\t\tbillingAddressRequired: true,\n\t\t\t\t\tbillingAddressParameters: {\n\t\t\t\t\t\tformat: 'FULL',\n\t\t\t\t\t\tphoneNumberRequired: true\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t/**\n\t\t\t * Describe your site's support for the CARD payment method including optional fields\n\t\t\t *\n\t\t\t * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#CardParameters|CardParameters}\n\t\t\t */\n\t\t\tthis.cardPaymentMethod = Object.assign(\n\t\t\t\t{},\n\t\t\t\tthis.baseCardPaymentMethod,\n\t\t\t\t{\n\t\t\t\t\ttokenizationSpecification: tokenizationSpecification\n\t\t\t\t}\n\t\t\t);\n\n\t\t\t/**\n\t\t\t * An initialized google.payments.api.PaymentsClient object or null if not yet set\n\t\t\t *\n\t\t\t * @see {@link getGooglePaymentsClient}\n\t\t\t */\n\t\t\tthis.paymentsClient = null;\n\t\t}\n\n\t\t/**\n\t\t * Configure your site's support for payment methods supported by the Google Pay\n\t\t * API.\n\t\t *\n\t\t * Each member of allowedPaymentMethods should contain only the required fields,\n\t\t * allowing reuse of this base request when determining a viewer's ability\n\t\t * to pay and later requesting a supported payment method\n\t\t *\n\t\t * @returns {object} Google Pay API version, payment methods supported by the site\n\t\t */\n\t\tgetGoogleIsReadyToPayRequest() {\n\n\t\t\treturn Object.assign(\n\t\t\t\t{},\n\t\t\t\tthis.baseRequest,\n\t\t\t\t{\n\t\t\t\t\tallowedPaymentMethods: [ this.baseCardPaymentMethod ]\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\t/**\n\t\t * Configure support for the Google Pay API\n\t\t *\n\t\t * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#PaymentDataRequest|PaymentDataRequest}\n\t\t *\n\t\t * @param {function} resolve callback\n\t\t * @returns {object} PaymentDataRequest fields\n\t\t */\n\t\tgetGooglePaymentDataRequest( resolve ) {\n\n\t\t\treturn this.getGoogleTransactionInfo( ( transactionInfo ) => {\n\n\t\t\t\tconst paymentDataRequest = Object.assign( {}, this.baseRequest );\n\t\t\t\tpaymentDataRequest.allowedPaymentMethods = [ this.cardPaymentMethod ];\n\t\t\t\tpaymentDataRequest.transactionInfo = transactionInfo;\n\t\t\t\tpaymentDataRequest.merchantInfo = {\n\t\t\t\t\tmerchantId: this.merchantID,\n\t\t\t\t\tmerchantName: this.merchantName\n\t\t\t\t};\n\n\t\t\t\tpaymentDataRequest.emailRequired = true;\n\t\t\t\tpaymentDataRequest.callbackIntents = [ 'PAYMENT_AUTHORIZATION' ];\n\n\t\t\t\tif ( this.needsShipping ) {\n\t\t\t\t\tpaymentDataRequest.callbackIntents = [ 'SHIPPING_ADDRESS', 'SHIPPING_OPTION', 'PAYMENT_AUTHORIZATION' ];\n\t\t\t\t\tpaymentDataRequest.shippingAddressRequired = true;\n\t\t\t\t\tpaymentDataRequest.shippingAddressParameters = this.getGoogleShippingAddressParameters();\n\t\t\t\t\tpaymentDataRequest.shippingOptionRequired = true;\n\t\t\t\t}\n\n\t\t\t\tresolve( paymentDataRequest );\n\t\t\t} );\n\t\t}\n\n\t\t/**\n\t\t * Return an active PaymentsClient or initialize\n\t\t *\n\t\t * @see {@link https://developers.google.com/pay/api/web/reference/client#PaymentsClient|PaymentsClient constructor}\n\t\t * @returns {google.payments.api.PaymentsClient} Google Pay API client\n\t\t */\n\t\tgetGooglePaymentsClient() {\n\t\t\tif ( this.paymentsClient === null ) {\n\t\t\t\tlet args = {\n\t\t\t\t\tenvironment: this.environment,\n\t\t\t\t\tmerchantInfo: {\n\t\t\t\t\t\tmerchantName: this.merchantName,\n\t\t\t\t\t\tmerchantId: this.merchantID\n\t\t\t\t\t},\n\t\t\t\t\tpaymentDataCallbacks: {\n\t\t\t\t\t\tonPaymentAuthorized: ( paymentData ) => this.onPaymentAuthorized( paymentData ),\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tif ( this.needsShipping ) {\n\t\t\t\t\targs.paymentDataCallbacks.onPaymentDataChanged = ( paymentData ) => this.onPaymentDataChanged( paymentData );\n\t\t\t\t}\n\n\t\t\t\tthis.paymentsClient = new google.payments.api.PaymentsClient( args );\n\t\t\t}\n\t\t\treturn this.paymentsClient;\n\t\t}\n\n\t\t/**\n\t\t * Handles payment authorization callback intent.\n\t\t *\n\t\t * @param {object} paymentData response from Google Pay API after a payer approves payment.\n\t\t * @see {@link https://developers.google.com/pay/api/web/reference/response-objects#PaymentData|PaymentData object reference}\n\t\t *\n\t\t * @returns Promise<{object}> Promise object to complete or fail the transaction.\n\t\t */\n\t\tonPaymentAuthorized( paymentData ) {\n\n\t\t\tthis.blockUI();\n\n\t\t\treturn new Promise( (resolve, reject) => {\n\n\t\t\t\t// handle the response\n\t\t\t\ttry {\n\t\t\t\t\tthis.processPayment( paymentData, resolve );\n\t\t\t\t}\tcatch( err ) {\n\t\t\t\t\treject( {\n\t\t\t\t\t\ttransactionState: 'ERROR',\n\t\t\t\t\t\terror: {\n\t\t\t\t\t\t\tintent: 'PAYMENT_AUTHORIZATION',\n\t\t\t\t\t\t\tmessage: 'Payment could not be processed',\n\t\t\t\t\t\t\treason: 'PAYMENT_DATA_INVALID'\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\tthis.unblockUI();\n\t\t\t} );\n\t\t}\n\n\t\t/**\n\t\t * Handles dynamic buy flow shipping address and shipping options callback intents.\n\t\t *\n\t\t * @param {object} intermediatePaymentData response from Google Pay API a shipping address or shipping option is selected in the payment sheet.\n\t\t * @see {@link https://developers.google.com/pay/api/web/reference/response-objects#IntermediatePaymentData|IntermediatePaymentData object reference}\n\t\t *\n\t\t * @see {@link https://developers.google.com/pay/api/web/reference/response-objects#PaymentDataRequestUpdate|PaymentDataRequestUpdate}\n\t\t * @returns Promise<{object}> Promise of PaymentDataRequestUpdate object to update the payment sheet.\n\t\t */\n\t\tonPaymentDataChanged( intermediatePaymentData ) {\n\n\t\t\tthis.blockUI();\n\n\t\t\treturn new Promise(( resolve, reject ) => {\n\n\t\t\t\ttry {\n\t\t\t\t\tlet shippingAddress = intermediatePaymentData.shippingAddress;\n\t\t\t\t\tlet shippingOptionData = intermediatePaymentData.shippingOptionData;\n\t\t\t\t\tlet chosenShippingMethod = '';\n\n\t\t\t\t\tif ( intermediatePaymentData.callbackTrigger == 'SHIPPING_OPTION' ) {\n\t\t\t\t\t\tchosenShippingMethod = shippingOptionData.id;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.getUpdatedTotals( shippingAddress, chosenShippingMethod, ( paymentDataRequestUpdate ) => {\n\n\t\t\t\t\t\tif ( paymentDataRequestUpdate.newShippingOptionParameters.shippingOptions.length == 0 ) {\n\t\t\t\t\t\t\tpaymentDataRequestUpdate = {\n\t\t\t\t\t\t\t\terror: this.getGoogleUnserviceableAddressError()\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tresolve( paymentDataRequestUpdate );\n\t\t\t\t\t} );\n\n\t\t\t\t}\tcatch( err ) {\n\t\t\t\t\tthis.failPayment( 'Could not load updated totals or process payment data request update. ' + err );\n\t\t\t\t}\n\n\t\t\t\tthis.unblockUI();\n\t\t\t} );\n\t\t}\n\n\t\t/**\n\t\t * Provide Google Pay API with a payment amount, currency, and amount status\n\t\t *\n\t\t * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#TransactionInfo|TransactionInfo}\n\t\t *\n\t\t * @param {function} resolve callback\n\t\t * @returns {object} transaction info, suitable for use as transactionInfo property of PaymentDataRequest\n\t\t */\n\t\tgetGoogleTransactionInfo( resolve ) {\n\n\t\t\t// get transaction info from cart\n\t\t\tconst data = {\n\t\t\t\taction: `wc_${this.gatewayID}_google_pay_get_transaction_info`,\n\t\t\t}\n\n\t\t\tif ( this.productID ) {\n\t\t\t\tdata.productID = this.productID;\n\t\t\t}\n\n\t\t\t$.post( this.ajaxURL, data, ( response ) => {\n\n\t\t\t\tif ( response.success ) {\n\t\t\t\t\tresolve( JSON.parse( response.data ) )\n\t\t\t\t} else {\n\t\t\t\t\tthis.failPayment( 'Could not build transaction info. ' + response.data.message );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t/**\n\t\t * Get updated totals and shipping options via AJAX for use in the PaymentDataRequest\n\t\t *\n\t\t * @see {@link https://developers.google.com/pay/api/web/reference/response-objects#PaymentDataRequestUpdate|PaymentDataRequestUpdate}\n\t\t *\n\t\t * @param {object} shippingAddress shipping address\n\t\t * @param {object} shippingMethod chosen shipping method\n\t\t * @param {function} resolve callback\n\t\t */\n\t\tgetUpdatedTotals( shippingAddress, shippingMethod, resolve ) {\n\n\t\t\tconst data = {\n\t\t\t\taction: `wc_${this.gatewayID}_google_pay_recalculate_totals`,\n\t\t\t\t'nonce': this.recalculateTotalsNonce,\n\t\t\t\tshippingAddress,\n\t\t\t\tshippingMethod\n\t\t\t}\n\n\t\t\tif ( this.productID ) {\n\t\t\t\tdata.productID = this.productID;\n\t\t\t}\n\n\t\t\t$.post( this.ajaxURL, data, ( response ) => {\n\n\t\t\t\tif ( response.success ) {\n\t\t\t\t\tresolve( JSON.parse( response.data ) )\n\t\t\t\t} else {\n\t\t\t\t\tthis.failPayment( 'Could not recalculate totals. ' + response.data.message );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t/**\n\t\t * Provide Google Pay API with shipping address parameters when using dynamic buy flow.\n\t\t *\n\t\t * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#ShippingAddressParameters|ShippingAddressParameters}\n\t\t * @returns {object} shipping address details, suitable for use as shippingAddressParameters property of PaymentDataRequest\n\t\t */\n\t\tgetGoogleShippingAddressParameters() {\n\n\t\t\treturn {\n\t\t\t\tallowedCountryCodes: this.availableCountries\n\t\t\t};\n\t\t}\n\n\t\t/**\n\t\t * Provide Google Pay API with a payment data error.\n\t\t *\n\t\t * @see {@link https://developers.google.com/pay/api/web/reference/response-objects#PaymentDataError|PaymentDataError}\n\t\t * @returns {object} payment data error, suitable for use as error property of PaymentDataRequestUpdate\n\t\t */\n\t\tgetGoogleUnserviceableAddressError() {\n\t\t\treturn {\n\t\t\t\treason: 'SHIPPING_ADDRESS_UNSERVICEABLE',\n\t\t\t\tmessage: 'Cannot ship to the selected address',\n\t\t\t\tintent: 'SHIPPING_ADDRESS'\n\t\t\t};\n\t\t}\n\n\t\t/**\n\t\t * Add a Google Pay purchase button alongside an existing checkout button\n\t\t *\n\t\t * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#ButtonOptions|Button options}\n\t\t * @see {@link https://developers.google.com/pay/api/web/guides/brand-guidelines|Google Pay brand guidelines}\n\t\t */\n\t\taddGooglePayButton() {\n\n\t\t\tconst paymentsClient = this.getGooglePaymentsClient();\n\t\t\tconst button = paymentsClient.createButton( {\n\t\t\t\tonClick: ( event ) => this.onGooglePaymentButtonClicked( event ),\n\t\t\t\tbuttonColor: this.buttonStyle,\n\t\t\t\tbuttonSizeMode: 'fill'\n\t\t\t} );\n\t\t\tdocument.getElementById( 'sv-wc-google-pay-button-container' ).appendChild( button );\n\t\t}\n\n\t\t/**\n\t\t * Prefetch payment data to improve performance\n\t\t *\n\t\t * @see {@link https://developers.google.com/pay/api/web/reference/client#prefetchPaymentData|prefetchPaymentData()}\n\t\t */\n\t\tprefetchGooglePaymentData() {\n\n\t\t\tthis.getGooglePaymentDataRequest( ( paymentDataRequest ) => {\n\n\t\t\t\t// transactionInfo must be set but does not affect cache\n\t\t\t\tpaymentDataRequest.transactionInfo = {\n\t\t\t\t\ttotalPriceStatus: 'NOT_CURRENTLY_KNOWN',\n\t\t\t\t\tcurrencyCode: this.currencyCode\n\t\t\t\t};\n\t\t\t\tconst paymentsClient = this.getGooglePaymentsClient();\n\t\t\t\tpaymentsClient.prefetchPaymentData( paymentDataRequest );\n\t\t\t} );\n\t\t}\n\n\t\t/**\n\t\t * Process payment data returned by the Google Pay API\n\t\t *\n\t\t * @see {@link https://developers.google.com/pay/api/web/reference/response-objects#PaymentData|PaymentData object reference}\n\t\t *\n\t\t * @param {object} paymentData response from Google Pay API after user approves payment\n\t\t * @param {function} resolve callback\n\t\t */\n\t\tprocessPayment( paymentData, resolve ) {\n\n\t\t\t// pass payment token to your gateway to process payment\n\t\t\tconst data = {\n\t\t\t\taction: `wc_${this.gatewayID}_google_pay_process_payment`,\n\t\t\t\tnonce: this.processNonce,\n\t\t\t\tpaymentData: JSON.stringify( paymentData ),\n\t\t\t}\n\n\t\t\tif ( this.productID && ! this.needsShipping ) {\n\t\t\t\tdata.productID = this.productID;\n\t\t\t}\n\n\t\t\treturn $.post( this.ajaxURL, data, ( response ) => {\n\t\t\t\tif ( response.success ) {\n\t\t\t\t\tresolve( {\n\t\t\t\t\t\ttransactionState: 'SUCCESS'\n\t\t\t\t\t} );\n\t\t\t\t\twindow.location = response.data.redirect;\n\t\t\t\t} else {\n\t\t\t\t\tresolve( {\n\t\t\t\t\t\ttransactionState: 'ERROR',\n\t\t\t\t\t\terror: {\n\t\t\t\t\t\t\tintent: 'SHIPPING_ADDRESS',\n\t\t\t\t\t\t\tmessage: 'Invalid data',\n\t\t\t\t\t\t\treason: 'PAYMENT_DATA_INVALID'\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t\tthis.failPayment( 'Payment could not be processed. ' + response.data.message );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t/**\n\t\t * Show Google Pay payment sheet when Google Pay payment button is clicked\n\t\t */\n\t\tonGooglePaymentButtonClicked( event ) {\n\n\t\t\tevent.preventDefault();\n\n\t\t\tthis.blockUI();\n\n\t\t\tthis.getGooglePaymentDataRequest( ( paymentDataRequest ) => {\n\n\t\t\t\tconst paymentsClient = this.getGooglePaymentsClient();\n\t\t\t\ttry {\n\t\t\t\t\tpaymentsClient.loadPaymentData( paymentDataRequest );\n\t\t\t\t} catch ( err ) {\n\t\t\t\t\tthis.failPayment( 'Could not load payment data. ' + err );\n\t\t\t\t}\n\n\t\t\t\tthis.unblockUI();\n\t\t\t} );\n\t\t}\n\n\t\t/**\n\t\t * Initialize Google PaymentsClient after Google-hosted JavaScript has loaded\n\t\t *\n\t\t * Display a Google Pay payment button after confirmation of the viewer's\n\t\t * ability to pay.\n\t\t */\n\t\tinit() {\n\n\t\t\t// initialize for the various pages\n\t\t\tif ( $( 'form.cart' ).length ) {\n\t\t\t\tthis.initProductPage();\n\t\t\t} else if ( $( 'form.woocommerce-cart-form' ).length ) {\n\t\t\t\tthis.initCartPage();\n\t\t\t} else if ( $( 'form.woocommerce-checkout' ).length) {\n\t\t\t\tthis.initCheckoutPage()\n\t\t\t} else {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.initGooglePay();\n\t\t}\n\n\t\t/**\n\t\t * Initializes Google Pay.\n\t\t */\n\t\tinitGooglePay() {\n\n\t\t\tconst paymentsClient = this.getGooglePaymentsClient();\n\t\t\tpaymentsClient.isReadyToPay( this.getGoogleIsReadyToPayRequest() )\n\t\t\t\t.then( ( response ) => {\n\t\t\t\t\tif ( response.result ) {\n\t\t\t\t\t\tthis.addGooglePayButton();\n\t\t\t\t\t\t// prefetch payment data to improve performance\n\t\t\t\t\t\tthis.prefetchGooglePaymentData();\n\t\t\t\t\t}\n\t\t\t\t} )\n\t\t\t\t.catch( ( err ) => {\n\t\t\t\t\tthis.failPayment( 'Google Pay is not ready. ' + err );\n\t\t\t\t} );\n\t\t}\n\n\t\t/**\n\t\t * Initializes the product page.\n\t\t */\n\t\tinitProductPage() {\n\t\t\tthis.uiElement = $( 'form.cart' );\n\t\t}\n\n\t\t/**\n\t\t * Initializes the cart page.\n\t\t */\n\t\tinitCartPage() {\n\t\t\tthis.uiElement = $( 'form.woocommerce-cart-form' ).parents( 'div.woocommerce' );\n\n\t\t\t// re-init if the cart totals are updated\n\t\t\t$( document.body ).on( 'updated_cart_totals', () => {\n\t\t\t\tthis.initGooglePay();\n\t\t\t} );\n\t\t}\n\n\t\t/**\n\t\t * Initializes the checkout page.\n\t\t */\n\t\tinitCheckoutPage() {\n\t\t\tthis.uiElement = $( 'form.woocommerce-checkout' );\n\t\t}\n\n\t\t/**\n\t\t * Fails the purchase based on the gateway result.\n\t\t */\n\t\tfailPayment( error ) {\n\n\t\t\tconsole.error( '[Google Pay] ' + error );\n\n\t\t\tthis.unblockUI();\n\n\t\t\tthis.renderErrors( [ this.genericError ] );\n\t\t}\n\n\t\t/**\n\t\t * Renders any new errors and bring them into the viewport.\n \t\t */\n\t\trenderErrors( errors ) {\n\n\t\t\t// hide and remove any previous errors\n\t\t\t$( '.woocommerce-error, .woocommerce-message' ).remove();\n\n\t\t\t// add errors\n\t\t\tthis.uiElement.prepend( '
  • ' + errors.join( '
  • ' ) + '
' );\n\n\t\t\t// unblock UI\n\t\t\tthis.uiElement.removeClass( 'processing' ).unblock();\n\n\t\t\t// scroll to top\n\t\t\t$( 'html, body' ).animate( { scrollTop: this.uiElement.offset().top - 100 }, 1000 );\n\t\t}\n\n\t\t/**\n\t\t * Blocks the payment form UI.\n\t\t */\n\t\tblockUI() {\n\t\t\tthis.uiElement.block( { message: null, overlayCSS: { background: '#fff', opacity: 0.6 } } );\n\t\t}\n\n\t\t/**\n\t\t * Unblocks the payment form UI.\n\t\t */\n\t\tunblockUI() {\n\t\t\tthis.uiElement.unblock();\n\t\t}\n\t}\n\n\t$( document.body ).trigger( 'sv_wc_google_pay_handler_v6_0_0_loaded' );\n\n} );\n"],"names":["jQuery","$","window","SV_WC_Google_Pay_Handler_v6_0_0","constructor","params","plugin_id","merchant_id","merchant_name","gateway_id","gateway_id_dasherized","gateway_merchant_id","environment","ajax_url","recalculate_totals_nonce","process_nonce","button_style","card_types","available_countries","currency_code","needs_shipping","generic_error","gatewayID","gatewayMerchantID","merchantID","merchantName","ajaxURL","recalculateTotalsNonce","processNonce","buttonStyle","availableCountries","currencyCode","needsShipping","genericError","product_id","productID","baseRequest","apiVersion","apiVersionMinor","tokenizationSpecification","type","parameters","baseCardPaymentMethod","allowedAuthMethods","allowedCardNetworks","billingAddressRequired","billingAddressParameters","format","phoneNumberRequired","cardPaymentMethod","Object","assign","paymentsClient","getGoogleIsReadyToPayRequest","allowedPaymentMethods","getGooglePaymentDataRequest","resolve","getGoogleTransactionInfo","transactionInfo","paymentDataRequest","merchantInfo","merchantId","emailRequired","callbackIntents","shippingAddressRequired","shippingAddressParameters","getGoogleShippingAddressParameters","shippingOptionRequired","getGooglePaymentsClient","args","paymentDataCallbacks","onPaymentAuthorized","paymentData","onPaymentDataChanged","google","payments","api","PaymentsClient","blockUI","Promise","reject","processPayment","err","transactionState","error","intent","message","reason","unblockUI","intermediatePaymentData","shippingAddress","shippingOptionData","chosenShippingMethod","callbackTrigger","id","getUpdatedTotals","paymentDataRequestUpdate","newShippingOptionParameters","shippingOptions","length","getGoogleUnserviceableAddressError","failPayment","data","action","post","response","success","JSON","parse","shippingMethod","allowedCountryCodes","addGooglePayButton","button","createButton","onClick","event","onGooglePaymentButtonClicked","buttonColor","buttonSizeMode","document","getElementById","appendChild","prefetchGooglePaymentData","totalPriceStatus","prefetchPaymentData","nonce","stringify","location","redirect","preventDefault","loadPaymentData","init","initProductPage","initCartPage","initCheckoutPage","initGooglePay","isReadyToPay","then","result","catch","uiElement","parents","body","on","console","renderErrors","errors","remove","prepend","join","removeClass","unblock","animate","scrollTop","offset","top","block","overlayCSS","background","opacity","trigger"],"version":3,"file":"sv-wc-payment-gateway-google-pay.js.map"} \ No newline at end of file +{"mappings":"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","sources":["","woocommerce/payment-gateway/assets/js/frontend/sv-wc-payment-gateway-google-pay.js"],"sourcesContent":["(() => {\njQuery(function($) {\n \"use strict\";\n /**\n\t * Google Pay handler.\n\t *\n\t * @since 5.10.0\n\t *\n\t * @type {SV_WC_Google_Pay_Handler_v6_0_1} object\n\t */ window.SV_WC_Google_Pay_Handler_v6_0_1 = class SV_WC_Google_Pay_Handler_v6_0_1 {\n /**\n\t\t * Handler constructor.\n\t\t *\n\t\t * @since 5.10.0\n\t\t *\n\t\t * @param {Object} params The plugin ID\n\t\t * @param {string} params.plugin_id The plugin ID\n\t\t * @param {string} params.merchant_id The merchant ID\n\t\t * @param {string} params.merchant_name The site name\n\t\t * @param {string} params.gateway_id The gateway ID\n\t\t * @param {string} params.gateway_id_dasherized The gateway ID dasherized\n\t\t * @param {string} params.gateway_merchant_id The gateway merchant ID\n\t\t * @param {string} params.environment The gateway environment (PRODUCTION or TEST)\n\t\t * @param {string} params.ajax_url The AJAX URL\n\t\t * @param {string} params.recalculate_totals_nonce Nonce for the recalculate_totals AJAX action\n\t\t * @param {string} params.process_nonce Nonce for the process AJAX action\n\t\t * @param {string} params.button_style The button style\n\t\t * @param {string[]} params.card_types The supported card types\n\t\t * @param {string[]} params.available_countries Array of two-letter country codes the gateway is available for\n\t\t * @param {string[]} params.currency_code WC configured currency\n\t\t * @param {boolean} params.needs_shipping Whether or not the cart or product needs shipping\n\t\t * @param {string} params.generic_error The generic error message\n\t\t * @param {string} params.product_id The product ID if we are on a Product page\n\t\t */ constructor(params){\n let { plugin_id: plugin_id, merchant_id: merchant_id, merchant_name: merchant_name, gateway_id: gateway_id, gateway_id_dasherized: gateway_id_dasherized, gateway_merchant_id: gateway_merchant_id, environment: environment, ajax_url: ajax_url, recalculate_totals_nonce: recalculate_totals_nonce, process_nonce: process_nonce, button_style: button_style, card_types: card_types, available_countries: available_countries, currency_code: currency_code, needs_shipping: needs_shipping, generic_error: generic_error } = params;\n this.gatewayID = gateway_id;\n this.gatewayMerchantID = gateway_merchant_id;\n this.merchantID = merchant_id;\n this.merchantName = merchant_name;\n this.environment = environment;\n this.ajaxURL = ajax_url;\n this.recalculateTotalsNonce = recalculate_totals_nonce;\n this.processNonce = process_nonce;\n this.buttonStyle = button_style;\n this.availableCountries = available_countries;\n this.currencyCode = currency_code;\n this.needsShipping = needs_shipping;\n this.genericError = generic_error;\n if (params.product_id) this.productID = params.product_id;\n /**\n\t\t\t * Card networks supported by your site and your gateway\n\t\t\t *\n\t\t\t * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#CardParameters|CardParameters}\n\t\t\t */ const allowedCardNetworks = card_types;\n /**\n\t\t\t * Define the version of the Google Pay API referenced when creating your configuration\n\t\t\t *\n\t\t\t * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#PaymentDataRequest|apiVersion in PaymentDataRequest}\n\t\t\t */ this.baseRequest = {\n apiVersion: 2,\n apiVersionMinor: 0\n };\n /**\n\t\t\t * Card authentication methods supported by your site and your gateway\n\t\t\t *\n\t\t\t * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#CardParameters|CardParameters}\n\t\t\t *\n\t\t\t * @todo confirm your processor supports Android device tokens for your supported card networks\n\t\t\t */ const allowedCardAuthMethods = [\n 'PAN_ONLY',\n 'CRYPTOGRAM_3DS'\n ];\n /**\n\t\t\t * Identify your gateway and your site's gateway merchant identifier\n\t\t\t *\n\t\t\t * The Google Pay API response will return an encrypted payment method capable\n\t\t\t * of being charged by a supported gateway after payer authorization\n\t\t\t *\n\t\t\t * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#gateway|PaymentMethodTokenizationSpecification}\n\t\t\t */ const tokenizationSpecification = {\n type: 'PAYMENT_GATEWAY',\n parameters: {\n 'gateway': plugin_id,\n 'gatewayMerchantId': this.gatewayMerchantID\n }\n };\n /**\n\t\t\t * Describe your site's support for the CARD payment method and its required fields\n\t\t\t *\n\t\t\t * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#CardParameters|CardParameters}\n\t\t\t */ this.baseCardPaymentMethod = {\n type: 'CARD',\n parameters: {\n allowedAuthMethods: allowedCardAuthMethods,\n allowedCardNetworks: allowedCardNetworks,\n billingAddressRequired: true,\n billingAddressParameters: {\n format: 'FULL',\n phoneNumberRequired: true\n }\n }\n };\n /**\n\t\t\t * Describe your site's support for the CARD payment method including optional fields\n\t\t\t *\n\t\t\t * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#CardParameters|CardParameters}\n\t\t\t */ this.cardPaymentMethod = Object.assign({}, this.baseCardPaymentMethod, {\n tokenizationSpecification: tokenizationSpecification\n });\n /**\n\t\t\t * An initialized google.payments.api.PaymentsClient object or null if not yet set\n\t\t\t *\n\t\t\t * @see {@link getGooglePaymentsClient}\n\t\t\t */ this.paymentsClient = null;\n }\n /**\n\t\t * Configure your site's support for payment methods supported by the Google Pay\n\t\t * API.\n\t\t *\n\t\t * Each member of allowedPaymentMethods should contain only the required fields,\n\t\t * allowing reuse of this base request when determining a viewer's ability\n\t\t * to pay and later requesting a supported payment method\n\t\t *\n\t\t * @returns {object} Google Pay API version, payment methods supported by the site\n\t\t */ getGoogleIsReadyToPayRequest() {\n return Object.assign({}, this.baseRequest, {\n allowedPaymentMethods: [\n this.baseCardPaymentMethod\n ]\n });\n }\n /**\n\t\t * Configure support for the Google Pay API\n\t\t *\n\t\t * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#PaymentDataRequest|PaymentDataRequest}\n\t\t *\n\t\t * @param {function} resolve callback\n\t\t * @returns {object} PaymentDataRequest fields\n\t\t */ getGooglePaymentDataRequest(resolve) {\n return this.getGoogleTransactionInfo((transactionInfo)=>{\n const paymentDataRequest = Object.assign({}, this.baseRequest);\n paymentDataRequest.allowedPaymentMethods = [\n this.cardPaymentMethod\n ];\n paymentDataRequest.transactionInfo = transactionInfo;\n paymentDataRequest.merchantInfo = {\n merchantId: this.merchantID,\n merchantName: this.merchantName\n };\n paymentDataRequest.emailRequired = true;\n paymentDataRequest.callbackIntents = [\n 'PAYMENT_AUTHORIZATION'\n ];\n if (this.needsShipping) {\n paymentDataRequest.callbackIntents = [\n 'SHIPPING_ADDRESS',\n 'SHIPPING_OPTION',\n 'PAYMENT_AUTHORIZATION'\n ];\n paymentDataRequest.shippingAddressRequired = true;\n paymentDataRequest.shippingAddressParameters = this.getGoogleShippingAddressParameters();\n paymentDataRequest.shippingOptionRequired = true;\n }\n resolve(paymentDataRequest);\n });\n }\n /**\n\t\t * Return an active PaymentsClient or initialize\n\t\t *\n\t\t * @see {@link https://developers.google.com/pay/api/web/reference/client#PaymentsClient|PaymentsClient constructor}\n\t\t * @returns {google.payments.api.PaymentsClient} Google Pay API client\n\t\t */ getGooglePaymentsClient() {\n if (this.paymentsClient === null) {\n let args = {\n environment: this.environment,\n merchantInfo: {\n merchantName: this.merchantName,\n merchantId: this.merchantID\n },\n paymentDataCallbacks: {\n onPaymentAuthorized: (paymentData)=>this.onPaymentAuthorized(paymentData)\n }\n };\n if (this.needsShipping) args.paymentDataCallbacks.onPaymentDataChanged = (paymentData)=>this.onPaymentDataChanged(paymentData);\n this.paymentsClient = new google.payments.api.PaymentsClient(args);\n }\n return this.paymentsClient;\n }\n /**\n\t\t * Handles payment authorization callback intent.\n\t\t *\n\t\t * @param {object} paymentData response from Google Pay API after a payer approves payment.\n\t\t * @see {@link https://developers.google.com/pay/api/web/reference/response-objects#PaymentData|PaymentData object reference}\n\t\t *\n\t\t * @returns Promise<{object}> Promise object to complete or fail the transaction.\n\t\t */ onPaymentAuthorized(paymentData) {\n this.blockUI();\n return new Promise((resolve, reject)=>{\n // handle the response\n try {\n this.processPayment(paymentData, resolve);\n } catch (err) {\n reject({\n transactionState: 'ERROR',\n error: {\n intent: 'PAYMENT_AUTHORIZATION',\n message: 'Payment could not be processed',\n reason: 'PAYMENT_DATA_INVALID'\n }\n });\n }\n this.unblockUI();\n });\n }\n /**\n\t\t * Handles dynamic buy flow shipping address and shipping options callback intents.\n\t\t *\n\t\t * @param {object} intermediatePaymentData response from Google Pay API a shipping address or shipping option is selected in the payment sheet.\n\t\t * @see {@link https://developers.google.com/pay/api/web/reference/response-objects#IntermediatePaymentData|IntermediatePaymentData object reference}\n\t\t *\n\t\t * @see {@link https://developers.google.com/pay/api/web/reference/response-objects#PaymentDataRequestUpdate|PaymentDataRequestUpdate}\n\t\t * @returns Promise<{object}> Promise of PaymentDataRequestUpdate object to update the payment sheet.\n\t\t */ onPaymentDataChanged(intermediatePaymentData) {\n this.blockUI();\n return new Promise((resolve, reject)=>{\n try {\n let shippingAddress = intermediatePaymentData.shippingAddress;\n let shippingOptionData = intermediatePaymentData.shippingOptionData;\n let chosenShippingMethod = '';\n if (intermediatePaymentData.callbackTrigger == 'SHIPPING_OPTION') chosenShippingMethod = shippingOptionData.id;\n this.getUpdatedTotals(shippingAddress, chosenShippingMethod, (paymentDataRequestUpdate)=>{\n if (paymentDataRequestUpdate.newShippingOptionParameters.shippingOptions.length == 0) paymentDataRequestUpdate = {\n error: this.getGoogleUnserviceableAddressError()\n };\n resolve(paymentDataRequestUpdate);\n });\n } catch (err) {\n this.failPayment('Could not load updated totals or process payment data request update. ' + err);\n }\n this.unblockUI();\n });\n }\n /**\n\t\t * Provide Google Pay API with a payment amount, currency, and amount status\n\t\t *\n\t\t * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#TransactionInfo|TransactionInfo}\n\t\t *\n\t\t * @param {function} resolve callback\n\t\t * @returns {object} transaction info, suitable for use as transactionInfo property of PaymentDataRequest\n\t\t */ getGoogleTransactionInfo(resolve) {\n // get transaction info from cart\n const data = {\n action: `wc_${this.gatewayID}_google_pay_get_transaction_info`\n };\n if (this.productID) data.productID = this.productID;\n $.post(this.ajaxURL, data, (response)=>{\n if (response.success) resolve(JSON.parse(response.data));\n else this.failPayment('Could not build transaction info. ' + response.data.message);\n });\n }\n /**\n\t\t * Get updated totals and shipping options via AJAX for use in the PaymentDataRequest\n\t\t *\n\t\t * @see {@link https://developers.google.com/pay/api/web/reference/response-objects#PaymentDataRequestUpdate|PaymentDataRequestUpdate}\n\t\t *\n\t\t * @param {object} shippingAddress shipping address\n\t\t * @param {object} shippingMethod chosen shipping method\n\t\t * @param {function} resolve callback\n\t\t */ getUpdatedTotals(shippingAddress, shippingMethod, resolve) {\n const data = {\n action: `wc_${this.gatewayID}_google_pay_recalculate_totals`,\n 'nonce': this.recalculateTotalsNonce,\n shippingAddress: shippingAddress,\n shippingMethod: shippingMethod\n };\n if (this.productID) data.productID = this.productID;\n $.post(this.ajaxURL, data, (response)=>{\n if (response.success) resolve(JSON.parse(response.data));\n else this.failPayment('Could not recalculate totals. ' + response.data.message);\n });\n }\n /**\n\t\t * Provide Google Pay API with shipping address parameters when using dynamic buy flow.\n\t\t *\n\t\t * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#ShippingAddressParameters|ShippingAddressParameters}\n\t\t * @returns {object} shipping address details, suitable for use as shippingAddressParameters property of PaymentDataRequest\n\t\t */ getGoogleShippingAddressParameters() {\n return {\n allowedCountryCodes: this.availableCountries\n };\n }\n /**\n\t\t * Provide Google Pay API with a payment data error.\n\t\t *\n\t\t * @see {@link https://developers.google.com/pay/api/web/reference/response-objects#PaymentDataError|PaymentDataError}\n\t\t * @returns {object} payment data error, suitable for use as error property of PaymentDataRequestUpdate\n\t\t */ getGoogleUnserviceableAddressError() {\n return {\n reason: 'SHIPPING_ADDRESS_UNSERVICEABLE',\n message: 'Cannot ship to the selected address',\n intent: 'SHIPPING_ADDRESS'\n };\n }\n /**\n\t\t * Add a Google Pay purchase button alongside an existing checkout button\n\t\t *\n\t\t * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#ButtonOptions|Button options}\n\t\t * @see {@link https://developers.google.com/pay/api/web/guides/brand-guidelines|Google Pay brand guidelines}\n\t\t */ addGooglePayButton() {\n const paymentsClient = this.getGooglePaymentsClient();\n const button = paymentsClient.createButton({\n onClick: (event)=>this.onGooglePaymentButtonClicked(event),\n buttonColor: this.buttonStyle,\n buttonSizeMode: 'fill'\n });\n document.getElementById('sv-wc-google-pay-button-container').appendChild(button);\n }\n /**\n\t\t * Prefetch payment data to improve performance\n\t\t *\n\t\t * @see {@link https://developers.google.com/pay/api/web/reference/client#prefetchPaymentData|prefetchPaymentData()}\n\t\t */ prefetchGooglePaymentData() {\n this.getGooglePaymentDataRequest((paymentDataRequest)=>{\n // transactionInfo must be set but does not affect cache\n paymentDataRequest.transactionInfo = {\n totalPriceStatus: 'NOT_CURRENTLY_KNOWN',\n currencyCode: this.currencyCode\n };\n const paymentsClient = this.getGooglePaymentsClient();\n paymentsClient.prefetchPaymentData(paymentDataRequest);\n });\n }\n /**\n\t\t * Process payment data returned by the Google Pay API\n\t\t *\n\t\t * @see {@link https://developers.google.com/pay/api/web/reference/response-objects#PaymentData|PaymentData object reference}\n\t\t *\n\t\t * @param {object} paymentData response from Google Pay API after user approves payment\n\t\t * @param {function} resolve callback\n\t\t */ processPayment(paymentData, resolve) {\n // pass payment token to your gateway to process payment\n const data = {\n action: `wc_${this.gatewayID}_google_pay_process_payment`,\n nonce: this.processNonce,\n paymentData: JSON.stringify(paymentData)\n };\n if (this.productID && !this.needsShipping) data.productID = this.productID;\n return $.post(this.ajaxURL, data, (response)=>{\n if (response.success) {\n resolve({\n transactionState: 'SUCCESS'\n });\n window.location = response.data.redirect;\n } else {\n resolve({\n transactionState: 'ERROR',\n error: {\n intent: 'SHIPPING_ADDRESS',\n message: 'Invalid data',\n reason: 'PAYMENT_DATA_INVALID'\n }\n });\n this.failPayment('Payment could not be processed. ' + response.data.message);\n }\n });\n }\n /**\n\t\t * Show Google Pay payment sheet when Google Pay payment button is clicked\n\t\t */ onGooglePaymentButtonClicked(event) {\n event.preventDefault();\n this.blockUI();\n this.getGooglePaymentDataRequest((paymentDataRequest)=>{\n const paymentsClient = this.getGooglePaymentsClient();\n try {\n paymentsClient.loadPaymentData(paymentDataRequest);\n } catch (err) {\n this.failPayment('Could not load payment data. ' + err);\n }\n this.unblockUI();\n });\n }\n /**\n\t\t * Initialize Google PaymentsClient after Google-hosted JavaScript has loaded\n\t\t *\n\t\t * Display a Google Pay payment button after confirmation of the viewer's\n\t\t * ability to pay.\n\t\t */ init() {\n // initialize for the various pages\n if ($('form.cart').length) this.initProductPage();\n else if ($('form.woocommerce-cart-form').length) this.initCartPage();\n else if ($('form.woocommerce-checkout').length) this.initCheckoutPage();\n else return;\n this.initGooglePay();\n }\n /**\n\t\t * Initializes Google Pay.\n\t\t */ initGooglePay() {\n const paymentsClient = this.getGooglePaymentsClient();\n paymentsClient.isReadyToPay(this.getGoogleIsReadyToPayRequest()).then((response)=>{\n if (response.result) {\n this.addGooglePayButton();\n // prefetch payment data to improve performance\n this.prefetchGooglePaymentData();\n }\n }).catch((err)=>{\n this.failPayment('Google Pay is not ready. ' + err);\n });\n }\n /**\n\t\t * Initializes the product page.\n\t\t */ initProductPage() {\n this.uiElement = $('form.cart');\n }\n /**\n\t\t * Initializes the cart page.\n\t\t */ initCartPage() {\n this.uiElement = $('form.woocommerce-cart-form').parents('div.woocommerce');\n // re-init if the cart totals are updated\n $(document.body).on('updated_cart_totals', ()=>{\n this.initGooglePay();\n });\n }\n /**\n\t\t * Initializes the checkout page.\n\t\t */ initCheckoutPage() {\n this.uiElement = $('form.woocommerce-checkout');\n }\n /**\n\t\t * Fails the purchase based on the gateway result.\n\t\t */ failPayment(error) {\n console.error('[Google Pay] ' + error);\n this.unblockUI();\n this.renderErrors([\n this.genericError\n ]);\n }\n /**\n\t\t * Renders any new errors and bring them into the viewport.\n \t\t */ renderErrors(errors) {\n // hide and remove any previous errors\n $('.woocommerce-error, .woocommerce-message').remove();\n // add errors\n this.uiElement.prepend('
  • ' + errors.join('
  • ') + '
');\n // unblock UI\n this.uiElement.removeClass('processing').unblock();\n // scroll to top\n $('html, body').animate({\n scrollTop: this.uiElement.offset().top - 100\n }, 1000);\n }\n /**\n\t\t * Blocks the payment form UI.\n\t\t */ blockUI() {\n this.uiElement.block({\n message: null,\n overlayCSS: {\n background: '#fff',\n opacity: 0.6\n }\n });\n }\n /**\n\t\t * Unblocks the payment form UI.\n\t\t */ unblockUI() {\n this.uiElement.unblock();\n }\n };\n $(document.body).trigger('sv_wc_google_pay_handler_v6_0_1_loaded');\n});\n\n})();\n//# sourceMappingURL=sv-wc-payment-gateway-google-pay.js.map\n","jQuery( function( $ ) {\n\n\t\"use strict\"\n\n\t/**\n\t * Google Pay handler.\n\t *\n\t * @since 5.10.0\n\t *\n\t * @type {SV_WC_Google_Pay_Handler_v6_0_1} object\n\t */\n\twindow.SV_WC_Google_Pay_Handler_v6_0_1 = class SV_WC_Google_Pay_Handler_v6_0_1 {\n\n\t\t/**\n\t\t * Handler constructor.\n\t\t *\n\t\t * @since 5.10.0\n\t\t *\n\t\t * @param {Object} params The plugin ID\n\t\t * @param {string} params.plugin_id The plugin ID\n\t\t * @param {string} params.merchant_id The merchant ID\n\t\t * @param {string} params.merchant_name The site name\n\t\t * @param {string} params.gateway_id The gateway ID\n\t\t * @param {string} params.gateway_id_dasherized The gateway ID dasherized\n\t\t * @param {string} params.gateway_merchant_id The gateway merchant ID\n\t\t * @param {string} params.environment The gateway environment (PRODUCTION or TEST)\n\t\t * @param {string} params.ajax_url The AJAX URL\n\t\t * @param {string} params.recalculate_totals_nonce Nonce for the recalculate_totals AJAX action\n\t\t * @param {string} params.process_nonce Nonce for the process AJAX action\n\t\t * @param {string} params.button_style The button style\n\t\t * @param {string[]} params.card_types The supported card types\n\t\t * @param {string[]} params.available_countries Array of two-letter country codes the gateway is available for\n\t\t * @param {string[]} params.currency_code WC configured currency\n\t\t * @param {boolean} params.needs_shipping Whether or not the cart or product needs shipping\n\t\t * @param {string} params.generic_error The generic error message\n\t\t * @param {string} params.product_id The product ID if we are on a Product page\n\t\t */\n\t\tconstructor( params ) {\n\n\t\t\tlet {\n\t\t\t\tplugin_id,\n\t\t\t\tmerchant_id,\n\t\t\t\tmerchant_name,\n\t\t\t\tgateway_id,\n\t\t\t\tgateway_id_dasherized,\n\t\t\t\tgateway_merchant_id,\n\t\t\t\tenvironment,\n\t\t\t\tajax_url,\n\t\t\t\trecalculate_totals_nonce,\n\t\t\t\tprocess_nonce,\n\t\t\t\tbutton_style,\n\t\t\t\tcard_types,\n\t\t\t\tavailable_countries,\n\t\t\t\tcurrency_code,\n\t\t\t\tneeds_shipping,\n\t\t\t\tgeneric_error\n\t\t\t} = params;\n\n\t\t\tthis.gatewayID = gateway_id;\n\t\t\tthis.gatewayMerchantID = gateway_merchant_id;\n\t\t\tthis.merchantID = merchant_id;\n\t\t\tthis.merchantName = merchant_name;\n\t\t\tthis.environment = environment;\n\t\t\tthis.ajaxURL = ajax_url;\n\t\t\tthis.recalculateTotalsNonce = recalculate_totals_nonce;\n\t\t\tthis.processNonce = process_nonce;\n\t\t\tthis.buttonStyle = button_style;\n\t\t\tthis.availableCountries = available_countries;\n\t\t\tthis.currencyCode = currency_code;\n\t\t\tthis.needsShipping = needs_shipping;\n\t\t\tthis.genericError = generic_error;\n\n\t\t\tif ( params.product_id ) {\n\t\t\t\tthis.productID = params.product_id;\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Card networks supported by your site and your gateway\n\t\t\t *\n\t\t\t * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#CardParameters|CardParameters}\n\t\t\t */\n\t\t\tconst allowedCardNetworks = card_types;\n\n\t\t\t/**\n\t\t\t * Define the version of the Google Pay API referenced when creating your configuration\n\t\t\t *\n\t\t\t * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#PaymentDataRequest|apiVersion in PaymentDataRequest}\n\t\t\t */\n\t\t\tthis.baseRequest = {\n\t\t\t\tapiVersion: 2,\n\t\t\t\tapiVersionMinor: 0\n\t\t\t};\n\n\t\t\t/**\n\t\t\t * Card authentication methods supported by your site and your gateway\n\t\t\t *\n\t\t\t * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#CardParameters|CardParameters}\n\t\t\t *\n\t\t\t * @todo confirm your processor supports Android device tokens for your supported card networks\n\t\t\t */\n\t\t\tconst allowedCardAuthMethods = [ 'PAN_ONLY', 'CRYPTOGRAM_3DS' ];\n\n\t\t\t/**\n\t\t\t * Identify your gateway and your site's gateway merchant identifier\n\t\t\t *\n\t\t\t * The Google Pay API response will return an encrypted payment method capable\n\t\t\t * of being charged by a supported gateway after payer authorization\n\t\t\t *\n\t\t\t * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#gateway|PaymentMethodTokenizationSpecification}\n\t\t\t */\n\t\t\tconst tokenizationSpecification = {\n\t\t\t\ttype: 'PAYMENT_GATEWAY',\n\t\t\t\tparameters: {\n\t\t\t\t\t'gateway': plugin_id,\n\t\t\t\t\t'gatewayMerchantId': this.gatewayMerchantID\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t/**\n\t\t\t * Describe your site's support for the CARD payment method and its required fields\n\t\t\t *\n\t\t\t * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#CardParameters|CardParameters}\n\t\t\t */\n\t\t\tthis.baseCardPaymentMethod = {\n\t\t\t\ttype: 'CARD',\n\t\t\t\tparameters: {\n\t\t\t\t\tallowedAuthMethods: allowedCardAuthMethods,\n\t\t\t\t\tallowedCardNetworks: allowedCardNetworks,\n\t\t\t\t\tbillingAddressRequired: true,\n\t\t\t\t\tbillingAddressParameters: {\n\t\t\t\t\t\tformat: 'FULL',\n\t\t\t\t\t\tphoneNumberRequired: true\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t/**\n\t\t\t * Describe your site's support for the CARD payment method including optional fields\n\t\t\t *\n\t\t\t * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#CardParameters|CardParameters}\n\t\t\t */\n\t\t\tthis.cardPaymentMethod = Object.assign(\n\t\t\t\t{},\n\t\t\t\tthis.baseCardPaymentMethod,\n\t\t\t\t{\n\t\t\t\t\ttokenizationSpecification: tokenizationSpecification\n\t\t\t\t}\n\t\t\t);\n\n\t\t\t/**\n\t\t\t * An initialized google.payments.api.PaymentsClient object or null if not yet set\n\t\t\t *\n\t\t\t * @see {@link getGooglePaymentsClient}\n\t\t\t */\n\t\t\tthis.paymentsClient = null;\n\t\t}\n\n\t\t/**\n\t\t * Configure your site's support for payment methods supported by the Google Pay\n\t\t * API.\n\t\t *\n\t\t * Each member of allowedPaymentMethods should contain only the required fields,\n\t\t * allowing reuse of this base request when determining a viewer's ability\n\t\t * to pay and later requesting a supported payment method\n\t\t *\n\t\t * @returns {object} Google Pay API version, payment methods supported by the site\n\t\t */\n\t\tgetGoogleIsReadyToPayRequest() {\n\n\t\t\treturn Object.assign(\n\t\t\t\t{},\n\t\t\t\tthis.baseRequest,\n\t\t\t\t{\n\t\t\t\t\tallowedPaymentMethods: [ this.baseCardPaymentMethod ]\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\t/**\n\t\t * Configure support for the Google Pay API\n\t\t *\n\t\t * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#PaymentDataRequest|PaymentDataRequest}\n\t\t *\n\t\t * @param {function} resolve callback\n\t\t * @returns {object} PaymentDataRequest fields\n\t\t */\n\t\tgetGooglePaymentDataRequest( resolve ) {\n\n\t\t\treturn this.getGoogleTransactionInfo( ( transactionInfo ) => {\n\n\t\t\t\tconst paymentDataRequest = Object.assign( {}, this.baseRequest );\n\t\t\t\tpaymentDataRequest.allowedPaymentMethods = [ this.cardPaymentMethod ];\n\t\t\t\tpaymentDataRequest.transactionInfo = transactionInfo;\n\t\t\t\tpaymentDataRequest.merchantInfo = {\n\t\t\t\t\tmerchantId: this.merchantID,\n\t\t\t\t\tmerchantName: this.merchantName\n\t\t\t\t};\n\n\t\t\t\tpaymentDataRequest.emailRequired = true;\n\t\t\t\tpaymentDataRequest.callbackIntents = [ 'PAYMENT_AUTHORIZATION' ];\n\n\t\t\t\tif ( this.needsShipping ) {\n\t\t\t\t\tpaymentDataRequest.callbackIntents = [ 'SHIPPING_ADDRESS', 'SHIPPING_OPTION', 'PAYMENT_AUTHORIZATION' ];\n\t\t\t\t\tpaymentDataRequest.shippingAddressRequired = true;\n\t\t\t\t\tpaymentDataRequest.shippingAddressParameters = this.getGoogleShippingAddressParameters();\n\t\t\t\t\tpaymentDataRequest.shippingOptionRequired = true;\n\t\t\t\t}\n\n\t\t\t\tresolve( paymentDataRequest );\n\t\t\t} );\n\t\t}\n\n\t\t/**\n\t\t * Return an active PaymentsClient or initialize\n\t\t *\n\t\t * @see {@link https://developers.google.com/pay/api/web/reference/client#PaymentsClient|PaymentsClient constructor}\n\t\t * @returns {google.payments.api.PaymentsClient} Google Pay API client\n\t\t */\n\t\tgetGooglePaymentsClient() {\n\t\t\tif ( this.paymentsClient === null ) {\n\t\t\t\tlet args = {\n\t\t\t\t\tenvironment: this.environment,\n\t\t\t\t\tmerchantInfo: {\n\t\t\t\t\t\tmerchantName: this.merchantName,\n\t\t\t\t\t\tmerchantId: this.merchantID\n\t\t\t\t\t},\n\t\t\t\t\tpaymentDataCallbacks: {\n\t\t\t\t\t\tonPaymentAuthorized: ( paymentData ) => this.onPaymentAuthorized( paymentData ),\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tif ( this.needsShipping ) {\n\t\t\t\t\targs.paymentDataCallbacks.onPaymentDataChanged = ( paymentData ) => this.onPaymentDataChanged( paymentData );\n\t\t\t\t}\n\n\t\t\t\tthis.paymentsClient = new google.payments.api.PaymentsClient( args );\n\t\t\t}\n\t\t\treturn this.paymentsClient;\n\t\t}\n\n\t\t/**\n\t\t * Handles payment authorization callback intent.\n\t\t *\n\t\t * @param {object} paymentData response from Google Pay API after a payer approves payment.\n\t\t * @see {@link https://developers.google.com/pay/api/web/reference/response-objects#PaymentData|PaymentData object reference}\n\t\t *\n\t\t * @returns Promise<{object}> Promise object to complete or fail the transaction.\n\t\t */\n\t\tonPaymentAuthorized( paymentData ) {\n\n\t\t\tthis.blockUI();\n\n\t\t\treturn new Promise( (resolve, reject) => {\n\n\t\t\t\t// handle the response\n\t\t\t\ttry {\n\t\t\t\t\tthis.processPayment( paymentData, resolve );\n\t\t\t\t}\tcatch( err ) {\n\t\t\t\t\treject( {\n\t\t\t\t\t\ttransactionState: 'ERROR',\n\t\t\t\t\t\terror: {\n\t\t\t\t\t\t\tintent: 'PAYMENT_AUTHORIZATION',\n\t\t\t\t\t\t\tmessage: 'Payment could not be processed',\n\t\t\t\t\t\t\treason: 'PAYMENT_DATA_INVALID'\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\tthis.unblockUI();\n\t\t\t} );\n\t\t}\n\n\t\t/**\n\t\t * Handles dynamic buy flow shipping address and shipping options callback intents.\n\t\t *\n\t\t * @param {object} intermediatePaymentData response from Google Pay API a shipping address or shipping option is selected in the payment sheet.\n\t\t * @see {@link https://developers.google.com/pay/api/web/reference/response-objects#IntermediatePaymentData|IntermediatePaymentData object reference}\n\t\t *\n\t\t * @see {@link https://developers.google.com/pay/api/web/reference/response-objects#PaymentDataRequestUpdate|PaymentDataRequestUpdate}\n\t\t * @returns Promise<{object}> Promise of PaymentDataRequestUpdate object to update the payment sheet.\n\t\t */\n\t\tonPaymentDataChanged( intermediatePaymentData ) {\n\n\t\t\tthis.blockUI();\n\n\t\t\treturn new Promise(( resolve, reject ) => {\n\n\t\t\t\ttry {\n\t\t\t\t\tlet shippingAddress = intermediatePaymentData.shippingAddress;\n\t\t\t\t\tlet shippingOptionData = intermediatePaymentData.shippingOptionData;\n\t\t\t\t\tlet chosenShippingMethod = '';\n\n\t\t\t\t\tif ( intermediatePaymentData.callbackTrigger == 'SHIPPING_OPTION' ) {\n\t\t\t\t\t\tchosenShippingMethod = shippingOptionData.id;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.getUpdatedTotals( shippingAddress, chosenShippingMethod, ( paymentDataRequestUpdate ) => {\n\n\t\t\t\t\t\tif ( paymentDataRequestUpdate.newShippingOptionParameters.shippingOptions.length == 0 ) {\n\t\t\t\t\t\t\tpaymentDataRequestUpdate = {\n\t\t\t\t\t\t\t\terror: this.getGoogleUnserviceableAddressError()\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tresolve( paymentDataRequestUpdate );\n\t\t\t\t\t} );\n\n\t\t\t\t}\tcatch( err ) {\n\t\t\t\t\tthis.failPayment( 'Could not load updated totals or process payment data request update. ' + err );\n\t\t\t\t}\n\n\t\t\t\tthis.unblockUI();\n\t\t\t} );\n\t\t}\n\n\t\t/**\n\t\t * Provide Google Pay API with a payment amount, currency, and amount status\n\t\t *\n\t\t * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#TransactionInfo|TransactionInfo}\n\t\t *\n\t\t * @param {function} resolve callback\n\t\t * @returns {object} transaction info, suitable for use as transactionInfo property of PaymentDataRequest\n\t\t */\n\t\tgetGoogleTransactionInfo( resolve ) {\n\n\t\t\t// get transaction info from cart\n\t\t\tconst data = {\n\t\t\t\taction: `wc_${this.gatewayID}_google_pay_get_transaction_info`,\n\t\t\t}\n\n\t\t\tif ( this.productID ) {\n\t\t\t\tdata.productID = this.productID;\n\t\t\t}\n\n\t\t\t$.post( this.ajaxURL, data, ( response ) => {\n\n\t\t\t\tif ( response.success ) {\n\t\t\t\t\tresolve( JSON.parse( response.data ) )\n\t\t\t\t} else {\n\t\t\t\t\tthis.failPayment( 'Could not build transaction info. ' + response.data.message );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t/**\n\t\t * Get updated totals and shipping options via AJAX for use in the PaymentDataRequest\n\t\t *\n\t\t * @see {@link https://developers.google.com/pay/api/web/reference/response-objects#PaymentDataRequestUpdate|PaymentDataRequestUpdate}\n\t\t *\n\t\t * @param {object} shippingAddress shipping address\n\t\t * @param {object} shippingMethod chosen shipping method\n\t\t * @param {function} resolve callback\n\t\t */\n\t\tgetUpdatedTotals( shippingAddress, shippingMethod, resolve ) {\n\n\t\t\tconst data = {\n\t\t\t\taction: `wc_${this.gatewayID}_google_pay_recalculate_totals`,\n\t\t\t\t'nonce': this.recalculateTotalsNonce,\n\t\t\t\tshippingAddress,\n\t\t\t\tshippingMethod\n\t\t\t}\n\n\t\t\tif ( this.productID ) {\n\t\t\t\tdata.productID = this.productID;\n\t\t\t}\n\n\t\t\t$.post( this.ajaxURL, data, ( response ) => {\n\n\t\t\t\tif ( response.success ) {\n\t\t\t\t\tresolve( JSON.parse( response.data ) )\n\t\t\t\t} else {\n\t\t\t\t\tthis.failPayment( 'Could not recalculate totals. ' + response.data.message );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t/**\n\t\t * Provide Google Pay API with shipping address parameters when using dynamic buy flow.\n\t\t *\n\t\t * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#ShippingAddressParameters|ShippingAddressParameters}\n\t\t * @returns {object} shipping address details, suitable for use as shippingAddressParameters property of PaymentDataRequest\n\t\t */\n\t\tgetGoogleShippingAddressParameters() {\n\n\t\t\treturn {\n\t\t\t\tallowedCountryCodes: this.availableCountries\n\t\t\t};\n\t\t}\n\n\t\t/**\n\t\t * Provide Google Pay API with a payment data error.\n\t\t *\n\t\t * @see {@link https://developers.google.com/pay/api/web/reference/response-objects#PaymentDataError|PaymentDataError}\n\t\t * @returns {object} payment data error, suitable for use as error property of PaymentDataRequestUpdate\n\t\t */\n\t\tgetGoogleUnserviceableAddressError() {\n\t\t\treturn {\n\t\t\t\treason: 'SHIPPING_ADDRESS_UNSERVICEABLE',\n\t\t\t\tmessage: 'Cannot ship to the selected address',\n\t\t\t\tintent: 'SHIPPING_ADDRESS'\n\t\t\t};\n\t\t}\n\n\t\t/**\n\t\t * Add a Google Pay purchase button alongside an existing checkout button\n\t\t *\n\t\t * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#ButtonOptions|Button options}\n\t\t * @see {@link https://developers.google.com/pay/api/web/guides/brand-guidelines|Google Pay brand guidelines}\n\t\t */\n\t\taddGooglePayButton() {\n\n\t\t\tconst paymentsClient = this.getGooglePaymentsClient();\n\t\t\tconst button = paymentsClient.createButton( {\n\t\t\t\tonClick: ( event ) => this.onGooglePaymentButtonClicked( event ),\n\t\t\t\tbuttonColor: this.buttonStyle,\n\t\t\t\tbuttonSizeMode: 'fill'\n\t\t\t} );\n\t\t\tdocument.getElementById( 'sv-wc-google-pay-button-container' ).appendChild( button );\n\t\t}\n\n\t\t/**\n\t\t * Prefetch payment data to improve performance\n\t\t *\n\t\t * @see {@link https://developers.google.com/pay/api/web/reference/client#prefetchPaymentData|prefetchPaymentData()}\n\t\t */\n\t\tprefetchGooglePaymentData() {\n\n\t\t\tthis.getGooglePaymentDataRequest( ( paymentDataRequest ) => {\n\n\t\t\t\t// transactionInfo must be set but does not affect cache\n\t\t\t\tpaymentDataRequest.transactionInfo = {\n\t\t\t\t\ttotalPriceStatus: 'NOT_CURRENTLY_KNOWN',\n\t\t\t\t\tcurrencyCode: this.currencyCode\n\t\t\t\t};\n\t\t\t\tconst paymentsClient = this.getGooglePaymentsClient();\n\t\t\t\tpaymentsClient.prefetchPaymentData( paymentDataRequest );\n\t\t\t} );\n\t\t}\n\n\t\t/**\n\t\t * Process payment data returned by the Google Pay API\n\t\t *\n\t\t * @see {@link https://developers.google.com/pay/api/web/reference/response-objects#PaymentData|PaymentData object reference}\n\t\t *\n\t\t * @param {object} paymentData response from Google Pay API after user approves payment\n\t\t * @param {function} resolve callback\n\t\t */\n\t\tprocessPayment( paymentData, resolve ) {\n\n\t\t\t// pass payment token to your gateway to process payment\n\t\t\tconst data = {\n\t\t\t\taction: `wc_${this.gatewayID}_google_pay_process_payment`,\n\t\t\t\tnonce: this.processNonce,\n\t\t\t\tpaymentData: JSON.stringify( paymentData ),\n\t\t\t}\n\n\t\t\tif ( this.productID && ! this.needsShipping ) {\n\t\t\t\tdata.productID = this.productID;\n\t\t\t}\n\n\t\t\treturn $.post( this.ajaxURL, data, ( response ) => {\n\t\t\t\tif ( response.success ) {\n\t\t\t\t\tresolve( {\n\t\t\t\t\t\ttransactionState: 'SUCCESS'\n\t\t\t\t\t} );\n\t\t\t\t\twindow.location = response.data.redirect;\n\t\t\t\t} else {\n\t\t\t\t\tresolve( {\n\t\t\t\t\t\ttransactionState: 'ERROR',\n\t\t\t\t\t\terror: {\n\t\t\t\t\t\t\tintent: 'SHIPPING_ADDRESS',\n\t\t\t\t\t\t\tmessage: 'Invalid data',\n\t\t\t\t\t\t\treason: 'PAYMENT_DATA_INVALID'\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t\tthis.failPayment( 'Payment could not be processed. ' + response.data.message );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t/**\n\t\t * Show Google Pay payment sheet when Google Pay payment button is clicked\n\t\t */\n\t\tonGooglePaymentButtonClicked( event ) {\n\n\t\t\tevent.preventDefault();\n\n\t\t\tthis.blockUI();\n\n\t\t\tthis.getGooglePaymentDataRequest( ( paymentDataRequest ) => {\n\n\t\t\t\tconst paymentsClient = this.getGooglePaymentsClient();\n\t\t\t\ttry {\n\t\t\t\t\tpaymentsClient.loadPaymentData( paymentDataRequest );\n\t\t\t\t} catch ( err ) {\n\t\t\t\t\tthis.failPayment( 'Could not load payment data. ' + err );\n\t\t\t\t}\n\n\t\t\t\tthis.unblockUI();\n\t\t\t} );\n\t\t}\n\n\t\t/**\n\t\t * Initialize Google PaymentsClient after Google-hosted JavaScript has loaded\n\t\t *\n\t\t * Display a Google Pay payment button after confirmation of the viewer's\n\t\t * ability to pay.\n\t\t */\n\t\tinit() {\n\n\t\t\t// initialize for the various pages\n\t\t\tif ( $( 'form.cart' ).length ) {\n\t\t\t\tthis.initProductPage();\n\t\t\t} else if ( $( 'form.woocommerce-cart-form' ).length ) {\n\t\t\t\tthis.initCartPage();\n\t\t\t} else if ( $( 'form.woocommerce-checkout' ).length) {\n\t\t\t\tthis.initCheckoutPage()\n\t\t\t} else {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.initGooglePay();\n\t\t}\n\n\t\t/**\n\t\t * Initializes Google Pay.\n\t\t */\n\t\tinitGooglePay() {\n\n\t\t\tconst paymentsClient = this.getGooglePaymentsClient();\n\t\t\tpaymentsClient.isReadyToPay( this.getGoogleIsReadyToPayRequest() )\n\t\t\t\t.then( ( response ) => {\n\t\t\t\t\tif ( response.result ) {\n\t\t\t\t\t\tthis.addGooglePayButton();\n\t\t\t\t\t\t// prefetch payment data to improve performance\n\t\t\t\t\t\tthis.prefetchGooglePaymentData();\n\t\t\t\t\t}\n\t\t\t\t} )\n\t\t\t\t.catch( ( err ) => {\n\t\t\t\t\tthis.failPayment( 'Google Pay is not ready. ' + err );\n\t\t\t\t} );\n\t\t}\n\n\t\t/**\n\t\t * Initializes the product page.\n\t\t */\n\t\tinitProductPage() {\n\t\t\tthis.uiElement = $( 'form.cart' );\n\t\t}\n\n\t\t/**\n\t\t * Initializes the cart page.\n\t\t */\n\t\tinitCartPage() {\n\t\t\tthis.uiElement = $( 'form.woocommerce-cart-form' ).parents( 'div.woocommerce' );\n\n\t\t\t// re-init if the cart totals are updated\n\t\t\t$( document.body ).on( 'updated_cart_totals', () => {\n\t\t\t\tthis.initGooglePay();\n\t\t\t} );\n\t\t}\n\n\t\t/**\n\t\t * Initializes the checkout page.\n\t\t */\n\t\tinitCheckoutPage() {\n\t\t\tthis.uiElement = $( 'form.woocommerce-checkout' );\n\t\t}\n\n\t\t/**\n\t\t * Fails the purchase based on the gateway result.\n\t\t */\n\t\tfailPayment( error ) {\n\n\t\t\tconsole.error( '[Google Pay] ' + error );\n\n\t\t\tthis.unblockUI();\n\n\t\t\tthis.renderErrors( [ this.genericError ] );\n\t\t}\n\n\t\t/**\n\t\t * Renders any new errors and bring them into the viewport.\n \t\t */\n\t\trenderErrors( errors ) {\n\n\t\t\t// hide and remove any previous errors\n\t\t\t$( '.woocommerce-error, .woocommerce-message' ).remove();\n\n\t\t\t// add errors\n\t\t\tthis.uiElement.prepend( '
  • ' + errors.join( '
  • ' ) + '
' );\n\n\t\t\t// unblock UI\n\t\t\tthis.uiElement.removeClass( 'processing' ).unblock();\n\n\t\t\t// scroll to top\n\t\t\t$( 'html, body' ).animate( { scrollTop: this.uiElement.offset().top - 100 }, 1000 );\n\t\t}\n\n\t\t/**\n\t\t * Blocks the payment form UI.\n\t\t */\n\t\tblockUI() {\n\t\t\tthis.uiElement.block( { message: null, overlayCSS: { background: '#fff', opacity: 0.6 } } );\n\t\t}\n\n\t\t/**\n\t\t * Unblocks the payment form UI.\n\t\t */\n\t\tunblockUI() {\n\t\t\tthis.uiElement.unblock();\n\t\t}\n\t}\n\n\t$( document.body ).trigger( 'sv_wc_google_pay_handler_v6_0_1_loaded' );\n\n} );\n"],"names":["jQuery","$","window","SV_WC_Google_Pay_Handler_v6_0_1","constructor","params","plugin_id","merchant_id","merchant_name","gateway_id","gateway_id_dasherized","gateway_merchant_id","environment","ajax_url","recalculate_totals_nonce","process_nonce","button_style","card_types","available_countries","currency_code","needs_shipping","generic_error","gatewayID","gatewayMerchantID","merchantID","merchantName","ajaxURL","recalculateTotalsNonce","processNonce","buttonStyle","availableCountries","currencyCode","needsShipping","genericError","product_id","productID","baseRequest","apiVersion","apiVersionMinor","tokenizationSpecification","type","parameters","baseCardPaymentMethod","allowedAuthMethods","allowedCardNetworks","billingAddressRequired","billingAddressParameters","format","phoneNumberRequired","cardPaymentMethod","Object","assign","paymentsClient","getGoogleIsReadyToPayRequest","allowedPaymentMethods","getGooglePaymentDataRequest","resolve","getGoogleTransactionInfo","transactionInfo","paymentDataRequest","merchantInfo","merchantId","emailRequired","callbackIntents","shippingAddressRequired","shippingAddressParameters","getGoogleShippingAddressParameters","shippingOptionRequired","getGooglePaymentsClient","args","paymentDataCallbacks","onPaymentAuthorized","paymentData","onPaymentDataChanged","google","payments","api","PaymentsClient","blockUI","Promise","reject","processPayment","err","transactionState","error","intent","message","reason","unblockUI","intermediatePaymentData","shippingAddress","shippingOptionData","chosenShippingMethod","callbackTrigger","id","getUpdatedTotals","paymentDataRequestUpdate","newShippingOptionParameters","shippingOptions","length","getGoogleUnserviceableAddressError","failPayment","data","action","post","response","success","JSON","parse","shippingMethod","allowedCountryCodes","addGooglePayButton","button","createButton","onClick","event","onGooglePaymentButtonClicked","buttonColor","buttonSizeMode","document","getElementById","appendChild","prefetchGooglePaymentData","totalPriceStatus","prefetchPaymentData","nonce","stringify","location","redirect","preventDefault","loadPaymentData","init","initProductPage","initCartPage","initCheckoutPage","initGooglePay","isReadyToPay","then","result","catch","uiElement","parents","body","on","console","renderErrors","errors","remove","prepend","join","removeClass","unblock","animate","scrollTop","offset","top","block","overlayCSS","background","opacity","trigger"],"version":3,"file":"sv-wc-payment-gateway-google-pay.js.map"} \ No newline at end of file diff --git a/woocommerce/payment-gateway/assets/dist/frontend/sv-wc-payment-gateway-my-payment-methods.js b/woocommerce/payment-gateway/assets/dist/frontend/sv-wc-payment-gateway-my-payment-methods.js index 3a1e4f6fb..94ad263f3 100644 --- a/woocommerce/payment-gateway/assets/dist/frontend/sv-wc-payment-gateway-my-payment-methods.js +++ b/woocommerce/payment-gateway/assets/dist/frontend/sv-wc-payment-gateway-my-payment-methods.js @@ -1,2 +1,2 @@ -(function(){jQuery(function(e){return window.SV_WC_Payment_Methods_Handler_v6_0_0=class{constructor(t){this.replace_method_column=this.replace_method_column.bind(this),this.remove_duplicate_default_marks=this.remove_duplicate_default_marks.bind(this),this.edit_method=this.edit_method.bind(this),this.save_method=this.save_method.bind(this),this.cancel_edit=this.cancel_edit.bind(this),this.id=t.id,this.slug=t.slug,this.i18n=t.i18n,this.ajax_url=t.ajax_url,this.ajax_nonce=t.ajax_nonce,this.replace_method_column(),this.remove_duplicate_default_marks(),e(".woocommerce-MyAccount-paymentMethods").on("click",".woocommerce-PaymentMethod--actions .button.edit",e=>this.edit_method(e)),e(".woocommerce-MyAccount-paymentMethods").on("click",".woocommerce-PaymentMethod--actions .button.save",e=>this.save_method(e)),e(".woocommerce-MyAccount-paymentMethods").on("click",".woocommerce-PaymentMethod--actions .cancel-edit",e=>this.cancel_edit(e)),e(".woocommerce-MyAccount-paymentMethods").on("click",".woocommerce-PaymentMethod--actions .button.delete",t=>{var n;if(0!==(n=e(t.currentTarget)).parents("tr").find(`input[name=plugin-id][value=${this.slug}]`).length&&!confirm(this.i18n.delete_ays))return n.prop("disabled",!1).removeClass("disabled"),t.preventDefault()}),e('.button[href*="add-payment-method"]').on("click",event(function(){if(e(this).hasClass("disabled"))return event.preventDefault()}))}replace_method_column(){return e(".woocommerce-MyAccount-paymentMethods").find("tr").each((t,n)=>{var i;if(0!==e(n).find(`input[name=plugin-id][value=${this.slug}]`).length)return e(n).find("th.woocommerce-PaymentMethod--title").remove(),(i=e(n).find("td.woocommerce-PaymentMethod--title")).children().length>0&&e(n).find("td.woocommerce-PaymentMethod--method").html(i.html()),e(n).find("td.woocommerce-PaymentMethod--title").remove()})}remove_duplicate_default_marks(){return e(".woocommerce-MyAccount-paymentMethods").find("tr").each((t,n)=>e(n).find("td.woocommerce-PaymentMethod--default").find("mark.default:not(:first-child)").remove())}edit_method(t){var n,i;if(t.preventDefault(),0!==(i=(n=e(t.currentTarget)).parents("tr")).find(`input[name=plugin-id][value=${this.slug}]`).length)return i.find("div.view").hide(),i.find("div.edit").show(),i.addClass("editing"),n.text(this.i18n.cancel_button).removeClass("edit").addClass("cancel-edit").removeClass("button"),this.enable_editing_ui()}save_method(t){var n,i,o;if(t.preventDefault(),0!==(o=(n=e(t.currentTarget)).parents("tr")).find(`input[name=plugin-id][value=${this.slug}]`).length)return this.block_ui(),o.next(".error").remove(),i={action:`wc_${this.id}_save_payment_method`,nonce:this.ajax_nonce,token_id:o.find("input[name=token-id]").val(),data:o.find("input[name]").serialize()},e.post(this.ajax_url,i).done(e=>e.success?(null!=e.data.title&&o.find(".woocommerce-PaymentMethod--method").html(e.data.title),null!=e.data.nonce&&(this.ajax_nonce=e.data.nonce),n.siblings(".cancel-edit").removeClass("cancel-edit").addClass("edit").text(this.i18n.edit_button).addClass("button"),o.removeClass("editing"),this.disable_editing_ui()):this.display_error(o,e.data)).fail((e,t,n)=>this.display_error(o,n)).always(()=>this.unblock_ui())}cancel_edit(t){var n,i;if(t.preventDefault(),0!==(i=(n=e(t.currentTarget)).parents("tr")).find(`input[name=plugin-id][value=${this.slug}]`).length)return i.find("div.view").show(),i.find("div.edit").hide(),i.removeClass("editing"),n.removeClass("cancel-edit").addClass("edit").text(this.i18n.edit_button).addClass("button"),this.disable_editing_ui()}enable_editing_ui(){return e(".woocommerce-MyAccount-paymentMethods").addClass("editing"),e('.button[href*="add-payment-method"]').addClass("disabled")}disable_editing_ui(){return e(".woocommerce-MyAccount-paymentMethods").removeClass("editing"),e('.button[href*="add-payment-method"]').removeClass("disabled")}block_ui(){return e(".woocommerce-MyAccount-paymentMethods").parent("div").block({message:null,overlayCSS:{background:"#fff",opacity:.6}})}unblock_ui(){return e(".woocommerce-MyAccount-paymentMethods").parent("div").unblock()}display_error(t,n,i=""){var o;return console.error(n),i||(i=this.i18n.save_error),o=e(".woocommerce-MyAccount-paymentMethods thead tr th").length,e(''+i+"").insertAfter(t).find("td").delay(8e3).slideUp(200)}},e(document.body).trigger("sv_wc_payment_methods_handler_v6_0_0_loaded")})}).call({}); +(function(){jQuery(function(e){return window.SV_WC_Payment_Methods_Handler_v6_0_1=class{constructor(t){this.replace_method_column=this.replace_method_column.bind(this),this.remove_duplicate_default_marks=this.remove_duplicate_default_marks.bind(this),this.edit_method=this.edit_method.bind(this),this.save_method=this.save_method.bind(this),this.cancel_edit=this.cancel_edit.bind(this),this.id=t.id,this.slug=t.slug,this.i18n=t.i18n,this.ajax_url=t.ajax_url,this.ajax_nonce=t.ajax_nonce,this.replace_method_column(),this.remove_duplicate_default_marks(),e(".woocommerce-MyAccount-paymentMethods").on("click",".woocommerce-PaymentMethod--actions .button.edit",e=>this.edit_method(e)),e(".woocommerce-MyAccount-paymentMethods").on("click",".woocommerce-PaymentMethod--actions .button.save",e=>this.save_method(e)),e(".woocommerce-MyAccount-paymentMethods").on("click",".woocommerce-PaymentMethod--actions .cancel-edit",e=>this.cancel_edit(e)),e(".woocommerce-MyAccount-paymentMethods").on("click",".woocommerce-PaymentMethod--actions .button.delete",t=>{var n;if(0!==(n=e(t.currentTarget)).parents("tr").find(`input[name=plugin-id][value=${this.slug}]`).length&&!confirm(this.i18n.delete_ays))return n.prop("disabled",!1).removeClass("disabled"),t.preventDefault()}),e('.button[href*="add-payment-method"]').on("click",event(function(){if(e(this).hasClass("disabled"))return event.preventDefault()}))}replace_method_column(){return e(".woocommerce-MyAccount-paymentMethods").find("tr").each((t,n)=>{var i;if(0!==e(n).find(`input[name=plugin-id][value=${this.slug}]`).length)return e(n).find("th.woocommerce-PaymentMethod--title").remove(),(i=e(n).find("td.woocommerce-PaymentMethod--title")).children().length>0&&e(n).find("td.woocommerce-PaymentMethod--method").html(i.html()),e(n).find("td.woocommerce-PaymentMethod--title").remove()})}remove_duplicate_default_marks(){return e(".woocommerce-MyAccount-paymentMethods").find("tr").each((t,n)=>e(n).find("td.woocommerce-PaymentMethod--default").find("mark.default:not(:first-child)").remove())}edit_method(t){var n,i;if(t.preventDefault(),0!==(i=(n=e(t.currentTarget)).parents("tr")).find(`input[name=plugin-id][value=${this.slug}]`).length)return i.find("div.view").hide(),i.find("div.edit").show(),i.addClass("editing"),n.text(this.i18n.cancel_button).removeClass("edit").addClass("cancel-edit").removeClass("button"),this.enable_editing_ui()}save_method(t){var n,i,o;if(t.preventDefault(),0!==(o=(n=e(t.currentTarget)).parents("tr")).find(`input[name=plugin-id][value=${this.slug}]`).length)return this.block_ui(),o.next(".error").remove(),i={action:`wc_${this.id}_save_payment_method`,nonce:this.ajax_nonce,token_id:o.find("input[name=token-id]").val(),data:o.find("input[name]").serialize()},e.post(this.ajax_url,i).done(e=>e.success?(null!=e.data.title&&o.find(".woocommerce-PaymentMethod--method").html(e.data.title),null!=e.data.nonce&&(this.ajax_nonce=e.data.nonce),n.siblings(".cancel-edit").removeClass("cancel-edit").addClass("edit").text(this.i18n.edit_button).addClass("button"),o.removeClass("editing"),this.disable_editing_ui()):this.display_error(o,e.data)).fail((e,t,n)=>this.display_error(o,n)).always(()=>this.unblock_ui())}cancel_edit(t){var n,i;if(t.preventDefault(),0!==(i=(n=e(t.currentTarget)).parents("tr")).find(`input[name=plugin-id][value=${this.slug}]`).length)return i.find("div.view").show(),i.find("div.edit").hide(),i.removeClass("editing"),n.removeClass("cancel-edit").addClass("edit").text(this.i18n.edit_button).addClass("button"),this.disable_editing_ui()}enable_editing_ui(){return e(".woocommerce-MyAccount-paymentMethods").addClass("editing"),e('.button[href*="add-payment-method"]').addClass("disabled")}disable_editing_ui(){return e(".woocommerce-MyAccount-paymentMethods").removeClass("editing"),e('.button[href*="add-payment-method"]').removeClass("disabled")}block_ui(){return e(".woocommerce-MyAccount-paymentMethods").parent("div").block({message:null,overlayCSS:{background:"#fff",opacity:.6}})}unblock_ui(){return e(".woocommerce-MyAccount-paymentMethods").parent("div").unblock()}display_error(t,n,i=""){var o;return console.error(n),i||(i=this.i18n.save_error),o=e(".woocommerce-MyAccount-paymentMethods thead tr th").length,e(''+i+"").insertAfter(t).find("td").delay(8e3).slideUp(200)}},e(document.body).trigger("sv_wc_payment_methods_handler_v6_0_1_loaded")})}).call({}); //# sourceMappingURL=sv-wc-payment-gateway-my-payment-methods.js.map diff --git a/woocommerce/payment-gateway/assets/dist/frontend/sv-wc-payment-gateway-my-payment-methods.js.map b/woocommerce/payment-gateway/assets/dist/frontend/sv-wc-payment-gateway-my-payment-methods.js.map index fcf330175..3b9b759b5 100644 --- a/woocommerce/payment-gateway/assets/dist/frontend/sv-wc-payment-gateway-my-payment-methods.js.map +++ b/woocommerce/payment-gateway/assets/dist/frontend/sv-wc-payment-gateway-my-payment-methods.js.map @@ -1 +1 @@ -{"mappings":"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","sources":["","woocommerce/payment-gateway/assets/js/frontend/sv-wc-payment-gateway-my-payment-methods.coffee"],"sourcesContent":["(() => {\nvar $f921149b16c1f5f9$exports = {};\n(function() {\n /*\n WooCommerce SkyVerge Payment Gateway My Payment Methods CoffeeScript\n Version 5.1.0\n\n Copyright (c) 2014-2024, SkyVerge, Inc.\n Licensed under the GNU General Public License v3.0\n http://www.gnu.org/licenses/gpl-3.0.html\n */ jQuery(function($) {\n \"use strict\";\n // The My Payment Methods handler.\n // @since 5.1.0\n window.SV_WC_Payment_Methods_Handler_v6_0_0 = class SV_WC_Payment_Methods_Handler_v6_0_0 {\n // Constructs the class.\n // @since 5.1.0\n // @param [Object] args, with the properties:\n // id: [String] plugin ID\n // slug: [String] plugin slug or dasherized ID\n // i18n: [Object] localized text strings\n // ajax_url: [String] URL for AJAX requests\n // ajax_nonce: [String] nonce for AJAX requests\n constructor(args){\n // Replace Method column content with Title column content, for FW tokens.\n // @since 5.8.0\n this.replace_method_column = this.replace_method_column.bind(this);\n // Removes duplicate \"Default\" marks.\n // They are already hidden using CSS, but should also be removed for accessibility.\n // @since 5.8.0\n this.remove_duplicate_default_marks = this.remove_duplicate_default_marks.bind(this);\n // Edits a payment method.\n // @since 5.1.0\n // @param [Object] event jQuery event object\n this.edit_method = this.edit_method.bind(this);\n // Saves a payment method.\n // @since 5.1.0\n // @param [Object] event jQuery event object\n this.save_method = this.save_method.bind(this);\n // Cancels/stop editing a payment method.\n // @since 5.1.0\n // @param [Object] event jQuery event object\n this.cancel_edit = this.cancel_edit.bind(this);\n this.id = args.id;\n this.slug = args.slug;\n this.i18n = args.i18n;\n this.ajax_url = args.ajax_url;\n this.ajax_nonce = args.ajax_nonce;\n // replace the \"Method\" column content for FW tokens\n this.replace_method_column();\n // remove duplicate \"Default\" marks\n this.remove_duplicate_default_marks();\n // handle the edit action\n $(\".woocommerce-MyAccount-paymentMethods\").on('click', \".woocommerce-PaymentMethod--actions .button.edit\", (event1)=>{\n return this.edit_method(event1);\n });\n // handle the save action\n $(\".woocommerce-MyAccount-paymentMethods\").on('click', \".woocommerce-PaymentMethod--actions .button.save\", (event1)=>{\n return this.save_method(event1);\n });\n // handle the cancel action\n $(\".woocommerce-MyAccount-paymentMethods\").on('click', \".woocommerce-PaymentMethod--actions .cancel-edit\", (event1)=>{\n return this.cancel_edit(event1);\n });\n // handle the delete action\n $(\".woocommerce-MyAccount-paymentMethods\").on('click', \".woocommerce-PaymentMethod--actions .button.delete\", (event1)=>{\n var button, row;\n button = $(event1.currentTarget);\n row = button.parents('tr');\n // check if the method belongs to this plugin\n if (row.find(`input[name=plugin-id][value=${this.slug}]`).length === 0) return;\n if (!confirm(this.i18n.delete_ays)) {\n // re-enable the button if user cancels (side note: WooCommerce core is the one that added the disabled state in the first place)\n button.prop('disabled', false).removeClass('disabled');\n return event1.preventDefault();\n }\n });\n // don't follow the Add Payment Method button URL if it's disabled\n $('.button[href*=\"add-payment-method\"]').on('click', event(function() {\n if ($(this).hasClass('disabled')) return event.preventDefault();\n }));\n }\n replace_method_column() {\n return $('.woocommerce-MyAccount-paymentMethods').find('tr').each((index, element)=>{\n var titleColumn;\n // check if the method belongs to this plugin\n if ($(element).find(`input[name=plugin-id][value=${this.slug}]`).length === 0) return;\n // delete the Title header\n $(element).find('th.woocommerce-PaymentMethod--title').remove();\n titleColumn = $(element).find('td.woocommerce-PaymentMethod--title');\n // Title column is not empty, this is a FW token\n if (titleColumn.children().length > 0) // replace Method column\n $(element).find('td.woocommerce-PaymentMethod--method').html(titleColumn.html());\n // delete Title column\n return $(element).find('td.woocommerce-PaymentMethod--title').remove();\n });\n }\n remove_duplicate_default_marks() {\n return $('.woocommerce-MyAccount-paymentMethods').find('tr').each((index, element)=>{\n return $(element).find('td.woocommerce-PaymentMethod--default').find('mark.default:not(:first-child)').remove();\n });\n }\n edit_method(event1) {\n var button, row;\n event1.preventDefault();\n button = $(event1.currentTarget);\n row = button.parents('tr');\n // check if the method belongs to this plugin\n if (row.find(`input[name=plugin-id][value=${this.slug}]`).length === 0) return;\n row.find('div.view').hide();\n row.find('div.edit').show();\n row.addClass('editing');\n // change the Edit button to \"Cancel\"\n button.text(this.i18n.cancel_button).removeClass('edit').addClass('cancel-edit').removeClass('button');\n return this.enable_editing_ui();\n }\n save_method(event1) {\n var button, data, row;\n event1.preventDefault();\n button = $(event1.currentTarget);\n row = button.parents('tr');\n // check if the method belongs to this plugin\n if (row.find(`input[name=plugin-id][value=${this.slug}]`).length === 0) return;\n this.block_ui();\n // remove any previous errors\n row.next('.error').remove();\n data = {\n action: `wc_${this.id}_save_payment_method`,\n nonce: this.ajax_nonce,\n token_id: row.find('input[name=token-id]').val(),\n data: row.find('input[name]').serialize()\n };\n return $.post(this.ajax_url, data).done((response)=>{\n if (!response.success) return this.display_error(row, response.data);\n if (response.data.title != null) row.find('.woocommerce-PaymentMethod--method').html(response.data.title);\n if (response.data.nonce != null) this.ajax_nonce = response.data.nonce;\n // change the \"Cancel\" button back to \"Edit\"\n button.siblings('.cancel-edit').removeClass('cancel-edit').addClass('edit').text(this.i18n.edit_button).addClass('button');\n row.removeClass('editing');\n return this.disable_editing_ui();\n }).fail((jqXHR, textStatus, error)=>{\n return this.display_error(row, error);\n }).always(()=>{\n return this.unblock_ui();\n });\n }\n cancel_edit(event1) {\n var button, row;\n event1.preventDefault();\n button = $(event1.currentTarget);\n row = button.parents('tr');\n // check if the method belongs to this plugin\n if (row.find(`input[name=plugin-id][value=${this.slug}]`).length === 0) return;\n row.find('div.view').show();\n row.find('div.edit').hide();\n row.removeClass('editing');\n // change the \"Cancel\" button back to \"Edit\"\n button.removeClass('cancel-edit').addClass('edit').text(this.i18n.edit_button).addClass('button');\n return this.disable_editing_ui();\n }\n // Sets the page UI to the \"editing\" state.\n // This brings proper focus to the method being edited and prevents\n // other available buttons/actions until the editing is finished or cancelled.\n // @since 5.1.1\n enable_editing_ui() {\n // set the methods table as 'editing'\n $(\".woocommerce-MyAccount-paymentMethods\").addClass('editing');\n // disable the Add Payment Method button\n return $('.button[href*=\"add-payment-method\"]').addClass('disabled');\n }\n // Sets the page UI back to the default state.\n // @since 5.1.1\n disable_editing_ui() {\n // removes the methods table's \"editing\" status\n $(\".woocommerce-MyAccount-paymentMethods\").removeClass('editing');\n // re-enable the Add Payment Method button\n return $('.button[href*=\"add-payment-method\"]').removeClass('disabled');\n }\n // Blocks the payment methods table UI.\n // @since 5.1.0\n block_ui() {\n return $(\".woocommerce-MyAccount-paymentMethods\").parent('div').block({\n message: null,\n overlayCSS: {\n background: '#fff',\n opacity: 0.6\n }\n });\n }\n // Unblocks the payment methods table UI.\n // @since 5.1.0\n unblock_ui() {\n return $(\".woocommerce-MyAccount-paymentMethods\").parent('div').unblock();\n }\n // Displays an error message to the user.\n // @since 5.1.0\n // @param [Object] row payment method table row\n // @param [String] error raw error message\n // @param [String] message user error message\n display_error(row, error, message = '') {\n var columns;\n console.error(error);\n if (!message) message = this.i18n.save_error;\n columns = $(\".woocommerce-MyAccount-paymentMethods thead tr th\").length;\n return $('' + message + '').insertAfter(row).find('td').delay(8000).slideUp(200);\n }\n };\n // dispatch loaded event\n return $(document.body).trigger('sv_wc_payment_methods_handler_v6_0_0_loaded');\n });\n}).call($f921149b16c1f5f9$exports);\n\n})();\n//# sourceMappingURL=sv-wc-payment-gateway-my-payment-methods.js.map\n","###\n WooCommerce SkyVerge Payment Gateway My Payment Methods CoffeeScript\n Version 5.1.0\n\n Copyright (c) 2014-2024, SkyVerge, Inc.\n Licensed under the GNU General Public License v3.0\n http://www.gnu.org/licenses/gpl-3.0.html\n###\njQuery ( $ ) ->\n\t\"use strict\"\n\n\t# The My Payment Methods handler.\n\t#\n\t# @since 5.1.0\n\tclass window.SV_WC_Payment_Methods_Handler_v6_0_0\n\n\n\t\t# Constructs the class.\n\t\t#\n\t\t# @since 5.1.0\n\t\t#\n\t\t# @param [Object] args, with the properties:\n\t\t# id: [String] plugin ID\n\t\t# slug: [String] plugin slug or dasherized ID\n\t\t# i18n: [Object] localized text strings\n\t\t# ajax_url: [String] URL for AJAX requests\n\t\t# ajax_nonce: [String] nonce for AJAX requests\n\t\tconstructor: ( args ) ->\n\n\t\t\t@id = args.id\n\t\t\t@slug = args.slug\n\t\t\t@i18n = args.i18n\n\t\t\t@ajax_url = args.ajax_url\n\t\t\t@ajax_nonce = args.ajax_nonce\n\n\t\t\t# replace the \"Method\" column content for FW tokens\n\t\t\tthis.replace_method_column()\n\n\t\t\t# remove duplicate \"Default\" marks\n\t\t\tthis.remove_duplicate_default_marks()\n\n\t\t\t# handle the edit action\n\t\t\t$( \".woocommerce-MyAccount-paymentMethods\" ).on( 'click', \".woocommerce-PaymentMethod--actions .button.edit\", ( event ) => this.edit_method( event ) )\n\n\t\t\t# handle the save action\n\t\t\t$( \".woocommerce-MyAccount-paymentMethods\" ).on( 'click', \".woocommerce-PaymentMethod--actions .button.save\", ( event ) => this.save_method( event ) )\n\n\t\t\t# handle the cancel action\n\t\t\t$( \".woocommerce-MyAccount-paymentMethods\" ).on( 'click', \".woocommerce-PaymentMethod--actions .cancel-edit\", ( event ) => this.cancel_edit( event ) )\n\n\t\t\t# handle the delete action\n\t\t\t$( \".woocommerce-MyAccount-paymentMethods\" ).on( 'click', \".woocommerce-PaymentMethod--actions .button.delete\", ( event ) =>\n\n\t\t\t\tbutton = $( event.currentTarget )\n\t\t\t\trow = button.parents( 'tr' )\n\n\t\t\t\t# check if the method belongs to this plugin\n\t\t\t\tif row.find( \"input[name=plugin-id][value=#{@slug}]\" ).length is 0\n\t\t\t\t\treturn\n\n\t\t\t\tif not confirm( @i18n.delete_ays )\n\t\t\t\t\t# re-enable the button if user cancels (side note: WooCommerce core is the one that added the disabled state in the first place)\n\t\t\t\t\tbutton.prop( 'disabled', false ).removeClass( 'disabled' )\n\t\t\t\t\tevent.preventDefault()\n\n\t\t\t)\n\n\t\t\t# don't follow the Add Payment Method button URL if it's disabled\n\t\t\t$( '.button[href*=\"add-payment-method\"]' ).on 'click', event ->\n\t\t\t\tevent.preventDefault() if $( this ).hasClass( 'disabled' )\n\n\n\t\t# Replace Method column content with Title column content, for FW tokens.\n\t\t#\n\t\t# @since 5.8.0\n\t\treplace_method_column: =>\n\n\t\t\t$( '.woocommerce-MyAccount-paymentMethods' ).find( 'tr' ).each ( index, element ) =>\n\n\t\t\t\t# check if the method belongs to this plugin\n\t\t\t\tif $( element ).find( \"input[name=plugin-id][value=#{@slug}]\" ).length is 0\n\t\t\t\t\treturn\n\n\t\t\t\t# delete the Title header\n\t\t\t\t$( element ).find( 'th.woocommerce-PaymentMethod--title' ).remove()\n\n\t\t\t\ttitleColumn = $( element ).find( 'td.woocommerce-PaymentMethod--title' )\n\n\t\t\t\t# Title column is not empty, this is a FW token\n\t\t\t\tif ( titleColumn.children().length > 0 )\n\n\t\t\t\t\t# replace Method column\n\t\t\t\t\t$( element ).find( 'td.woocommerce-PaymentMethod--method' ).html( titleColumn.html() )\n\n\t\t\t\t# delete Title column\n\t\t\t\t$( element ).find( 'td.woocommerce-PaymentMethod--title' ).remove()\n\n\n\t\t# Removes duplicate \"Default\" marks.\n\t\t#\n\t\t# They are already hidden using CSS, but should also be removed for accessibility.\n\t\t#\n\t\t# @since 5.8.0\n\t\tremove_duplicate_default_marks: =>\n\n\t\t\t$( '.woocommerce-MyAccount-paymentMethods' ).find( 'tr' ).each ( index, element ) =>\n\n\t\t\t\t$( element ).find( 'td.woocommerce-PaymentMethod--default' ).find( 'mark.default:not(:first-child)' ).remove()\n\n\n\t\t# Edits a payment method.\n\t\t#\n\t\t# @since 5.1.0\n\t\t#\n\t\t# @param [Object] event jQuery event object\n\t\tedit_method: ( event ) =>\n\n\t\t\tevent.preventDefault()\n\n\t\t\tbutton = $( event.currentTarget )\n\t\t\trow = button.parents( 'tr' )\n\n\t\t\t# check if the method belongs to this plugin\n\t\t\tif row.find( \"input[name=plugin-id][value=#{@slug}]\" ).length is 0\n\t\t\t\treturn\n\n\t\t\trow.find( 'div.view' ).hide()\n\t\t\trow.find( 'div.edit' ).show()\n\t\t\trow.addClass( 'editing' )\n\n\t\t\t# change the Edit button to \"Cancel\"\n\t\t\tbutton.text( @i18n.cancel_button ).removeClass( 'edit' ).addClass( 'cancel-edit' ).removeClass( 'button' )\n\n\t\t\tthis.enable_editing_ui()\n\n\n\t\t# Saves a payment method.\n\t\t#\n\t\t# @since 5.1.0\n\t\t#\n\t\t# @param [Object] event jQuery event object\n\t\tsave_method: ( event ) =>\n\n\t\t\tevent.preventDefault()\n\n\t\t\tbutton = $( event.currentTarget )\n\t\t\trow = button.parents( 'tr' )\n\n\t\t\t# check if the method belongs to this plugin\n\t\t\tif row.find( \"input[name=plugin-id][value=#{@slug}]\" ).length is 0\n\t\t\t\treturn\n\n\t\t\tthis.block_ui()\n\n\t\t\t# remove any previous errors\n\t\t\trow.next( '.error' ).remove()\n\n\t\t\tdata =\n\t\t\t\taction: \"wc_#{@id}_save_payment_method\"\n\t\t\t\tnonce: @ajax_nonce\n\t\t\t\ttoken_id: row.find( 'input[name=token-id]' ).val()\n\t\t\t\tdata: row.find( 'input[name]' ).serialize()\n\n\t\t\t$.post( @ajax_url, data )\n\n\t\t\t\t.done ( response ) =>\n\n\t\t\t\t\treturn this.display_error( row, response.data ) unless response.success\n\n\t\t\t\t\tif response.data.title?\n\t\t\t\t\t\trow.find('.woocommerce-PaymentMethod--method').html( response.data.title )\n\n\t\t\t\t\tif response.data.nonce?\n\t\t\t\t\t\t@ajax_nonce = response.data.nonce\n\n\t\t\t\t\t# change the \"Cancel\" button back to \"Edit\"\n\t\t\t\t\tbutton.siblings( '.cancel-edit' ).removeClass( 'cancel-edit' ).addClass( 'edit' ).text( @i18n.edit_button ).addClass( 'button' )\n\n\t\t\t\t\trow.removeClass( 'editing' )\n\n\t\t\t\t\tthis.disable_editing_ui()\n\n\t\t\t\t.fail ( jqXHR, textStatus, error ) =>\n\n\t\t\t\t\tthis.display_error( row, error )\n\n\t\t\t\t.always =>\n\n\t\t\t\t\tthis.unblock_ui()\n\n\n\t\t# Cancels/stop editing a payment method.\n\t\t#\n\t\t# @since 5.1.0\n\t\t#\n\t\t# @param [Object] event jQuery event object\n\t\tcancel_edit: ( event ) =>\n\n\t\t\tevent.preventDefault()\n\n\t\t\tbutton = $( event.currentTarget )\n\t\t\trow = button.parents( 'tr' )\n\n\t\t\t# check if the method belongs to this plugin\n\t\t\tif row.find( \"input[name=plugin-id][value=#{@slug}]\" ).length is 0\n\t\t\t\treturn\n\n\t\t\trow.find( 'div.view' ).show()\n\t\t\trow.find( 'div.edit' ).hide()\n\t\t\trow.removeClass( 'editing' )\n\n\t\t\t# change the \"Cancel\" button back to \"Edit\"\n\t\t\tbutton.removeClass( 'cancel-edit' ).addClass( 'edit' ).text( @i18n.edit_button ).addClass( 'button' )\n\n\t\t\tthis.disable_editing_ui()\n\n\n\t\t# Sets the page UI to the \"editing\" state.\n\t\t#\n\t\t# This brings proper focus to the method being edited and prevents\n\t\t# other available buttons/actions until the editing is finished or cancelled.\n\t\t#\n\t\t# @since 5.1.1\n\t\tenable_editing_ui: ->\n\n\t\t\t# set the methods table as 'editing'\n\t\t\t$( \".woocommerce-MyAccount-paymentMethods\" ).addClass( 'editing' )\n\n\t\t\t# disable the Add Payment Method button\n\t\t\t$( '.button[href*=\"add-payment-method\"]' ).addClass( 'disabled' )\n\n\n\t\t# Sets the page UI back to the default state.\n\t\t#\n\t\t# @since 5.1.1\n\t\tdisable_editing_ui: ->\n\n\t\t\t# removes the methods table's \"editing\" status\n\t\t\t$( \".woocommerce-MyAccount-paymentMethods\" ).removeClass( 'editing' )\n\n\t\t\t# re-enable the Add Payment Method button\n\t\t\t$( '.button[href*=\"add-payment-method\"]' ).removeClass( 'disabled' )\n\n\n\t\t# Blocks the payment methods table UI.\n\t\t#\n\t\t# @since 5.1.0\n\t\tblock_ui: -> $( \".woocommerce-MyAccount-paymentMethods\" ).parent( 'div' ).block( message: null, overlayCSS: background: '#fff', opacity: 0.6 )\n\n\n\t\t# Unblocks the payment methods table UI.\n\t\t#\n\t\t# @since 5.1.0\n\t\tunblock_ui: -> $( \".woocommerce-MyAccount-paymentMethods\" ).parent( 'div' ).unblock()\n\n\n\t\t# Displays an error message to the user.\n\t\t#\n\t\t# @since 5.1.0\n\t\t#\n\t\t# @param [Object] row payment method table row\n\t\t# @param [String] error raw error message\n\t\t# @param [String] message user error message\n\t\tdisplay_error: ( row, error, message = '' ) ->\n\n\t\t\tconsole.error( error )\n\n\t\t\tmessage = @i18n.save_error unless message\n\t\t\tcolumns = $( \".woocommerce-MyAccount-paymentMethods thead tr th\" ).length\n\n\t\t\t$( '' + message + '' ).insertAfter( row ).find( 'td' ).delay( 8000 ).slideUp( 200 )\n\n\n\t# dispatch loaded event\n\t$( document.body ).trigger( 'sv_wc_payment_methods_handler_v6_0_0_loaded' )\n"],"names":["jQuery","$","window","SV_WC_Payment_Methods_Handler_v6_0_0","constructor","args","replace_method_column","bind","remove_duplicate_default_marks","edit_method","save_method","cancel_edit","id","slug","i18n","ajax_url","ajax_nonce","on","event1","button","row","currentTarget","parents","find","length","confirm","delete_ays","prop","removeClass","preventDefault","event","hasClass","each","index","element","titleColumn","remove","children","html","hide","show","addClass","text","cancel_button","enable_editing_ui","data","block_ui","next","action","nonce","token_id","val","serialize","post","done","response","success","title","siblings","edit_button","disable_editing_ui","display_error","fail","jqXHR","textStatus","error","always","unblock_ui","parent","block","message","overlayCSS","background","opacity","unblock","columns","console","save_error","insertAfter","delay","slideUp","document","body","trigger","call"],"version":3,"file":"sv-wc-payment-gateway-my-payment-methods.js.map"} \ No newline at end of file +{"mappings":"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","sources":["","woocommerce/payment-gateway/assets/js/frontend/sv-wc-payment-gateway-my-payment-methods.coffee"],"sourcesContent":["(() => {\nvar $f921149b16c1f5f9$exports = {};\n(function() {\n /*\n WooCommerce SkyVerge Payment Gateway My Payment Methods CoffeeScript\n Version 5.1.0\n\n Copyright (c) 2014-2024, SkyVerge, Inc.\n Licensed under the GNU General Public License v3.0\n http://www.gnu.org/licenses/gpl-3.0.html\n */ jQuery(function($) {\n \"use strict\";\n // The My Payment Methods handler.\n // @since 5.1.0\n window.SV_WC_Payment_Methods_Handler_v6_0_1 = class SV_WC_Payment_Methods_Handler_v6_0_1 {\n // Constructs the class.\n // @since 5.1.0\n // @param [Object] args, with the properties:\n // id: [String] plugin ID\n // slug: [String] plugin slug or dasherized ID\n // i18n: [Object] localized text strings\n // ajax_url: [String] URL for AJAX requests\n // ajax_nonce: [String] nonce for AJAX requests\n constructor(args){\n // Replace Method column content with Title column content, for FW tokens.\n // @since 5.8.0\n this.replace_method_column = this.replace_method_column.bind(this);\n // Removes duplicate \"Default\" marks.\n // They are already hidden using CSS, but should also be removed for accessibility.\n // @since 5.8.0\n this.remove_duplicate_default_marks = this.remove_duplicate_default_marks.bind(this);\n // Edits a payment method.\n // @since 5.1.0\n // @param [Object] event jQuery event object\n this.edit_method = this.edit_method.bind(this);\n // Saves a payment method.\n // @since 5.1.0\n // @param [Object] event jQuery event object\n this.save_method = this.save_method.bind(this);\n // Cancels/stop editing a payment method.\n // @since 5.1.0\n // @param [Object] event jQuery event object\n this.cancel_edit = this.cancel_edit.bind(this);\n this.id = args.id;\n this.slug = args.slug;\n this.i18n = args.i18n;\n this.ajax_url = args.ajax_url;\n this.ajax_nonce = args.ajax_nonce;\n // replace the \"Method\" column content for FW tokens\n this.replace_method_column();\n // remove duplicate \"Default\" marks\n this.remove_duplicate_default_marks();\n // handle the edit action\n $(\".woocommerce-MyAccount-paymentMethods\").on('click', \".woocommerce-PaymentMethod--actions .button.edit\", (event1)=>{\n return this.edit_method(event1);\n });\n // handle the save action\n $(\".woocommerce-MyAccount-paymentMethods\").on('click', \".woocommerce-PaymentMethod--actions .button.save\", (event1)=>{\n return this.save_method(event1);\n });\n // handle the cancel action\n $(\".woocommerce-MyAccount-paymentMethods\").on('click', \".woocommerce-PaymentMethod--actions .cancel-edit\", (event1)=>{\n return this.cancel_edit(event1);\n });\n // handle the delete action\n $(\".woocommerce-MyAccount-paymentMethods\").on('click', \".woocommerce-PaymentMethod--actions .button.delete\", (event1)=>{\n var button, row;\n button = $(event1.currentTarget);\n row = button.parents('tr');\n // check if the method belongs to this plugin\n if (row.find(`input[name=plugin-id][value=${this.slug}]`).length === 0) return;\n if (!confirm(this.i18n.delete_ays)) {\n // re-enable the button if user cancels (side note: WooCommerce core is the one that added the disabled state in the first place)\n button.prop('disabled', false).removeClass('disabled');\n return event1.preventDefault();\n }\n });\n // don't follow the Add Payment Method button URL if it's disabled\n $('.button[href*=\"add-payment-method\"]').on('click', event(function() {\n if ($(this).hasClass('disabled')) return event.preventDefault();\n }));\n }\n replace_method_column() {\n return $('.woocommerce-MyAccount-paymentMethods').find('tr').each((index, element)=>{\n var titleColumn;\n // check if the method belongs to this plugin\n if ($(element).find(`input[name=plugin-id][value=${this.slug}]`).length === 0) return;\n // delete the Title header\n $(element).find('th.woocommerce-PaymentMethod--title').remove();\n titleColumn = $(element).find('td.woocommerce-PaymentMethod--title');\n // Title column is not empty, this is a FW token\n if (titleColumn.children().length > 0) // replace Method column\n $(element).find('td.woocommerce-PaymentMethod--method').html(titleColumn.html());\n // delete Title column\n return $(element).find('td.woocommerce-PaymentMethod--title').remove();\n });\n }\n remove_duplicate_default_marks() {\n return $('.woocommerce-MyAccount-paymentMethods').find('tr').each((index, element)=>{\n return $(element).find('td.woocommerce-PaymentMethod--default').find('mark.default:not(:first-child)').remove();\n });\n }\n edit_method(event1) {\n var button, row;\n event1.preventDefault();\n button = $(event1.currentTarget);\n row = button.parents('tr');\n // check if the method belongs to this plugin\n if (row.find(`input[name=plugin-id][value=${this.slug}]`).length === 0) return;\n row.find('div.view').hide();\n row.find('div.edit').show();\n row.addClass('editing');\n // change the Edit button to \"Cancel\"\n button.text(this.i18n.cancel_button).removeClass('edit').addClass('cancel-edit').removeClass('button');\n return this.enable_editing_ui();\n }\n save_method(event1) {\n var button, data, row;\n event1.preventDefault();\n button = $(event1.currentTarget);\n row = button.parents('tr');\n // check if the method belongs to this plugin\n if (row.find(`input[name=plugin-id][value=${this.slug}]`).length === 0) return;\n this.block_ui();\n // remove any previous errors\n row.next('.error').remove();\n data = {\n action: `wc_${this.id}_save_payment_method`,\n nonce: this.ajax_nonce,\n token_id: row.find('input[name=token-id]').val(),\n data: row.find('input[name]').serialize()\n };\n return $.post(this.ajax_url, data).done((response)=>{\n if (!response.success) return this.display_error(row, response.data);\n if (response.data.title != null) row.find('.woocommerce-PaymentMethod--method').html(response.data.title);\n if (response.data.nonce != null) this.ajax_nonce = response.data.nonce;\n // change the \"Cancel\" button back to \"Edit\"\n button.siblings('.cancel-edit').removeClass('cancel-edit').addClass('edit').text(this.i18n.edit_button).addClass('button');\n row.removeClass('editing');\n return this.disable_editing_ui();\n }).fail((jqXHR, textStatus, error)=>{\n return this.display_error(row, error);\n }).always(()=>{\n return this.unblock_ui();\n });\n }\n cancel_edit(event1) {\n var button, row;\n event1.preventDefault();\n button = $(event1.currentTarget);\n row = button.parents('tr');\n // check if the method belongs to this plugin\n if (row.find(`input[name=plugin-id][value=${this.slug}]`).length === 0) return;\n row.find('div.view').show();\n row.find('div.edit').hide();\n row.removeClass('editing');\n // change the \"Cancel\" button back to \"Edit\"\n button.removeClass('cancel-edit').addClass('edit').text(this.i18n.edit_button).addClass('button');\n return this.disable_editing_ui();\n }\n // Sets the page UI to the \"editing\" state.\n // This brings proper focus to the method being edited and prevents\n // other available buttons/actions until the editing is finished or cancelled.\n // @since 5.1.1\n enable_editing_ui() {\n // set the methods table as 'editing'\n $(\".woocommerce-MyAccount-paymentMethods\").addClass('editing');\n // disable the Add Payment Method button\n return $('.button[href*=\"add-payment-method\"]').addClass('disabled');\n }\n // Sets the page UI back to the default state.\n // @since 5.1.1\n disable_editing_ui() {\n // removes the methods table's \"editing\" status\n $(\".woocommerce-MyAccount-paymentMethods\").removeClass('editing');\n // re-enable the Add Payment Method button\n return $('.button[href*=\"add-payment-method\"]').removeClass('disabled');\n }\n // Blocks the payment methods table UI.\n // @since 5.1.0\n block_ui() {\n return $(\".woocommerce-MyAccount-paymentMethods\").parent('div').block({\n message: null,\n overlayCSS: {\n background: '#fff',\n opacity: 0.6\n }\n });\n }\n // Unblocks the payment methods table UI.\n // @since 5.1.0\n unblock_ui() {\n return $(\".woocommerce-MyAccount-paymentMethods\").parent('div').unblock();\n }\n // Displays an error message to the user.\n // @since 5.1.0\n // @param [Object] row payment method table row\n // @param [String] error raw error message\n // @param [String] message user error message\n display_error(row, error, message = '') {\n var columns;\n console.error(error);\n if (!message) message = this.i18n.save_error;\n columns = $(\".woocommerce-MyAccount-paymentMethods thead tr th\").length;\n return $('' + message + '').insertAfter(row).find('td').delay(8000).slideUp(200);\n }\n };\n // dispatch loaded event\n return $(document.body).trigger('sv_wc_payment_methods_handler_v6_0_1_loaded');\n });\n}).call($f921149b16c1f5f9$exports);\n\n})();\n//# sourceMappingURL=sv-wc-payment-gateway-my-payment-methods.js.map\n","###\n WooCommerce SkyVerge Payment Gateway My Payment Methods CoffeeScript\n Version 5.1.0\n\n Copyright (c) 2014-2024, SkyVerge, Inc.\n Licensed under the GNU General Public License v3.0\n http://www.gnu.org/licenses/gpl-3.0.html\n###\njQuery ( $ ) ->\n\t\"use strict\"\n\n\t# The My Payment Methods handler.\n\t#\n\t# @since 5.1.0\n\tclass window.SV_WC_Payment_Methods_Handler_v6_0_1\n\n\n\t\t# Constructs the class.\n\t\t#\n\t\t# @since 5.1.0\n\t\t#\n\t\t# @param [Object] args, with the properties:\n\t\t# id: [String] plugin ID\n\t\t# slug: [String] plugin slug or dasherized ID\n\t\t# i18n: [Object] localized text strings\n\t\t# ajax_url: [String] URL for AJAX requests\n\t\t# ajax_nonce: [String] nonce for AJAX requests\n\t\tconstructor: ( args ) ->\n\n\t\t\t@id = args.id\n\t\t\t@slug = args.slug\n\t\t\t@i18n = args.i18n\n\t\t\t@ajax_url = args.ajax_url\n\t\t\t@ajax_nonce = args.ajax_nonce\n\n\t\t\t# replace the \"Method\" column content for FW tokens\n\t\t\tthis.replace_method_column()\n\n\t\t\t# remove duplicate \"Default\" marks\n\t\t\tthis.remove_duplicate_default_marks()\n\n\t\t\t# handle the edit action\n\t\t\t$( \".woocommerce-MyAccount-paymentMethods\" ).on( 'click', \".woocommerce-PaymentMethod--actions .button.edit\", ( event ) => this.edit_method( event ) )\n\n\t\t\t# handle the save action\n\t\t\t$( \".woocommerce-MyAccount-paymentMethods\" ).on( 'click', \".woocommerce-PaymentMethod--actions .button.save\", ( event ) => this.save_method( event ) )\n\n\t\t\t# handle the cancel action\n\t\t\t$( \".woocommerce-MyAccount-paymentMethods\" ).on( 'click', \".woocommerce-PaymentMethod--actions .cancel-edit\", ( event ) => this.cancel_edit( event ) )\n\n\t\t\t# handle the delete action\n\t\t\t$( \".woocommerce-MyAccount-paymentMethods\" ).on( 'click', \".woocommerce-PaymentMethod--actions .button.delete\", ( event ) =>\n\n\t\t\t\tbutton = $( event.currentTarget )\n\t\t\t\trow = button.parents( 'tr' )\n\n\t\t\t\t# check if the method belongs to this plugin\n\t\t\t\tif row.find( \"input[name=plugin-id][value=#{@slug}]\" ).length is 0\n\t\t\t\t\treturn\n\n\t\t\t\tif not confirm( @i18n.delete_ays )\n\t\t\t\t\t# re-enable the button if user cancels (side note: WooCommerce core is the one that added the disabled state in the first place)\n\t\t\t\t\tbutton.prop( 'disabled', false ).removeClass( 'disabled' )\n\t\t\t\t\tevent.preventDefault()\n\n\t\t\t)\n\n\t\t\t# don't follow the Add Payment Method button URL if it's disabled\n\t\t\t$( '.button[href*=\"add-payment-method\"]' ).on 'click', event ->\n\t\t\t\tevent.preventDefault() if $( this ).hasClass( 'disabled' )\n\n\n\t\t# Replace Method column content with Title column content, for FW tokens.\n\t\t#\n\t\t# @since 5.8.0\n\t\treplace_method_column: =>\n\n\t\t\t$( '.woocommerce-MyAccount-paymentMethods' ).find( 'tr' ).each ( index, element ) =>\n\n\t\t\t\t# check if the method belongs to this plugin\n\t\t\t\tif $( element ).find( \"input[name=plugin-id][value=#{@slug}]\" ).length is 0\n\t\t\t\t\treturn\n\n\t\t\t\t# delete the Title header\n\t\t\t\t$( element ).find( 'th.woocommerce-PaymentMethod--title' ).remove()\n\n\t\t\t\ttitleColumn = $( element ).find( 'td.woocommerce-PaymentMethod--title' )\n\n\t\t\t\t# Title column is not empty, this is a FW token\n\t\t\t\tif ( titleColumn.children().length > 0 )\n\n\t\t\t\t\t# replace Method column\n\t\t\t\t\t$( element ).find( 'td.woocommerce-PaymentMethod--method' ).html( titleColumn.html() )\n\n\t\t\t\t# delete Title column\n\t\t\t\t$( element ).find( 'td.woocommerce-PaymentMethod--title' ).remove()\n\n\n\t\t# Removes duplicate \"Default\" marks.\n\t\t#\n\t\t# They are already hidden using CSS, but should also be removed for accessibility.\n\t\t#\n\t\t# @since 5.8.0\n\t\tremove_duplicate_default_marks: =>\n\n\t\t\t$( '.woocommerce-MyAccount-paymentMethods' ).find( 'tr' ).each ( index, element ) =>\n\n\t\t\t\t$( element ).find( 'td.woocommerce-PaymentMethod--default' ).find( 'mark.default:not(:first-child)' ).remove()\n\n\n\t\t# Edits a payment method.\n\t\t#\n\t\t# @since 5.1.0\n\t\t#\n\t\t# @param [Object] event jQuery event object\n\t\tedit_method: ( event ) =>\n\n\t\t\tevent.preventDefault()\n\n\t\t\tbutton = $( event.currentTarget )\n\t\t\trow = button.parents( 'tr' )\n\n\t\t\t# check if the method belongs to this plugin\n\t\t\tif row.find( \"input[name=plugin-id][value=#{@slug}]\" ).length is 0\n\t\t\t\treturn\n\n\t\t\trow.find( 'div.view' ).hide()\n\t\t\trow.find( 'div.edit' ).show()\n\t\t\trow.addClass( 'editing' )\n\n\t\t\t# change the Edit button to \"Cancel\"\n\t\t\tbutton.text( @i18n.cancel_button ).removeClass( 'edit' ).addClass( 'cancel-edit' ).removeClass( 'button' )\n\n\t\t\tthis.enable_editing_ui()\n\n\n\t\t# Saves a payment method.\n\t\t#\n\t\t# @since 5.1.0\n\t\t#\n\t\t# @param [Object] event jQuery event object\n\t\tsave_method: ( event ) =>\n\n\t\t\tevent.preventDefault()\n\n\t\t\tbutton = $( event.currentTarget )\n\t\t\trow = button.parents( 'tr' )\n\n\t\t\t# check if the method belongs to this plugin\n\t\t\tif row.find( \"input[name=plugin-id][value=#{@slug}]\" ).length is 0\n\t\t\t\treturn\n\n\t\t\tthis.block_ui()\n\n\t\t\t# remove any previous errors\n\t\t\trow.next( '.error' ).remove()\n\n\t\t\tdata =\n\t\t\t\taction: \"wc_#{@id}_save_payment_method\"\n\t\t\t\tnonce: @ajax_nonce\n\t\t\t\ttoken_id: row.find( 'input[name=token-id]' ).val()\n\t\t\t\tdata: row.find( 'input[name]' ).serialize()\n\n\t\t\t$.post( @ajax_url, data )\n\n\t\t\t\t.done ( response ) =>\n\n\t\t\t\t\treturn this.display_error( row, response.data ) unless response.success\n\n\t\t\t\t\tif response.data.title?\n\t\t\t\t\t\trow.find('.woocommerce-PaymentMethod--method').html( response.data.title )\n\n\t\t\t\t\tif response.data.nonce?\n\t\t\t\t\t\t@ajax_nonce = response.data.nonce\n\n\t\t\t\t\t# change the \"Cancel\" button back to \"Edit\"\n\t\t\t\t\tbutton.siblings( '.cancel-edit' ).removeClass( 'cancel-edit' ).addClass( 'edit' ).text( @i18n.edit_button ).addClass( 'button' )\n\n\t\t\t\t\trow.removeClass( 'editing' )\n\n\t\t\t\t\tthis.disable_editing_ui()\n\n\t\t\t\t.fail ( jqXHR, textStatus, error ) =>\n\n\t\t\t\t\tthis.display_error( row, error )\n\n\t\t\t\t.always =>\n\n\t\t\t\t\tthis.unblock_ui()\n\n\n\t\t# Cancels/stop editing a payment method.\n\t\t#\n\t\t# @since 5.1.0\n\t\t#\n\t\t# @param [Object] event jQuery event object\n\t\tcancel_edit: ( event ) =>\n\n\t\t\tevent.preventDefault()\n\n\t\t\tbutton = $( event.currentTarget )\n\t\t\trow = button.parents( 'tr' )\n\n\t\t\t# check if the method belongs to this plugin\n\t\t\tif row.find( \"input[name=plugin-id][value=#{@slug}]\" ).length is 0\n\t\t\t\treturn\n\n\t\t\trow.find( 'div.view' ).show()\n\t\t\trow.find( 'div.edit' ).hide()\n\t\t\trow.removeClass( 'editing' )\n\n\t\t\t# change the \"Cancel\" button back to \"Edit\"\n\t\t\tbutton.removeClass( 'cancel-edit' ).addClass( 'edit' ).text( @i18n.edit_button ).addClass( 'button' )\n\n\t\t\tthis.disable_editing_ui()\n\n\n\t\t# Sets the page UI to the \"editing\" state.\n\t\t#\n\t\t# This brings proper focus to the method being edited and prevents\n\t\t# other available buttons/actions until the editing is finished or cancelled.\n\t\t#\n\t\t# @since 5.1.1\n\t\tenable_editing_ui: ->\n\n\t\t\t# set the methods table as 'editing'\n\t\t\t$( \".woocommerce-MyAccount-paymentMethods\" ).addClass( 'editing' )\n\n\t\t\t# disable the Add Payment Method button\n\t\t\t$( '.button[href*=\"add-payment-method\"]' ).addClass( 'disabled' )\n\n\n\t\t# Sets the page UI back to the default state.\n\t\t#\n\t\t# @since 5.1.1\n\t\tdisable_editing_ui: ->\n\n\t\t\t# removes the methods table's \"editing\" status\n\t\t\t$( \".woocommerce-MyAccount-paymentMethods\" ).removeClass( 'editing' )\n\n\t\t\t# re-enable the Add Payment Method button\n\t\t\t$( '.button[href*=\"add-payment-method\"]' ).removeClass( 'disabled' )\n\n\n\t\t# Blocks the payment methods table UI.\n\t\t#\n\t\t# @since 5.1.0\n\t\tblock_ui: -> $( \".woocommerce-MyAccount-paymentMethods\" ).parent( 'div' ).block( message: null, overlayCSS: background: '#fff', opacity: 0.6 )\n\n\n\t\t# Unblocks the payment methods table UI.\n\t\t#\n\t\t# @since 5.1.0\n\t\tunblock_ui: -> $( \".woocommerce-MyAccount-paymentMethods\" ).parent( 'div' ).unblock()\n\n\n\t\t# Displays an error message to the user.\n\t\t#\n\t\t# @since 5.1.0\n\t\t#\n\t\t# @param [Object] row payment method table row\n\t\t# @param [String] error raw error message\n\t\t# @param [String] message user error message\n\t\tdisplay_error: ( row, error, message = '' ) ->\n\n\t\t\tconsole.error( error )\n\n\t\t\tmessage = @i18n.save_error unless message\n\t\t\tcolumns = $( \".woocommerce-MyAccount-paymentMethods thead tr th\" ).length\n\n\t\t\t$( '' + message + '' ).insertAfter( row ).find( 'td' ).delay( 8000 ).slideUp( 200 )\n\n\n\t# dispatch loaded event\n\t$( document.body ).trigger( 'sv_wc_payment_methods_handler_v6_0_1_loaded' )\n"],"names":["jQuery","$","window","SV_WC_Payment_Methods_Handler_v6_0_1","constructor","args","replace_method_column","bind","remove_duplicate_default_marks","edit_method","save_method","cancel_edit","id","slug","i18n","ajax_url","ajax_nonce","on","event1","button","row","currentTarget","parents","find","length","confirm","delete_ays","prop","removeClass","preventDefault","event","hasClass","each","index","element","titleColumn","remove","children","html","hide","show","addClass","text","cancel_button","enable_editing_ui","data","block_ui","next","action","nonce","token_id","val","serialize","post","done","response","success","title","siblings","edit_button","disable_editing_ui","display_error","fail","jqXHR","textStatus","error","always","unblock_ui","parent","block","message","overlayCSS","background","opacity","unblock","columns","console","save_error","insertAfter","delay","slideUp","document","body","trigger","call"],"version":3,"file":"sv-wc-payment-gateway-my-payment-methods.js.map"} \ No newline at end of file diff --git a/woocommerce/payment-gateway/assets/dist/frontend/sv-wc-payment-gateway-payment-form.js b/woocommerce/payment-gateway/assets/dist/frontend/sv-wc-payment-gateway-payment-form.js index d96ad6c32..3fa53bcbb 100644 --- a/woocommerce/payment-gateway/assets/dist/frontend/sv-wc-payment-gateway-payment-form.js +++ b/woocommerce/payment-gateway/assets/dist/frontend/sv-wc-payment-gateway-payment-form.js @@ -1,2 +1,2 @@ -(function(){var e=[].indexOf;jQuery(function(t){return window.SV_WC_Payment_Form_Handler_v6_0_0=class{constructor(e){if(this.id=e.id,this.id_dasherized=e.id_dasherized,this.plugin_id=e.plugin_id,this.type=e.type,this.csc_required=e.csc_required,this.csc_required_for_tokens=e.csc_required_for_tokens,this.enabled_card_types=e.enabled_card_types,t("form.checkout").length)this.form=t("form.checkout"),this.handle_checkout_page();else if(t("form#order_review").length)this.form=t("form#order_review"),this.handle_pay_page();else if(t("form#add_payment_method").length)this.form=t("form#add_payment_method"),this.handle_add_payment_method_page();else{console.log("No payment form found!");return}this.params=window.sv_wc_payment_gateway_payment_form_params,"echeck"===this.type&&this.form.on("click",".js-sv-wc-payment-gateway-echeck-form-check-hint, .js-sv-wc-payment-gateway-echeck-form-sample-check",()=>this.handle_sample_check_hint()),t(document).trigger("sv_wc_payment_form_handler_init",{id:this.id,instance:this})}handle_checkout_page(){return"credit-card"===this.type&&t(document.body).on("updated_checkout",()=>this.format_credit_card_inputs()),t(document.body).on("updated_checkout",()=>this.set_payment_fields()),t(document.body).on("updated_checkout",()=>this.handle_saved_payment_methods()),this.form.on(`checkout_place_order_${this.id}`,()=>this.validate_payment_data())}handle_pay_page(){return this.set_payment_fields(),"credit-card"===this.type&&this.format_credit_card_inputs(),this.handle_saved_payment_methods(),this.form.submit(()=>{if(t("#order_review input[name=payment_method]:checked").val()===this.id)return this.validate_payment_data()})}handle_add_payment_method_page(){return this.set_payment_fields(),"credit-card"===this.type&&this.format_credit_card_inputs(),this.form.submit(()=>{if(t("#add_payment_method input[name=payment_method]:checked").val()===this.id)return this.validate_payment_data()})}set_payment_fields(){return this.payment_fields=t(`.payment_method_${this.id}`),this.payment_fields.find(".validate-required .input-text").each((e,a)=>!t(a).val()&&t(a).trigger("input"))}validate_payment_data(){var e,a;return!this.form.is(".processing")&&(this.saved_payment_method_selected=this.payment_fields.find(".js-sv-wc-payment-gateway-payment-token:checked").val(),a="credit-card"===this.type?this.validate_card_data():this.validate_account_data(),e=!1!==t(document.body).triggerHandler("sv_wc_payment_form_valid_payment_data",{payment_form:this,passed_validation:a}),a&&e)}format_credit_card_inputs(){var e,a,r;return e=t(".js-sv-wc-payment-gateway-credit-card-form-account-number").payment("formatCardNumber"),r=t(".js-sv-wc-payment-gateway-credit-card-form-expiry").payment("formatCardExpiry"),a=t(".js-sv-wc-payment-gateway-credit-card-form-csc").payment("formatCardCVC"),e.val()&&e.val().length>0&&e.trigger("change"),r.val()&&r.val().length>0&&r.trigger("change"),a.val()&&a.val().length>0&&a.trigger("change"),t(".js-sv-wc-payment-gateway-credit-card-form-input").on("change paste keyup",()=>this.do_inline_credit_card_validation())}do_inline_credit_card_validation(){var a,r,i,s;return(a=t(".js-sv-wc-payment-gateway-credit-card-form-account-number"),s=t(".js-sv-wc-payment-gateway-credit-card-form-expiry"),i=t(".js-sv-wc-payment-gateway-credit-card-form-csc"),r=t.payment.cardType(a.val()),0>e.call(this.enabled_card_types,r)?a.addClass("invalid-card-type"):a.removeClass("invalid-card-type"),t.payment.validateCardExpiry(s.payment("cardExpiryVal"))?s.addClass("identified"):s.removeClass("identified"),t.payment.validateCardCVC(i.val()))?i.addClass("identified"):i.removeClass("identified")}validate_card_data(){var e,a,r,i;return(r=[],null!=(a=this.payment_fields.find(".js-sv-wc-payment-gateway-credit-card-form-csc").val())&&(a?(/\D/.test(a)&&r.push(this.params.cvv_digits_invalid),(a.length<3||a.length>4)&&r.push(this.params.cvv_length_invalid)):this.csc_required&&(!this.saved_payment_method_selected||this.csc_required_for_tokens)&&r.push(this.params.cvv_missing)),this.saved_payment_method_selected||(e=this.payment_fields.find(".js-sv-wc-payment-gateway-credit-card-form-account-number").val(),i=t.payment.cardExpiryVal(this.payment_fields.find(".js-sv-wc-payment-gateway-credit-card-form-expiry").val()),(e=e.replace(/-|\s/g,""))?((e.length<12||e.length>19)&&r.push(this.params.card_number_length_invalid),/\D/.test(e)&&r.push(this.params.card_number_digits_invalid),t.payment.validateCardNumber(e)||r.push(this.params.card_number_invalid)):r.push(this.params.card_number_missing),t.payment.validateCardExpiry(i)||r.push(this.params.card_exp_date_invalid)),r.length>0)?(this.render_errors(r),!1):(this.payment_fields.find(".js-sv-wc-payment-gateway-credit-card-form-account-number").val(e),!0)}validate_account_data(){var e,t,a;return!!this.saved_payment_method_selected||((t=[],a=this.payment_fields.find(".js-sv-wc-payment-gateway-echeck-form-routing-number").val(),e=this.payment_fields.find(".js-sv-wc-payment-gateway-echeck-form-account-number").val(),a?(9!==a.length&&t.push(this.params.routing_number_length_invalid),/\D/.test(a)&&t.push(this.params.routing_number_digits_invalid)):t.push(this.params.routing_number_missing),e?((e.length<3||e.length>17)&&t.push(this.params.account_number_length_invalid),/\D/.test(e)&&t.push(this.params.account_number_invalid)):t.push(this.params.account_number_missing),t.length>0)?(this.render_errors(t),!1):(this.payment_fields.find(".js-sv-wc-payment-gateway-echeck-form-account-number").val(e),!0))}render_errors(e){return t(".woocommerce-error, .woocommerce-message").remove(),this.form.prepend('
  • '+e.join("
  • ")+"
"),this.form.removeClass("processing").unblock(),this.form.find(".input-text, select").blur(),t("html, body").animate({scrollTop:this.form.offset().top-100},1e3)}handle_saved_payment_methods(){var e,a,r,i;if(i=this.id_dasherized,this.csc_required,r=this.csc_required_for_tokens,e=(a=t(`div.js-wc-${i}-new-payment-method-form`)).find(".js-sv-wc-payment-gateway-credit-card-form-csc").closest(".form-row"),t(`input.js-wc-${this.id_dasherized}-payment-token`).on("change",function(){if(t(`input.js-wc-${i}-payment-token:checked`).val()){if(a.slideUp(200),r)return e.removeClass("form-row-last").addClass("form-row-first"),a.after(e)}else if(a.slideDown(200),r)return e.removeClass("form-row-first").addClass("form-row-last"),a.find(".js-sv-wc-payment-gateway-credit-card-form-expiry").closest(".form-row").after(e)}).change(),t("input#createaccount").on("change",function(){var e;return(e=t(`input.js-wc-${i}-tokenize-payment-method`).closest("p.form-row"),t(this).is(":checked"))?(e.slideDown(),e.next().show()):(e.hide(),e.next().hide())}),!t("input#createaccount").is(":checked"))return t("input#createaccount").change()}handle_sample_check_hint(){var e;return(e=this.payment_fields.find(".js-sv-wc-payment-gateway-echeck-form-sample-check")).is(":visible")?e.slideUp():e.slideDown()}block_ui(){return this.form.block({message:null,overlayCSS:{background:"#fff",opacity:.6}})}unblock_ui(){return this.form.unblock()}},t(document.body).trigger("sv_wc_payment_form_handler_v6_0_0_loaded")})}).call({}); +(function(){var e=[].indexOf;jQuery(function(t){return window.SV_WC_Payment_Form_Handler_v6_0_1=class{constructor(e){if(this.id=e.id,this.id_dasherized=e.id_dasherized,this.plugin_id=e.plugin_id,this.type=e.type,this.csc_required=e.csc_required,this.csc_required_for_tokens=e.csc_required_for_tokens,this.enabled_card_types=e.enabled_card_types,t("form.checkout").length)this.form=t("form.checkout"),this.handle_checkout_page();else if(t("form#order_review").length)this.form=t("form#order_review"),this.handle_pay_page();else if(t("form#add_payment_method").length)this.form=t("form#add_payment_method"),this.handle_add_payment_method_page();else{console.log("No payment form found!");return}this.params=window.sv_wc_payment_gateway_payment_form_params,"echeck"===this.type&&this.form.on("click",".js-sv-wc-payment-gateway-echeck-form-check-hint, .js-sv-wc-payment-gateway-echeck-form-sample-check",()=>this.handle_sample_check_hint()),t(document).trigger("sv_wc_payment_form_handler_init",{id:this.id,instance:this})}handle_checkout_page(){return"credit-card"===this.type&&t(document.body).on("updated_checkout",()=>this.format_credit_card_inputs()),t(document.body).on("updated_checkout",()=>this.set_payment_fields()),t(document.body).on("updated_checkout",()=>this.handle_saved_payment_methods()),this.form.on(`checkout_place_order_${this.id}`,()=>this.validate_payment_data())}handle_pay_page(){return this.set_payment_fields(),"credit-card"===this.type&&this.format_credit_card_inputs(),this.handle_saved_payment_methods(),this.form.submit(()=>{if(t("#order_review input[name=payment_method]:checked").val()===this.id)return this.validate_payment_data()})}handle_add_payment_method_page(){return this.set_payment_fields(),"credit-card"===this.type&&this.format_credit_card_inputs(),this.form.submit(()=>{if(t("#add_payment_method input[name=payment_method]:checked").val()===this.id)return this.validate_payment_data()})}set_payment_fields(){return this.payment_fields=t(`.payment_method_${this.id}`),this.payment_fields.find(".validate-required .input-text").each((e,a)=>!t(a).val()&&t(a).trigger("input"))}validate_payment_data(){var e,a;return!this.form.is(".processing")&&(this.saved_payment_method_selected=this.payment_fields.find(".js-sv-wc-payment-gateway-payment-token:checked").val(),a="credit-card"===this.type?this.validate_card_data():this.validate_account_data(),e=!1!==t(document.body).triggerHandler("sv_wc_payment_form_valid_payment_data",{payment_form:this,passed_validation:a}),a&&e)}format_credit_card_inputs(){var e,a,r;return e=t(".js-sv-wc-payment-gateway-credit-card-form-account-number").payment("formatCardNumber"),r=t(".js-sv-wc-payment-gateway-credit-card-form-expiry").payment("formatCardExpiry"),a=t(".js-sv-wc-payment-gateway-credit-card-form-csc").payment("formatCardCVC"),e.val()&&e.val().length>0&&e.trigger("change"),r.val()&&r.val().length>0&&r.trigger("change"),a.val()&&a.val().length>0&&a.trigger("change"),t(".js-sv-wc-payment-gateway-credit-card-form-input").on("change paste keyup",()=>this.do_inline_credit_card_validation())}do_inline_credit_card_validation(){var a,r,i,s;return(a=t(".js-sv-wc-payment-gateway-credit-card-form-account-number"),s=t(".js-sv-wc-payment-gateway-credit-card-form-expiry"),i=t(".js-sv-wc-payment-gateway-credit-card-form-csc"),r=t.payment.cardType(a.val()),0>e.call(this.enabled_card_types,r)?a.addClass("invalid-card-type"):a.removeClass("invalid-card-type"),t.payment.validateCardExpiry(s.payment("cardExpiryVal"))?s.addClass("identified"):s.removeClass("identified"),t.payment.validateCardCVC(i.val()))?i.addClass("identified"):i.removeClass("identified")}validate_card_data(){var e,a,r,i;return(r=[],null!=(a=this.payment_fields.find(".js-sv-wc-payment-gateway-credit-card-form-csc").val())&&(a?(/\D/.test(a)&&r.push(this.params.cvv_digits_invalid),(a.length<3||a.length>4)&&r.push(this.params.cvv_length_invalid)):this.csc_required&&(!this.saved_payment_method_selected||this.csc_required_for_tokens)&&r.push(this.params.cvv_missing)),this.saved_payment_method_selected||(e=this.payment_fields.find(".js-sv-wc-payment-gateway-credit-card-form-account-number").val(),i=t.payment.cardExpiryVal(this.payment_fields.find(".js-sv-wc-payment-gateway-credit-card-form-expiry").val()),(e=e.replace(/-|\s/g,""))?((e.length<12||e.length>19)&&r.push(this.params.card_number_length_invalid),/\D/.test(e)&&r.push(this.params.card_number_digits_invalid),t.payment.validateCardNumber(e)||r.push(this.params.card_number_invalid)):r.push(this.params.card_number_missing),t.payment.validateCardExpiry(i)||r.push(this.params.card_exp_date_invalid)),r.length>0)?(this.render_errors(r),!1):(this.payment_fields.find(".js-sv-wc-payment-gateway-credit-card-form-account-number").val(e),!0)}validate_account_data(){var e,t,a;return!!this.saved_payment_method_selected||((t=[],a=this.payment_fields.find(".js-sv-wc-payment-gateway-echeck-form-routing-number").val(),e=this.payment_fields.find(".js-sv-wc-payment-gateway-echeck-form-account-number").val(),a?(9!==a.length&&t.push(this.params.routing_number_length_invalid),/\D/.test(a)&&t.push(this.params.routing_number_digits_invalid)):t.push(this.params.routing_number_missing),e?((e.length<3||e.length>17)&&t.push(this.params.account_number_length_invalid),/\D/.test(e)&&t.push(this.params.account_number_invalid)):t.push(this.params.account_number_missing),t.length>0)?(this.render_errors(t),!1):(this.payment_fields.find(".js-sv-wc-payment-gateway-echeck-form-account-number").val(e),!0))}render_errors(e){return t(".woocommerce-error, .woocommerce-message").remove(),this.form.prepend('
  • '+e.join("
  • ")+"
"),this.form.removeClass("processing").unblock(),this.form.find(".input-text, select").blur(),t("html, body").animate({scrollTop:this.form.offset().top-100},1e3)}handle_saved_payment_methods(){var e,a,r,i;if(i=this.id_dasherized,this.csc_required,r=this.csc_required_for_tokens,e=(a=t(`div.js-wc-${i}-new-payment-method-form`)).find(".js-sv-wc-payment-gateway-credit-card-form-csc").closest(".form-row"),t(`input.js-wc-${this.id_dasherized}-payment-token`).on("change",function(){if(t(`input.js-wc-${i}-payment-token:checked`).val()){if(a.slideUp(200),r)return e.removeClass("form-row-last").addClass("form-row-first"),a.after(e)}else if(a.slideDown(200),r)return e.removeClass("form-row-first").addClass("form-row-last"),a.find(".js-sv-wc-payment-gateway-credit-card-form-expiry").closest(".form-row").after(e)}).change(),t("input#createaccount").on("change",function(){var e;return(e=t(`input.js-wc-${i}-tokenize-payment-method`).closest("p.form-row"),t(this).is(":checked"))?(e.slideDown(),e.next().show()):(e.hide(),e.next().hide())}),!t("input#createaccount").is(":checked"))return t("input#createaccount").change()}handle_sample_check_hint(){var e;return(e=this.payment_fields.find(".js-sv-wc-payment-gateway-echeck-form-sample-check")).is(":visible")?e.slideUp():e.slideDown()}block_ui(){return this.form.block({message:null,overlayCSS:{background:"#fff",opacity:.6}})}unblock_ui(){return this.form.unblock()}},t(document.body).trigger("sv_wc_payment_form_handler_v6_0_1_loaded")})}).call({}); //# sourceMappingURL=sv-wc-payment-gateway-payment-form.js.map diff --git a/woocommerce/payment-gateway/assets/dist/frontend/sv-wc-payment-gateway-payment-form.js.map b/woocommerce/payment-gateway/assets/dist/frontend/sv-wc-payment-gateway-payment-form.js.map index 481cd93bf..c23df5a1a 100644 --- a/woocommerce/payment-gateway/assets/dist/frontend/sv-wc-payment-gateway-payment-form.js.map +++ b/woocommerce/payment-gateway/assets/dist/frontend/sv-wc-payment-gateway-payment-form.js.map @@ -1 +1 @@ -{"mappings":"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","sources":["","woocommerce/payment-gateway/assets/js/frontend/sv-wc-payment-gateway-payment-form.coffee"],"sourcesContent":["(() => {\nvar $a2c1c221aac1d794$exports = {};\n(function() {\n /*\n WooCommerce SkyVerge Payment Gateway Framework Payment Form CoffeeScript\n Version 4.3.0\n\n Copyright (c) 2014-2024, SkyVerge, Inc.\n Licensed under the GNU General Public License v3.0\n http://www.gnu.org/licenses/gpl-3.0.html\n */ var indexOf = [].indexOf;\n jQuery(function($) {\n \"use strict\";\n window.SV_WC_Payment_Form_Handler_v6_0_0 = class SV_WC_Payment_Form_Handler_v6_0_0 {\n // Public: Instantiate Payment Form Handler\n // args - object with properties:\n // id - gateway ID\n // id_dasherized - gateway ID dasherized\n // plugin_id - plugin ID\n // type - gateway type, either `credit-card` or `echeck`\n // csc_required - true if the gateway requires the CSC field to be displayed\n // Returns SV_WC_Payment_Form_Handler_v6_0_0 instance\n constructor(args){\n this.id = args.id;\n this.id_dasherized = args.id_dasherized;\n this.plugin_id = args.plugin_id;\n this.type = args.type;\n this.csc_required = args.csc_required;\n this.csc_required_for_tokens = args.csc_required_for_tokens;\n this.enabled_card_types = args.enabled_card_types;\n // which payment form?\n if ($('form.checkout').length) {\n this.form = $('form.checkout');\n this.handle_checkout_page();\n } else if ($('form#order_review').length) {\n this.form = $('form#order_review');\n this.handle_pay_page();\n } else if ($('form#add_payment_method').length) {\n this.form = $('form#add_payment_method');\n this.handle_add_payment_method_page();\n } else {\n console.log('No payment form found!');\n return;\n }\n // localized error messages\n this.params = window[\"sv_wc_payment_gateway_payment_form_params\"];\n if (this.type === 'echeck') // handle sample check image hint\n this.form.on('click', '.js-sv-wc-payment-gateway-echeck-form-check-hint, .js-sv-wc-payment-gateway-echeck-form-sample-check', ()=>{\n return this.handle_sample_check_hint();\n });\n $(document).trigger('sv_wc_payment_form_handler_init', {\n id: this.id,\n instance: this\n });\n }\n // Public: Handle required actions on the checkout page\n // Returns nothing.\n handle_checkout_page() {\n if (this.type === 'credit-card') // format/validate credit card inputs using jQuery.payment\n $(document.body).on('updated_checkout', ()=>{\n return this.format_credit_card_inputs();\n });\n // updated payment fields jQuery object on each checkout update (prevents stale data)\n $(document.body).on('updated_checkout', ()=>{\n return this.set_payment_fields();\n });\n // handle saved payment methods\n // note on the checkout page, this is bound to `updated_checkout` so it\n // fires even when other parts of the checkout are changed\n $(document.body).on('updated_checkout', ()=>{\n return this.handle_saved_payment_methods();\n });\n // validate payment data before order is submitted\n return this.form.on(`checkout_place_order_${this.id}`, ()=>{\n return this.validate_payment_data();\n });\n }\n // Public: Handle required actions on the Order > Pay page\n // Returns nothing.\n handle_pay_page() {\n this.set_payment_fields();\n // format/validate credit card inputs using jQuery.payment\n if (this.type === 'credit-card') this.format_credit_card_inputs();\n // handle saved payment methods\n this.handle_saved_payment_methods();\n // validate payment data before order is submitted\n return this.form.submit(()=>{\n if ($('#order_review input[name=payment_method]:checked').val() === this.id) // but only when one of our payment gateways is selected\n return this.validate_payment_data();\n });\n }\n // Public: Handle required actions on the Add Payment Method page\n // Returns nothing.\n handle_add_payment_method_page() {\n this.set_payment_fields();\n // format/validate credit card inputs using jQuery.payment\n if (this.type === 'credit-card') this.format_credit_card_inputs();\n // validate payment data before order is submitted\n return this.form.submit(()=>{\n if ($('#add_payment_method input[name=payment_method]:checked').val() === this.id) // but only when one of our payment gateways is selected\n return this.validate_payment_data();\n });\n }\n // Public: Set payment fields class variable, this is done\n // during the updated_checkout event as otherwise the reference to\n // the checkout fields becomes stale (somehow ¯\\_(ツ)_/¯)\n // This ensures payment fields are not marked as \"invalid\" before the customer has interacted with them.\n // Returns nothing.\n set_payment_fields() {\n var $required_fields;\n this.payment_fields = $(`.payment_method_${this.id}`);\n $required_fields = this.payment_fields.find('.validate-required .input-text');\n return $required_fields.each((i, input)=>{\n // if any of the required fields have a value, bail this loop and proceed with WooCommerce validation\n if ($(input).val()) return false;\n // otherwise remove all validation result classes from the inputs, since the form is freshly loaded\n return $(input).trigger('input');\n });\n }\n // Public: Validate Payment data when order is placed\n // Returns boolean, true if payment data is valid, false otherwise\n validate_payment_data() {\n var handler, valid;\n if (this.form.is('.processing')) // bail when already processing\n return false;\n this.saved_payment_method_selected = this.payment_fields.find('.js-sv-wc-payment-gateway-payment-token:checked').val();\n // perform internal validations (all fields present & valid, etc)\n valid = this.type === 'credit-card' ? this.validate_card_data() : this.validate_account_data();\n // let gateways perform their own validation prior to form submission\n handler = $(document.body).triggerHandler('sv_wc_payment_form_valid_payment_data', {\n payment_form: this,\n passed_validation: valid\n }) !== false;\n return valid && handler;\n }\n // Public: format card data using jQuery.Payment\n // Returns nothing.\n format_credit_card_inputs() {\n var $card_number, $csc, $expiry;\n $card_number = $('.js-sv-wc-payment-gateway-credit-card-form-account-number').payment('formatCardNumber');\n $expiry = $('.js-sv-wc-payment-gateway-credit-card-form-expiry').payment('formatCardExpiry');\n $csc = $('.js-sv-wc-payment-gateway-credit-card-form-csc').payment('formatCardCVC');\n if ($card_number.val() && $card_number.val().length > 0) $card_number.trigger('change');\n if ($expiry.val() && $expiry.val().length > 0) $expiry.trigger('change');\n if ($csc.val() && $csc.val().length > 0) $csc.trigger('change');\n // perform inline validation on credit card inputs\n return $('.js-sv-wc-payment-gateway-credit-card-form-input').on('change paste keyup', ()=>{\n return this.do_inline_credit_card_validation();\n });\n }\n // Public: perform inline validation on credit card fields\n // Returns nothing.\n do_inline_credit_card_validation() {\n var $card_number, $card_type, $csc, $expiry;\n $card_number = $('.js-sv-wc-payment-gateway-credit-card-form-account-number');\n $expiry = $('.js-sv-wc-payment-gateway-credit-card-form-expiry');\n $csc = $('.js-sv-wc-payment-gateway-credit-card-form-csc');\n $card_type = $.payment.cardType($card_number.val());\n if (indexOf.call(this.enabled_card_types, $card_type) < 0) $card_number.addClass('invalid-card-type');\n else $card_number.removeClass('invalid-card-type');\n if ($.payment.validateCardExpiry($expiry.payment('cardExpiryVal'))) $expiry.addClass('identified');\n else $expiry.removeClass('identified');\n if ($.payment.validateCardCVC($csc.val())) return $csc.addClass('identified');\n else return $csc.removeClass('identified');\n }\n // Public: Perform validation on the credit card info entered\n // Return boolean, true if credit card info is valid, false otherwise\n validate_card_data() {\n var account_number, csc, errors, expiry;\n errors = [];\n csc = this.payment_fields.find('.js-sv-wc-payment-gateway-credit-card-form-csc').val();\n // always validate the CSC if present\n if (csc != null) {\n if (csc) {\n if (/\\D/.test(csc)) errors.push(this.params.cvv_digits_invalid);\n if (csc.length < 3 || csc.length > 4) errors.push(this.params.cvv_length_invalid);\n } else if (this.csc_required) {\n if (!this.saved_payment_method_selected || this.csc_required_for_tokens) errors.push(this.params.cvv_missing);\n }\n }\n // Only validate the other CC fields if necessary\n if (!this.saved_payment_method_selected) {\n account_number = this.payment_fields.find('.js-sv-wc-payment-gateway-credit-card-form-account-number').val();\n expiry = $.payment.cardExpiryVal(this.payment_fields.find('.js-sv-wc-payment-gateway-credit-card-form-expiry').val());\n // replace any dashes or spaces in the card number\n account_number = account_number.replace(/-|\\s/g, '');\n // validate card number\n if (!account_number) errors.push(this.params.card_number_missing);\n else {\n if (account_number.length < 12 || account_number.length > 19) errors.push(this.params.card_number_length_invalid);\n if (/\\D/.test(account_number)) errors.push(this.params.card_number_digits_invalid);\n if (!$.payment.validateCardNumber(account_number)) errors.push(this.params.card_number_invalid);\n }\n if (!$.payment.validateCardExpiry(expiry)) // validate expiration date\n errors.push(this.params.card_exp_date_invalid);\n }\n if (errors.length > 0) {\n this.render_errors(errors);\n return false;\n } else {\n // get rid of any space/dash characters\n this.payment_fields.find('.js-sv-wc-payment-gateway-credit-card-form-account-number').val(account_number);\n return true;\n }\n }\n // Public: Perform validation on the eCheck info entered\n // Return boolean, true if eCheck info is valid, false otherwise\n validate_account_data() {\n var account_number, errors, routing_number;\n if (this.saved_payment_method_selected) return true;\n errors = [];\n routing_number = this.payment_fields.find('.js-sv-wc-payment-gateway-echeck-form-routing-number').val();\n account_number = this.payment_fields.find('.js-sv-wc-payment-gateway-echeck-form-account-number').val();\n // validate routing number\n if (!routing_number) errors.push(this.params.routing_number_missing);\n else {\n if (9 !== routing_number.length) errors.push(this.params.routing_number_length_invalid);\n if (/\\D/.test(routing_number)) errors.push(this.params.routing_number_digits_invalid);\n }\n // validate account number\n if (!account_number) errors.push(this.params.account_number_missing);\n else {\n if (account_number.length < 3 || account_number.length > 17) errors.push(this.params.account_number_length_invalid);\n if (/\\D/.test(account_number)) errors.push(this.params.account_number_invalid);\n }\n if (errors.length > 0) {\n this.render_errors(errors);\n return false;\n } else {\n // get rid of any space/dash characters\n this.payment_fields.find('.js-sv-wc-payment-gateway-echeck-form-account-number').val(account_number);\n return true;\n }\n }\n // Public: Render any new errors and bring them into the viewport\n // Returns nothing.\n render_errors(errors) {\n // hide and remove any previous errors\n $('.woocommerce-error, .woocommerce-message').remove();\n // add errors\n this.form.prepend('
  • ' + errors.join('
  • ') + '
');\n // unblock UI\n this.form.removeClass('processing').unblock();\n this.form.find('.input-text, select').blur();\n // scroll to top\n return $('html, body').animate({\n scrollTop: this.form.offset().top - 100\n }, 1000);\n }\n // Public: Handle associated actions for saved payment methods\n // Returns nothing.\n handle_saved_payment_methods() {\n var $csc_field, $new_payment_method_selection, csc_required, csc_required_for_tokens, id_dasherized;\n // make available inside change events\n id_dasherized = this.id_dasherized;\n csc_required = this.csc_required;\n csc_required_for_tokens = this.csc_required_for_tokens;\n $new_payment_method_selection = $(`div.js-wc-${id_dasherized}-new-payment-method-form`);\n $csc_field = $new_payment_method_selection.find('.js-sv-wc-payment-gateway-credit-card-form-csc').closest('.form-row');\n // show/hide the saved payment methods when a saved payment method is de-selected/selected\n $(`input.js-wc-${this.id_dasherized}-payment-token`).on('change', function() {\n var tokenized_payment_method_selected;\n tokenized_payment_method_selected = $(`input.js-wc-${id_dasherized}-payment-token:checked`).val();\n if (tokenized_payment_method_selected) {\n // using an existing tokenized payment method, hide the 'new method' fields\n $new_payment_method_selection.slideUp(200);\n // move the CSC field out of the 'new method' fields so it can be used with the tokenized transaction\n if (csc_required_for_tokens) {\n $csc_field.removeClass('form-row-last').addClass('form-row-first');\n return $new_payment_method_selection.after($csc_field);\n }\n } else {\n // use new payment method, display the 'new method' fields\n $new_payment_method_selection.slideDown(200);\n // move the CSC field back into its regular spot\n if (csc_required_for_tokens) {\n $csc_field.removeClass('form-row-first').addClass('form-row-last');\n return $new_payment_method_selection.find('.js-sv-wc-payment-gateway-credit-card-form-expiry').closest('.form-row').after($csc_field);\n }\n }\n }).change();\n // display the 'save payment method' option for guest checkouts if the 'create account' option is checked\n // but only hide the input if there is a 'create account' checkbox (some themes just display the password)\n $('input#createaccount').on('change', function() {\n var $parent_row;\n $parent_row = $(`input.js-wc-${id_dasherized}-tokenize-payment-method`).closest('p.form-row');\n if ($(this).is(':checked')) {\n $parent_row.slideDown();\n return $parent_row.next().show();\n } else {\n $parent_row.hide();\n return $parent_row.next().hide();\n }\n });\n if (!$('input#createaccount').is(':checked')) return $('input#createaccount').change();\n }\n // Public: Handle showing/hiding the sample check image\n // Returns nothing.\n handle_sample_check_hint() {\n var $sample_check;\n $sample_check = this.payment_fields.find('.js-sv-wc-payment-gateway-echeck-form-sample-check');\n if ($sample_check.is(\":visible\")) return $sample_check.slideUp();\n else return $sample_check.slideDown();\n }\n // Blocks the payment form UI\n // @since 3.0.0\n block_ui() {\n return this.form.block({\n message: null,\n overlayCSS: {\n background: '#fff',\n opacity: 0.6\n }\n });\n }\n // Unblocks the payment form UI\n // @since 3.0.0\n unblock_ui() {\n return this.form.unblock();\n }\n };\n // dispatch loaded event\n return $(document.body).trigger(\"sv_wc_payment_form_handler_v6_0_0_loaded\");\n });\n}).call($a2c1c221aac1d794$exports);\n\n})();\n//# sourceMappingURL=sv-wc-payment-gateway-payment-form.js.map\n","###\n WooCommerce SkyVerge Payment Gateway Framework Payment Form CoffeeScript\n Version 4.3.0\n\n Copyright (c) 2014-2024, SkyVerge, Inc.\n Licensed under the GNU General Public License v3.0\n http://www.gnu.org/licenses/gpl-3.0.html\n###\njQuery ( $ ) ->\n\t\"use strict\"\n\n\n\tclass window.SV_WC_Payment_Form_Handler_v6_0_0\n\n\n\t\t# Public: Instantiate Payment Form Handler\n\t\t#\n\t\t# args - object with properties:\n\t\t# id - gateway ID\n\t\t# id_dasherized - gateway ID dasherized\n\t\t# plugin_id - plugin ID\n\t\t# type - gateway type, either `credit-card` or `echeck`\n\t\t# csc_required - true if the gateway requires the CSC field to be displayed\n\t\t#\n\t\t# Returns SV_WC_Payment_Form_Handler_v6_0_0 instance\n\t\tconstructor: (args) ->\n\n\t\t\t@id = args.id\n\t\t\t@id_dasherized = args.id_dasherized\n\t\t\t@plugin_id = args.plugin_id\n\t\t\t@type = args.type\n\t\t\t@csc_required = args.csc_required\n\t\t\t@csc_required_for_tokens = args.csc_required_for_tokens\n\t\t\t@enabled_card_types = args.enabled_card_types\n\n\t\t\t# which payment form?\n\t\t\tif $( 'form.checkout' ).length\n\t\t\t\t@form = $( 'form.checkout' )\n\t\t\t\tthis.handle_checkout_page()\n\n\t\t\telse if $( 'form#order_review' ).length\n\t\t\t\t@form = $( 'form#order_review' )\n\t\t\t\tthis.handle_pay_page()\n\n\t\t\telse if $( 'form#add_payment_method' ).length\n\t\t\t\t@form = $( 'form#add_payment_method' )\n\t\t\t\tthis.handle_add_payment_method_page()\n\n\t\t\telse\n\t\t\t\tconsole.log( 'No payment form found!' )\n\t\t\t\treturn\n\n\t\t\t# localized error messages\n\t\t\t@params = window[ \"sv_wc_payment_gateway_payment_form_params\" ]\n\n\t\t\t# handle sample check image hint\n\t\t\t@form.on( 'click', '.js-sv-wc-payment-gateway-echeck-form-check-hint, .js-sv-wc-payment-gateway-echeck-form-sample-check', => this.handle_sample_check_hint() ) if @type is 'echeck'\n\n\t\t\t$( document ).trigger( 'sv_wc_payment_form_handler_init', { id: @id, instance: @ } )\n\n\n\t\t# Public: Handle required actions on the checkout page\n\t\t#\n\t\t# Returns nothing.\n\t\thandle_checkout_page: ->\n\n\t\t\t# format/validate credit card inputs using jQuery.payment\n\t\t\t$( document.body ).on( 'updated_checkout', => this.format_credit_card_inputs() ) if @type is 'credit-card'\n\n\t\t\t# updated payment fields jQuery object on each checkout update (prevents stale data)\n\t\t\t$( document.body ).on( 'updated_checkout', => this.set_payment_fields() )\n\n\t\t\t# handle saved payment methods\n\t\t\t# note on the checkout page, this is bound to `updated_checkout` so it\n\t\t\t# fires even when other parts of the checkout are changed\n\t\t\t$( document.body ).on( 'updated_checkout', => this.handle_saved_payment_methods() )\n\n\t\t\t# validate payment data before order is submitted\n\t\t\t@form.on( \"checkout_place_order_#{ @id }\", => this.validate_payment_data() )\n\n\n\t\t# Public: Handle required actions on the Order > Pay page\n\t\t#\n\t\t# Returns nothing.\n\t\thandle_pay_page: ->\n\n\t\t\tthis.set_payment_fields()\n\n\t\t\t# format/validate credit card inputs using jQuery.payment\n\t\t\tif @type is 'credit-card'\n\t\t\t\tthis.format_credit_card_inputs()\n\n\t\t\t# handle saved payment methods\n\t\t\tthis.handle_saved_payment_methods()\n\n\t\t\t# validate payment data before order is submitted\n\t\t\t@form.submit =>\n\n\t\t\t\t# but only when one of our payment gateways is selected\n\t\t\t\treturn this.validate_payment_data() if $( '#order_review input[name=payment_method]:checked' ).val() is @id\n\n\n\t\t# Public: Handle required actions on the Add Payment Method page\n\t\t#\n\t\t# Returns nothing.\n\t\thandle_add_payment_method_page: ->\n\n\t\t\tthis.set_payment_fields()\n\n\t\t\t# format/validate credit card inputs using jQuery.payment\n\t\t\tif @type is 'credit-card'\n\t\t\t\tthis.format_credit_card_inputs()\n\n\t\t\t# validate payment data before order is submitted\n\t\t\t@form.submit =>\n\n\t\t\t\t# but only when one of our payment gateways is selected\n\t\t\t\treturn this.validate_payment_data() if $( '#add_payment_method input[name=payment_method]:checked' ).val() is @id\n\n\n\t\t# Public: Set payment fields class variable, this is done\n\t\t# during the updated_checkout event as otherwise the reference to\n\t\t# the checkout fields becomes stale (somehow ¯\\_(ツ)_/¯)\n\t\t#\n\t\t# This ensures payment fields are not marked as \"invalid\" before the customer has interacted with them.\n\t\t#\n\t\t# Returns nothing.\n\t\tset_payment_fields: ->\n\n\t\t\t@payment_fields = $( \".payment_method_#{ @id }\" )\n\n\t\t\t$required_fields = @payment_fields.find( '.validate-required .input-text' )\n\n\t\t\t$required_fields.each( ( i, input ) =>\n\n\t\t\t\t# if any of the required fields have a value, bail this loop and proceed with WooCommerce validation\n\t\t\t\tif $( input ).val()\n\t\t\t\t\treturn false\n\n\t\t\t\t# otherwise remove all validation result classes from the inputs, since the form is freshly loaded\n\t\t\t\t$( input ).trigger( 'input' )\n\t\t\t)\n\n\n\t\t# Public: Validate Payment data when order is placed\n\t\t#\n\t\t# Returns boolean, true if payment data is valid, false otherwise\n\t\tvalidate_payment_data: ->\n\n\t\t\t# bail when already processing\n\t\t\treturn false if @form.is( '.processing' )\n\n\t\t\t@saved_payment_method_selected = @payment_fields.find( '.js-sv-wc-payment-gateway-payment-token:checked' ).val()\n\n\t\t\t# perform internal validations (all fields present & valid, etc)\n\t\t\tvalid = if @type is 'credit-card' then this.validate_card_data() else this.validate_account_data()\n\n\t\t\t# let gateways perform their own validation prior to form submission\n\t\t\thandler = $( document.body ).triggerHandler( 'sv_wc_payment_form_valid_payment_data', { payment_form: this, passed_validation: valid } ) isnt false\n\n\t\t\treturn valid && handler\n\n\n\t\t# Public: format card data using jQuery.Payment\n\t\t#\n\t\t# Returns nothing.\n\t\tformat_credit_card_inputs: ->\n\t\t\t$card_number = $('.js-sv-wc-payment-gateway-credit-card-form-account-number').payment('formatCardNumber');\n\t\t\t$expiry = $('.js-sv-wc-payment-gateway-credit-card-form-expiry').payment('formatCardExpiry');\n\t\t\t$csc = $('.js-sv-wc-payment-gateway-credit-card-form-csc').payment('formatCardCVC');\n\n\t\t\t# trigger a 'change' event for non empty fields only\n\t\t\t$card_number.trigger( 'change') if $card_number.val() && $card_number.val().length > 0\n\t\t\t$expiry.trigger( 'change') if $expiry.val() && $expiry.val().length > 0\n\t\t\t$csc.trigger( 'change') if $csc.val() && $csc.val().length > 0\n\n\t\t\t# perform inline validation on credit card inputs\n\t\t\t$( '.js-sv-wc-payment-gateway-credit-card-form-input' ).on( 'change paste keyup', => this.do_inline_credit_card_validation() )\n\n\n\t\t# Public: perform inline validation on credit card fields\n\t\t#\n\t\t# Returns nothing.\n\t\tdo_inline_credit_card_validation: ->\n\n\t\t\t$card_number = $( '.js-sv-wc-payment-gateway-credit-card-form-account-number' )\n\t\t\t$expiry = $( '.js-sv-wc-payment-gateway-credit-card-form-expiry' )\n\t\t\t$csc = $( '.js-sv-wc-payment-gateway-credit-card-form-csc' )\n\n\t\t\t$card_type = $.payment.cardType( $card_number.val() )\n\n\t\t\tif $card_type not in @enabled_card_types\n\t\t\t\t$card_number.addClass( 'invalid-card-type' )\n\t\t\telse\n\t\t\t\t$card_number.removeClass( 'invalid-card-type' )\n\n\t\t\tif $.payment.validateCardExpiry( $expiry.payment( 'cardExpiryVal' ) )\n\t\t\t\t$expiry.addClass( 'identified' )\n\t\t\telse\n\t\t\t\t$expiry.removeClass( 'identified' )\n\n\t\t\tif $.payment.validateCardCVC( $csc.val() )\n\t\t\t\t$csc.addClass( 'identified' )\n\t\t\telse\n\t\t\t\t$csc.removeClass( 'identified' )\n\n\n\t\t# Public: Perform validation on the credit card info entered\n\t\t#\n\t\t# Return boolean, true if credit card info is valid, false otherwise\n\t\tvalidate_card_data: ->\n\n\t\t\terrors = []\n\n\t\t\tcsc = @payment_fields.find( '.js-sv-wc-payment-gateway-credit-card-form-csc' ).val()\n\n\t\t\t# always validate the CSC if present\n\t\t\tif csc?\n\n\t\t\t\tif csc\n\t\t\t\t\terrors.push( @params.cvv_digits_invalid ) if /\\D/.test( csc )\n\t\t\t\t\terrors.push( @params.cvv_length_invalid ) if csc.length < 3 || csc.length > 4\n\t\t\t\telse if @csc_required\n\t\t\t\t\tif not @saved_payment_method_selected or @csc_required_for_tokens\n\t\t\t\t\t\terrors.push( @params.cvv_missing )\n\n\t\t\t# Only validate the other CC fields if necessary\n\t\t\tif not @saved_payment_method_selected\n\n\t\t\t\taccount_number = @payment_fields.find( '.js-sv-wc-payment-gateway-credit-card-form-account-number' ).val()\n\t\t\t\texpiry = $.payment.cardExpiryVal( @payment_fields.find( '.js-sv-wc-payment-gateway-credit-card-form-expiry' ).val() )\n\n\t\t\t\t# replace any dashes or spaces in the card number\n\t\t\t\taccount_number = account_number.replace( /-|\\s/g, '' )\n\n\t\t\t\t# validate card number\n\t\t\t\tif not account_number\n\t\t\t\t\terrors.push( @params.card_number_missing )\n\t\t\t\telse\n\t\t\t\t\terrors.push( @params.card_number_length_invalid ) if account_number.length < 12 || account_number.length > 19\n\t\t\t\t\terrors.push( @params.card_number_digits_invalid ) if /\\D/.test( account_number )\n\t\t\t\t\terrors.push( @params.card_number_invalid ) unless $.payment.validateCardNumber( account_number ) # performs luhn check\n\n\t\t\t\t# validate expiration date\n\t\t\t\terrors.push( @params.card_exp_date_invalid ) unless $.payment.validateCardExpiry( expiry ) # validates future date\n\n\t\t\tif errors.length > 0\n\t\t\t\tthis.render_errors( errors )\n\t\t\t\treturn false\n\t\t\telse\n\t\t\t\t# get rid of any space/dash characters\n\t\t\t\t@payment_fields.find( '.js-sv-wc-payment-gateway-credit-card-form-account-number' ).val( account_number )\n\t\t\t\treturn true\n\n\n\t\t# Public: Perform validation on the eCheck info entered\n\t\t#\n\t\t# Return boolean, true if eCheck info is valid, false otherwise\n\t\tvalidate_account_data: ->\n\n\t\t\treturn true if @saved_payment_method_selected\n\n\t\t\terrors = []\n\n\t\t\trouting_number = @payment_fields.find('.js-sv-wc-payment-gateway-echeck-form-routing-number').val()\n\t\t\taccount_number = @payment_fields.find('.js-sv-wc-payment-gateway-echeck-form-account-number').val()\n\n\t\t\t# validate routing number\n\t\t\tif not routing_number\n\t\t\t\terrors.push( @params.routing_number_missing )\n\t\t\telse\n\t\t\t\terrors.push( @params.routing_number_length_invalid ) if 9 != routing_number.length\n\t\t\t\terrors.push( @params.routing_number_digits_invalid ) if /\\D/.test( routing_number )\n\n\t\t\t# validate account number\n\t\t\tif not account_number\n\t\t\t\terrors.push( @params.account_number_missing )\n\t\t\telse\n\t\t\t\terrors.push( @params.account_number_length_invalid ) if account_number.length < 3 || account_number.length > 17\n\t\t\t\terrors.push( @params.account_number_invalid ) if /\\D/.test( account_number )\n\n\t\t\tif errors.length > 0\n\t\t\t\tthis.render_errors( errors )\n\t\t\t\treturn false\n\t\t\telse\n\t\t\t\t# get rid of any space/dash characters\n\t\t\t\t@payment_fields.find( '.js-sv-wc-payment-gateway-echeck-form-account-number' ).val( account_number )\n\t\t\t\treturn true\n\n\n\t\t# Public: Render any new errors and bring them into the viewport\n\t\t#\n\t\t# Returns nothing.\n\t\trender_errors: (errors) ->\n\n\t\t\t# hide and remove any previous errors\n\t\t\t$( '.woocommerce-error, .woocommerce-message' ).remove()\n\n\t\t\t# add errors\n\t\t\t@form.prepend '
  • ' + errors.join( '
  • ' ) + '
'\n\n\t\t\t# unblock UI\n\t\t\t@form.removeClass( 'processing' ).unblock()\n\t\t\t@form.find( '.input-text, select' ).blur()\n\n\t\t\t# scroll to top\n\t\t\t$( 'html, body' ).animate( { scrollTop: @form.offset().top - 100 }, 1000 )\n\n\n\t\t# Public: Handle associated actions for saved payment methods\n\t\t#\n\t\t# Returns nothing.\n\t\thandle_saved_payment_methods: ->\n\n\t\t\t# make available inside change events\n\t\t\tid_dasherized = @id_dasherized\n\n\t\t\tcsc_required = @csc_required\n\t\t\tcsc_required_for_tokens = @csc_required_for_tokens\n\n\t\t\t$new_payment_method_selection = $( \"div.js-wc-#{ id_dasherized }-new-payment-method-form\" )\n\t\t\t$csc_field = $new_payment_method_selection.find( '.js-sv-wc-payment-gateway-credit-card-form-csc' ).closest( '.form-row' )\n\n\t\t\t# show/hide the saved payment methods when a saved payment method is de-selected/selected\n\t\t\t$( \"input.js-wc-#{ @id_dasherized }-payment-token\" ).on 'change', ->\n\n\t\t\t\ttokenized_payment_method_selected = $( \"input.js-wc-#{ id_dasherized }-payment-token:checked\" ).val()\n\n\t\t\t\tif tokenized_payment_method_selected\n\n\t\t\t\t\t# using an existing tokenized payment method, hide the 'new method' fields\n\t\t\t\t\t$new_payment_method_selection.slideUp( 200 )\n\n\t\t\t\t\t# move the CSC field out of the 'new method' fields so it can be used with the tokenized transaction\n\t\t\t\t\tif csc_required_for_tokens\n\t\t\t\t\t\t$csc_field.removeClass( 'form-row-last' ).addClass( 'form-row-first' )\n\t\t\t\t\t\t$new_payment_method_selection.after( $csc_field )\n\n\t\t\t\telse\n\t\t\t\t\t# use new payment method, display the 'new method' fields\n\t\t\t\t\t$new_payment_method_selection.slideDown( 200 )\n\n\t\t\t\t\t# move the CSC field back into its regular spot\n\t\t\t\t\tif csc_required_for_tokens\n\t\t\t\t\t\t$csc_field.removeClass( 'form-row-first' ).addClass( 'form-row-last' )\n\t\t\t\t\t\t$new_payment_method_selection.find( '.js-sv-wc-payment-gateway-credit-card-form-expiry' ).closest( '.form-row' ).after( $csc_field )\n\t\t\t.change()\n\n\t\t\t# display the 'save payment method' option for guest checkouts if the 'create account' option is checked\n\t\t\t# but only hide the input if there is a 'create account' checkbox (some themes just display the password)\n\t\t\t$( 'input#createaccount' ).on 'change', ->\n\t\t\t\t$parent_row = $( \"input.js-wc-#{ id_dasherized }-tokenize-payment-method\" ).closest( 'p.form-row' )\n\n\t\t\t\tif $( this ).is( ':checked' )\n\t\t\t\t\t$parent_row.slideDown()\n\t\t\t\t\t$parent_row.next().show()\n\t\t\t\telse\n\t\t\t\t\t$parent_row.hide()\n\t\t\t\t\t$parent_row.next().hide()\n\n\t\t\t$( 'input#createaccount' ).change() unless $( 'input#createaccount' ).is( ':checked' )\n\n\n\t\t# Public: Handle showing/hiding the sample check image\n\t\t#\n\t\t# Returns nothing.\n\t\thandle_sample_check_hint: ->\n\n\t\t\t$sample_check = @payment_fields.find( '.js-sv-wc-payment-gateway-echeck-form-sample-check' )\n\n\t\t\tif $sample_check.is( \":visible\" ) then $sample_check.slideUp() else $sample_check.slideDown()\n\n\n\n\t\t# Blocks the payment form UI\n\t\t#\n\t\t# @since 3.0.0\n\t\tblock_ui: -> @form.block( message: null, overlayCSS: background: '#fff',opacity: 0.6 )\n\n\n\t\t# Unblocks the payment form UI\n\t\t#\n\t\t# @since 3.0.0\n\t\tunblock_ui: -> @form.unblock()\n\n\n\t# dispatch loaded event\n\t$( document.body ).trigger( \"sv_wc_payment_form_handler_v6_0_0_loaded\" )\n"],"names":["indexOf","jQuery","$","window","SV_WC_Payment_Form_Handler_v6_0_0","constructor","args","id","id_dasherized","plugin_id","type","csc_required","csc_required_for_tokens","enabled_card_types","length","form","handle_checkout_page","handle_pay_page","handle_add_payment_method_page","console","log","params","on","handle_sample_check_hint","document","trigger","instance","body","format_credit_card_inputs","set_payment_fields","handle_saved_payment_methods","validate_payment_data","submit","val","payment_fields","$required_fields","find","each","i","input","handler","valid","is","saved_payment_method_selected","validate_card_data","validate_account_data","triggerHandler","payment_form","passed_validation","$card_number","$csc","$expiry","payment","do_inline_credit_card_validation","$card_type","cardType","call","addClass","removeClass","validateCardExpiry","validateCardCVC","account_number","csc","errors","expiry","test","push","cvv_digits_invalid","cvv_length_invalid","cvv_missing","cardExpiryVal","replace","card_number_length_invalid","card_number_digits_invalid","validateCardNumber","card_number_invalid","card_number_missing","card_exp_date_invalid","render_errors","routing_number","routing_number_length_invalid","routing_number_digits_invalid","routing_number_missing","account_number_length_invalid","account_number_invalid","account_number_missing","remove","prepend","join","unblock","blur","animate","scrollTop","offset","top","$csc_field","$new_payment_method_selection","closest","slideUp","after","slideDown","change","$parent_row","next","show","hide","$sample_check","block_ui","block","message","overlayCSS","background","opacity","unblock_ui"],"version":3,"file":"sv-wc-payment-gateway-payment-form.js.map"} \ No newline at end of file +{"mappings":"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","sources":["","woocommerce/payment-gateway/assets/js/frontend/sv-wc-payment-gateway-payment-form.coffee"],"sourcesContent":["(() => {\nvar $a2c1c221aac1d794$exports = {};\n(function() {\n /*\n WooCommerce SkyVerge Payment Gateway Framework Payment Form CoffeeScript\n Version 4.3.0\n\n Copyright (c) 2014-2024, SkyVerge, Inc.\n Licensed under the GNU General Public License v3.0\n http://www.gnu.org/licenses/gpl-3.0.html\n */ var indexOf = [].indexOf;\n jQuery(function($) {\n \"use strict\";\n window.SV_WC_Payment_Form_Handler_v6_0_1 = class SV_WC_Payment_Form_Handler_v6_0_1 {\n // Public: Instantiate Payment Form Handler\n // args - object with properties:\n // id - gateway ID\n // id_dasherized - gateway ID dasherized\n // plugin_id - plugin ID\n // type - gateway type, either `credit-card` or `echeck`\n // csc_required - true if the gateway requires the CSC field to be displayed\n // Returns SV_WC_Payment_Form_Handler_v6_0_1 instance\n constructor(args){\n this.id = args.id;\n this.id_dasherized = args.id_dasherized;\n this.plugin_id = args.plugin_id;\n this.type = args.type;\n this.csc_required = args.csc_required;\n this.csc_required_for_tokens = args.csc_required_for_tokens;\n this.enabled_card_types = args.enabled_card_types;\n // which payment form?\n if ($('form.checkout').length) {\n this.form = $('form.checkout');\n this.handle_checkout_page();\n } else if ($('form#order_review').length) {\n this.form = $('form#order_review');\n this.handle_pay_page();\n } else if ($('form#add_payment_method').length) {\n this.form = $('form#add_payment_method');\n this.handle_add_payment_method_page();\n } else {\n console.log('No payment form found!');\n return;\n }\n // localized error messages\n this.params = window[\"sv_wc_payment_gateway_payment_form_params\"];\n if (this.type === 'echeck') // handle sample check image hint\n this.form.on('click', '.js-sv-wc-payment-gateway-echeck-form-check-hint, .js-sv-wc-payment-gateway-echeck-form-sample-check', ()=>{\n return this.handle_sample_check_hint();\n });\n $(document).trigger('sv_wc_payment_form_handler_init', {\n id: this.id,\n instance: this\n });\n }\n // Public: Handle required actions on the checkout page\n // Returns nothing.\n handle_checkout_page() {\n if (this.type === 'credit-card') // format/validate credit card inputs using jQuery.payment\n $(document.body).on('updated_checkout', ()=>{\n return this.format_credit_card_inputs();\n });\n // updated payment fields jQuery object on each checkout update (prevents stale data)\n $(document.body).on('updated_checkout', ()=>{\n return this.set_payment_fields();\n });\n // handle saved payment methods\n // note on the checkout page, this is bound to `updated_checkout` so it\n // fires even when other parts of the checkout are changed\n $(document.body).on('updated_checkout', ()=>{\n return this.handle_saved_payment_methods();\n });\n // validate payment data before order is submitted\n return this.form.on(`checkout_place_order_${this.id}`, ()=>{\n return this.validate_payment_data();\n });\n }\n // Public: Handle required actions on the Order > Pay page\n // Returns nothing.\n handle_pay_page() {\n this.set_payment_fields();\n // format/validate credit card inputs using jQuery.payment\n if (this.type === 'credit-card') this.format_credit_card_inputs();\n // handle saved payment methods\n this.handle_saved_payment_methods();\n // validate payment data before order is submitted\n return this.form.submit(()=>{\n if ($('#order_review input[name=payment_method]:checked').val() === this.id) // but only when one of our payment gateways is selected\n return this.validate_payment_data();\n });\n }\n // Public: Handle required actions on the Add Payment Method page\n // Returns nothing.\n handle_add_payment_method_page() {\n this.set_payment_fields();\n // format/validate credit card inputs using jQuery.payment\n if (this.type === 'credit-card') this.format_credit_card_inputs();\n // validate payment data before order is submitted\n return this.form.submit(()=>{\n if ($('#add_payment_method input[name=payment_method]:checked').val() === this.id) // but only when one of our payment gateways is selected\n return this.validate_payment_data();\n });\n }\n // Public: Set payment fields class variable, this is done\n // during the updated_checkout event as otherwise the reference to\n // the checkout fields becomes stale (somehow ¯\\_(ツ)_/¯)\n // This ensures payment fields are not marked as \"invalid\" before the customer has interacted with them.\n // Returns nothing.\n set_payment_fields() {\n var $required_fields;\n this.payment_fields = $(`.payment_method_${this.id}`);\n $required_fields = this.payment_fields.find('.validate-required .input-text');\n return $required_fields.each((i, input)=>{\n // if any of the required fields have a value, bail this loop and proceed with WooCommerce validation\n if ($(input).val()) return false;\n // otherwise remove all validation result classes from the inputs, since the form is freshly loaded\n return $(input).trigger('input');\n });\n }\n // Public: Validate Payment data when order is placed\n // Returns boolean, true if payment data is valid, false otherwise\n validate_payment_data() {\n var handler, valid;\n if (this.form.is('.processing')) // bail when already processing\n return false;\n this.saved_payment_method_selected = this.payment_fields.find('.js-sv-wc-payment-gateway-payment-token:checked').val();\n // perform internal validations (all fields present & valid, etc)\n valid = this.type === 'credit-card' ? this.validate_card_data() : this.validate_account_data();\n // let gateways perform their own validation prior to form submission\n handler = $(document.body).triggerHandler('sv_wc_payment_form_valid_payment_data', {\n payment_form: this,\n passed_validation: valid\n }) !== false;\n return valid && handler;\n }\n // Public: format card data using jQuery.Payment\n // Returns nothing.\n format_credit_card_inputs() {\n var $card_number, $csc, $expiry;\n $card_number = $('.js-sv-wc-payment-gateway-credit-card-form-account-number').payment('formatCardNumber');\n $expiry = $('.js-sv-wc-payment-gateway-credit-card-form-expiry').payment('formatCardExpiry');\n $csc = $('.js-sv-wc-payment-gateway-credit-card-form-csc').payment('formatCardCVC');\n if ($card_number.val() && $card_number.val().length > 0) $card_number.trigger('change');\n if ($expiry.val() && $expiry.val().length > 0) $expiry.trigger('change');\n if ($csc.val() && $csc.val().length > 0) $csc.trigger('change');\n // perform inline validation on credit card inputs\n return $('.js-sv-wc-payment-gateway-credit-card-form-input').on('change paste keyup', ()=>{\n return this.do_inline_credit_card_validation();\n });\n }\n // Public: perform inline validation on credit card fields\n // Returns nothing.\n do_inline_credit_card_validation() {\n var $card_number, $card_type, $csc, $expiry;\n $card_number = $('.js-sv-wc-payment-gateway-credit-card-form-account-number');\n $expiry = $('.js-sv-wc-payment-gateway-credit-card-form-expiry');\n $csc = $('.js-sv-wc-payment-gateway-credit-card-form-csc');\n $card_type = $.payment.cardType($card_number.val());\n if (indexOf.call(this.enabled_card_types, $card_type) < 0) $card_number.addClass('invalid-card-type');\n else $card_number.removeClass('invalid-card-type');\n if ($.payment.validateCardExpiry($expiry.payment('cardExpiryVal'))) $expiry.addClass('identified');\n else $expiry.removeClass('identified');\n if ($.payment.validateCardCVC($csc.val())) return $csc.addClass('identified');\n else return $csc.removeClass('identified');\n }\n // Public: Perform validation on the credit card info entered\n // Return boolean, true if credit card info is valid, false otherwise\n validate_card_data() {\n var account_number, csc, errors, expiry;\n errors = [];\n csc = this.payment_fields.find('.js-sv-wc-payment-gateway-credit-card-form-csc').val();\n // always validate the CSC if present\n if (csc != null) {\n if (csc) {\n if (/\\D/.test(csc)) errors.push(this.params.cvv_digits_invalid);\n if (csc.length < 3 || csc.length > 4) errors.push(this.params.cvv_length_invalid);\n } else if (this.csc_required) {\n if (!this.saved_payment_method_selected || this.csc_required_for_tokens) errors.push(this.params.cvv_missing);\n }\n }\n // Only validate the other CC fields if necessary\n if (!this.saved_payment_method_selected) {\n account_number = this.payment_fields.find('.js-sv-wc-payment-gateway-credit-card-form-account-number').val();\n expiry = $.payment.cardExpiryVal(this.payment_fields.find('.js-sv-wc-payment-gateway-credit-card-form-expiry').val());\n // replace any dashes or spaces in the card number\n account_number = account_number.replace(/-|\\s/g, '');\n // validate card number\n if (!account_number) errors.push(this.params.card_number_missing);\n else {\n if (account_number.length < 12 || account_number.length > 19) errors.push(this.params.card_number_length_invalid);\n if (/\\D/.test(account_number)) errors.push(this.params.card_number_digits_invalid);\n if (!$.payment.validateCardNumber(account_number)) errors.push(this.params.card_number_invalid);\n }\n if (!$.payment.validateCardExpiry(expiry)) // validate expiration date\n errors.push(this.params.card_exp_date_invalid);\n }\n if (errors.length > 0) {\n this.render_errors(errors);\n return false;\n } else {\n // get rid of any space/dash characters\n this.payment_fields.find('.js-sv-wc-payment-gateway-credit-card-form-account-number').val(account_number);\n return true;\n }\n }\n // Public: Perform validation on the eCheck info entered\n // Return boolean, true if eCheck info is valid, false otherwise\n validate_account_data() {\n var account_number, errors, routing_number;\n if (this.saved_payment_method_selected) return true;\n errors = [];\n routing_number = this.payment_fields.find('.js-sv-wc-payment-gateway-echeck-form-routing-number').val();\n account_number = this.payment_fields.find('.js-sv-wc-payment-gateway-echeck-form-account-number').val();\n // validate routing number\n if (!routing_number) errors.push(this.params.routing_number_missing);\n else {\n if (9 !== routing_number.length) errors.push(this.params.routing_number_length_invalid);\n if (/\\D/.test(routing_number)) errors.push(this.params.routing_number_digits_invalid);\n }\n // validate account number\n if (!account_number) errors.push(this.params.account_number_missing);\n else {\n if (account_number.length < 3 || account_number.length > 17) errors.push(this.params.account_number_length_invalid);\n if (/\\D/.test(account_number)) errors.push(this.params.account_number_invalid);\n }\n if (errors.length > 0) {\n this.render_errors(errors);\n return false;\n } else {\n // get rid of any space/dash characters\n this.payment_fields.find('.js-sv-wc-payment-gateway-echeck-form-account-number').val(account_number);\n return true;\n }\n }\n // Public: Render any new errors and bring them into the viewport\n // Returns nothing.\n render_errors(errors) {\n // hide and remove any previous errors\n $('.woocommerce-error, .woocommerce-message').remove();\n // add errors\n this.form.prepend('
  • ' + errors.join('
  • ') + '
');\n // unblock UI\n this.form.removeClass('processing').unblock();\n this.form.find('.input-text, select').blur();\n // scroll to top\n return $('html, body').animate({\n scrollTop: this.form.offset().top - 100\n }, 1000);\n }\n // Public: Handle associated actions for saved payment methods\n // Returns nothing.\n handle_saved_payment_methods() {\n var $csc_field, $new_payment_method_selection, csc_required, csc_required_for_tokens, id_dasherized;\n // make available inside change events\n id_dasherized = this.id_dasherized;\n csc_required = this.csc_required;\n csc_required_for_tokens = this.csc_required_for_tokens;\n $new_payment_method_selection = $(`div.js-wc-${id_dasherized}-new-payment-method-form`);\n $csc_field = $new_payment_method_selection.find('.js-sv-wc-payment-gateway-credit-card-form-csc').closest('.form-row');\n // show/hide the saved payment methods when a saved payment method is de-selected/selected\n $(`input.js-wc-${this.id_dasherized}-payment-token`).on('change', function() {\n var tokenized_payment_method_selected;\n tokenized_payment_method_selected = $(`input.js-wc-${id_dasherized}-payment-token:checked`).val();\n if (tokenized_payment_method_selected) {\n // using an existing tokenized payment method, hide the 'new method' fields\n $new_payment_method_selection.slideUp(200);\n // move the CSC field out of the 'new method' fields so it can be used with the tokenized transaction\n if (csc_required_for_tokens) {\n $csc_field.removeClass('form-row-last').addClass('form-row-first');\n return $new_payment_method_selection.after($csc_field);\n }\n } else {\n // use new payment method, display the 'new method' fields\n $new_payment_method_selection.slideDown(200);\n // move the CSC field back into its regular spot\n if (csc_required_for_tokens) {\n $csc_field.removeClass('form-row-first').addClass('form-row-last');\n return $new_payment_method_selection.find('.js-sv-wc-payment-gateway-credit-card-form-expiry').closest('.form-row').after($csc_field);\n }\n }\n }).change();\n // display the 'save payment method' option for guest checkouts if the 'create account' option is checked\n // but only hide the input if there is a 'create account' checkbox (some themes just display the password)\n $('input#createaccount').on('change', function() {\n var $parent_row;\n $parent_row = $(`input.js-wc-${id_dasherized}-tokenize-payment-method`).closest('p.form-row');\n if ($(this).is(':checked')) {\n $parent_row.slideDown();\n return $parent_row.next().show();\n } else {\n $parent_row.hide();\n return $parent_row.next().hide();\n }\n });\n if (!$('input#createaccount').is(':checked')) return $('input#createaccount').change();\n }\n // Public: Handle showing/hiding the sample check image\n // Returns nothing.\n handle_sample_check_hint() {\n var $sample_check;\n $sample_check = this.payment_fields.find('.js-sv-wc-payment-gateway-echeck-form-sample-check');\n if ($sample_check.is(\":visible\")) return $sample_check.slideUp();\n else return $sample_check.slideDown();\n }\n // Blocks the payment form UI\n // @since 3.0.0\n block_ui() {\n return this.form.block({\n message: null,\n overlayCSS: {\n background: '#fff',\n opacity: 0.6\n }\n });\n }\n // Unblocks the payment form UI\n // @since 3.0.0\n unblock_ui() {\n return this.form.unblock();\n }\n };\n // dispatch loaded event\n return $(document.body).trigger(\"sv_wc_payment_form_handler_v6_0_1_loaded\");\n });\n}).call($a2c1c221aac1d794$exports);\n\n})();\n//# sourceMappingURL=sv-wc-payment-gateway-payment-form.js.map\n","###\n WooCommerce SkyVerge Payment Gateway Framework Payment Form CoffeeScript\n Version 4.3.0\n\n Copyright (c) 2014-2024, SkyVerge, Inc.\n Licensed under the GNU General Public License v3.0\n http://www.gnu.org/licenses/gpl-3.0.html\n###\njQuery ( $ ) ->\n\t\"use strict\"\n\n\n\tclass window.SV_WC_Payment_Form_Handler_v6_0_1\n\n\n\t\t# Public: Instantiate Payment Form Handler\n\t\t#\n\t\t# args - object with properties:\n\t\t# id - gateway ID\n\t\t# id_dasherized - gateway ID dasherized\n\t\t# plugin_id - plugin ID\n\t\t# type - gateway type, either `credit-card` or `echeck`\n\t\t# csc_required - true if the gateway requires the CSC field to be displayed\n\t\t#\n\t\t# Returns SV_WC_Payment_Form_Handler_v6_0_1 instance\n\t\tconstructor: (args) ->\n\n\t\t\t@id = args.id\n\t\t\t@id_dasherized = args.id_dasherized\n\t\t\t@plugin_id = args.plugin_id\n\t\t\t@type = args.type\n\t\t\t@csc_required = args.csc_required\n\t\t\t@csc_required_for_tokens = args.csc_required_for_tokens\n\t\t\t@enabled_card_types = args.enabled_card_types\n\n\t\t\t# which payment form?\n\t\t\tif $( 'form.checkout' ).length\n\t\t\t\t@form = $( 'form.checkout' )\n\t\t\t\tthis.handle_checkout_page()\n\n\t\t\telse if $( 'form#order_review' ).length\n\t\t\t\t@form = $( 'form#order_review' )\n\t\t\t\tthis.handle_pay_page()\n\n\t\t\telse if $( 'form#add_payment_method' ).length\n\t\t\t\t@form = $( 'form#add_payment_method' )\n\t\t\t\tthis.handle_add_payment_method_page()\n\n\t\t\telse\n\t\t\t\tconsole.log( 'No payment form found!' )\n\t\t\t\treturn\n\n\t\t\t# localized error messages\n\t\t\t@params = window[ \"sv_wc_payment_gateway_payment_form_params\" ]\n\n\t\t\t# handle sample check image hint\n\t\t\t@form.on( 'click', '.js-sv-wc-payment-gateway-echeck-form-check-hint, .js-sv-wc-payment-gateway-echeck-form-sample-check', => this.handle_sample_check_hint() ) if @type is 'echeck'\n\n\t\t\t$( document ).trigger( 'sv_wc_payment_form_handler_init', { id: @id, instance: @ } )\n\n\n\t\t# Public: Handle required actions on the checkout page\n\t\t#\n\t\t# Returns nothing.\n\t\thandle_checkout_page: ->\n\n\t\t\t# format/validate credit card inputs using jQuery.payment\n\t\t\t$( document.body ).on( 'updated_checkout', => this.format_credit_card_inputs() ) if @type is 'credit-card'\n\n\t\t\t# updated payment fields jQuery object on each checkout update (prevents stale data)\n\t\t\t$( document.body ).on( 'updated_checkout', => this.set_payment_fields() )\n\n\t\t\t# handle saved payment methods\n\t\t\t# note on the checkout page, this is bound to `updated_checkout` so it\n\t\t\t# fires even when other parts of the checkout are changed\n\t\t\t$( document.body ).on( 'updated_checkout', => this.handle_saved_payment_methods() )\n\n\t\t\t# validate payment data before order is submitted\n\t\t\t@form.on( \"checkout_place_order_#{ @id }\", => this.validate_payment_data() )\n\n\n\t\t# Public: Handle required actions on the Order > Pay page\n\t\t#\n\t\t# Returns nothing.\n\t\thandle_pay_page: ->\n\n\t\t\tthis.set_payment_fields()\n\n\t\t\t# format/validate credit card inputs using jQuery.payment\n\t\t\tif @type is 'credit-card'\n\t\t\t\tthis.format_credit_card_inputs()\n\n\t\t\t# handle saved payment methods\n\t\t\tthis.handle_saved_payment_methods()\n\n\t\t\t# validate payment data before order is submitted\n\t\t\t@form.submit =>\n\n\t\t\t\t# but only when one of our payment gateways is selected\n\t\t\t\treturn this.validate_payment_data() if $( '#order_review input[name=payment_method]:checked' ).val() is @id\n\n\n\t\t# Public: Handle required actions on the Add Payment Method page\n\t\t#\n\t\t# Returns nothing.\n\t\thandle_add_payment_method_page: ->\n\n\t\t\tthis.set_payment_fields()\n\n\t\t\t# format/validate credit card inputs using jQuery.payment\n\t\t\tif @type is 'credit-card'\n\t\t\t\tthis.format_credit_card_inputs()\n\n\t\t\t# validate payment data before order is submitted\n\t\t\t@form.submit =>\n\n\t\t\t\t# but only when one of our payment gateways is selected\n\t\t\t\treturn this.validate_payment_data() if $( '#add_payment_method input[name=payment_method]:checked' ).val() is @id\n\n\n\t\t# Public: Set payment fields class variable, this is done\n\t\t# during the updated_checkout event as otherwise the reference to\n\t\t# the checkout fields becomes stale (somehow ¯\\_(ツ)_/¯)\n\t\t#\n\t\t# This ensures payment fields are not marked as \"invalid\" before the customer has interacted with them.\n\t\t#\n\t\t# Returns nothing.\n\t\tset_payment_fields: ->\n\n\t\t\t@payment_fields = $( \".payment_method_#{ @id }\" )\n\n\t\t\t$required_fields = @payment_fields.find( '.validate-required .input-text' )\n\n\t\t\t$required_fields.each( ( i, input ) =>\n\n\t\t\t\t# if any of the required fields have a value, bail this loop and proceed with WooCommerce validation\n\t\t\t\tif $( input ).val()\n\t\t\t\t\treturn false\n\n\t\t\t\t# otherwise remove all validation result classes from the inputs, since the form is freshly loaded\n\t\t\t\t$( input ).trigger( 'input' )\n\t\t\t)\n\n\n\t\t# Public: Validate Payment data when order is placed\n\t\t#\n\t\t# Returns boolean, true if payment data is valid, false otherwise\n\t\tvalidate_payment_data: ->\n\n\t\t\t# bail when already processing\n\t\t\treturn false if @form.is( '.processing' )\n\n\t\t\t@saved_payment_method_selected = @payment_fields.find( '.js-sv-wc-payment-gateway-payment-token:checked' ).val()\n\n\t\t\t# perform internal validations (all fields present & valid, etc)\n\t\t\tvalid = if @type is 'credit-card' then this.validate_card_data() else this.validate_account_data()\n\n\t\t\t# let gateways perform their own validation prior to form submission\n\t\t\thandler = $( document.body ).triggerHandler( 'sv_wc_payment_form_valid_payment_data', { payment_form: this, passed_validation: valid } ) isnt false\n\n\t\t\treturn valid && handler\n\n\n\t\t# Public: format card data using jQuery.Payment\n\t\t#\n\t\t# Returns nothing.\n\t\tformat_credit_card_inputs: ->\n\t\t\t$card_number = $('.js-sv-wc-payment-gateway-credit-card-form-account-number').payment('formatCardNumber');\n\t\t\t$expiry = $('.js-sv-wc-payment-gateway-credit-card-form-expiry').payment('formatCardExpiry');\n\t\t\t$csc = $('.js-sv-wc-payment-gateway-credit-card-form-csc').payment('formatCardCVC');\n\n\t\t\t# trigger a 'change' event for non empty fields only\n\t\t\t$card_number.trigger( 'change') if $card_number.val() && $card_number.val().length > 0\n\t\t\t$expiry.trigger( 'change') if $expiry.val() && $expiry.val().length > 0\n\t\t\t$csc.trigger( 'change') if $csc.val() && $csc.val().length > 0\n\n\t\t\t# perform inline validation on credit card inputs\n\t\t\t$( '.js-sv-wc-payment-gateway-credit-card-form-input' ).on( 'change paste keyup', => this.do_inline_credit_card_validation() )\n\n\n\t\t# Public: perform inline validation on credit card fields\n\t\t#\n\t\t# Returns nothing.\n\t\tdo_inline_credit_card_validation: ->\n\n\t\t\t$card_number = $( '.js-sv-wc-payment-gateway-credit-card-form-account-number' )\n\t\t\t$expiry = $( '.js-sv-wc-payment-gateway-credit-card-form-expiry' )\n\t\t\t$csc = $( '.js-sv-wc-payment-gateway-credit-card-form-csc' )\n\n\t\t\t$card_type = $.payment.cardType( $card_number.val() )\n\n\t\t\tif $card_type not in @enabled_card_types\n\t\t\t\t$card_number.addClass( 'invalid-card-type' )\n\t\t\telse\n\t\t\t\t$card_number.removeClass( 'invalid-card-type' )\n\n\t\t\tif $.payment.validateCardExpiry( $expiry.payment( 'cardExpiryVal' ) )\n\t\t\t\t$expiry.addClass( 'identified' )\n\t\t\telse\n\t\t\t\t$expiry.removeClass( 'identified' )\n\n\t\t\tif $.payment.validateCardCVC( $csc.val() )\n\t\t\t\t$csc.addClass( 'identified' )\n\t\t\telse\n\t\t\t\t$csc.removeClass( 'identified' )\n\n\n\t\t# Public: Perform validation on the credit card info entered\n\t\t#\n\t\t# Return boolean, true if credit card info is valid, false otherwise\n\t\tvalidate_card_data: ->\n\n\t\t\terrors = []\n\n\t\t\tcsc = @payment_fields.find( '.js-sv-wc-payment-gateway-credit-card-form-csc' ).val()\n\n\t\t\t# always validate the CSC if present\n\t\t\tif csc?\n\n\t\t\t\tif csc\n\t\t\t\t\terrors.push( @params.cvv_digits_invalid ) if /\\D/.test( csc )\n\t\t\t\t\terrors.push( @params.cvv_length_invalid ) if csc.length < 3 || csc.length > 4\n\t\t\t\telse if @csc_required\n\t\t\t\t\tif not @saved_payment_method_selected or @csc_required_for_tokens\n\t\t\t\t\t\terrors.push( @params.cvv_missing )\n\n\t\t\t# Only validate the other CC fields if necessary\n\t\t\tif not @saved_payment_method_selected\n\n\t\t\t\taccount_number = @payment_fields.find( '.js-sv-wc-payment-gateway-credit-card-form-account-number' ).val()\n\t\t\t\texpiry = $.payment.cardExpiryVal( @payment_fields.find( '.js-sv-wc-payment-gateway-credit-card-form-expiry' ).val() )\n\n\t\t\t\t# replace any dashes or spaces in the card number\n\t\t\t\taccount_number = account_number.replace( /-|\\s/g, '' )\n\n\t\t\t\t# validate card number\n\t\t\t\tif not account_number\n\t\t\t\t\terrors.push( @params.card_number_missing )\n\t\t\t\telse\n\t\t\t\t\terrors.push( @params.card_number_length_invalid ) if account_number.length < 12 || account_number.length > 19\n\t\t\t\t\terrors.push( @params.card_number_digits_invalid ) if /\\D/.test( account_number )\n\t\t\t\t\terrors.push( @params.card_number_invalid ) unless $.payment.validateCardNumber( account_number ) # performs luhn check\n\n\t\t\t\t# validate expiration date\n\t\t\t\terrors.push( @params.card_exp_date_invalid ) unless $.payment.validateCardExpiry( expiry ) # validates future date\n\n\t\t\tif errors.length > 0\n\t\t\t\tthis.render_errors( errors )\n\t\t\t\treturn false\n\t\t\telse\n\t\t\t\t# get rid of any space/dash characters\n\t\t\t\t@payment_fields.find( '.js-sv-wc-payment-gateway-credit-card-form-account-number' ).val( account_number )\n\t\t\t\treturn true\n\n\n\t\t# Public: Perform validation on the eCheck info entered\n\t\t#\n\t\t# Return boolean, true if eCheck info is valid, false otherwise\n\t\tvalidate_account_data: ->\n\n\t\t\treturn true if @saved_payment_method_selected\n\n\t\t\terrors = []\n\n\t\t\trouting_number = @payment_fields.find('.js-sv-wc-payment-gateway-echeck-form-routing-number').val()\n\t\t\taccount_number = @payment_fields.find('.js-sv-wc-payment-gateway-echeck-form-account-number').val()\n\n\t\t\t# validate routing number\n\t\t\tif not routing_number\n\t\t\t\terrors.push( @params.routing_number_missing )\n\t\t\telse\n\t\t\t\terrors.push( @params.routing_number_length_invalid ) if 9 != routing_number.length\n\t\t\t\terrors.push( @params.routing_number_digits_invalid ) if /\\D/.test( routing_number )\n\n\t\t\t# validate account number\n\t\t\tif not account_number\n\t\t\t\terrors.push( @params.account_number_missing )\n\t\t\telse\n\t\t\t\terrors.push( @params.account_number_length_invalid ) if account_number.length < 3 || account_number.length > 17\n\t\t\t\terrors.push( @params.account_number_invalid ) if /\\D/.test( account_number )\n\n\t\t\tif errors.length > 0\n\t\t\t\tthis.render_errors( errors )\n\t\t\t\treturn false\n\t\t\telse\n\t\t\t\t# get rid of any space/dash characters\n\t\t\t\t@payment_fields.find( '.js-sv-wc-payment-gateway-echeck-form-account-number' ).val( account_number )\n\t\t\t\treturn true\n\n\n\t\t# Public: Render any new errors and bring them into the viewport\n\t\t#\n\t\t# Returns nothing.\n\t\trender_errors: (errors) ->\n\n\t\t\t# hide and remove any previous errors\n\t\t\t$( '.woocommerce-error, .woocommerce-message' ).remove()\n\n\t\t\t# add errors\n\t\t\t@form.prepend '
  • ' + errors.join( '
  • ' ) + '
'\n\n\t\t\t# unblock UI\n\t\t\t@form.removeClass( 'processing' ).unblock()\n\t\t\t@form.find( '.input-text, select' ).blur()\n\n\t\t\t# scroll to top\n\t\t\t$( 'html, body' ).animate( { scrollTop: @form.offset().top - 100 }, 1000 )\n\n\n\t\t# Public: Handle associated actions for saved payment methods\n\t\t#\n\t\t# Returns nothing.\n\t\thandle_saved_payment_methods: ->\n\n\t\t\t# make available inside change events\n\t\t\tid_dasherized = @id_dasherized\n\n\t\t\tcsc_required = @csc_required\n\t\t\tcsc_required_for_tokens = @csc_required_for_tokens\n\n\t\t\t$new_payment_method_selection = $( \"div.js-wc-#{ id_dasherized }-new-payment-method-form\" )\n\t\t\t$csc_field = $new_payment_method_selection.find( '.js-sv-wc-payment-gateway-credit-card-form-csc' ).closest( '.form-row' )\n\n\t\t\t# show/hide the saved payment methods when a saved payment method is de-selected/selected\n\t\t\t$( \"input.js-wc-#{ @id_dasherized }-payment-token\" ).on 'change', ->\n\n\t\t\t\ttokenized_payment_method_selected = $( \"input.js-wc-#{ id_dasherized }-payment-token:checked\" ).val()\n\n\t\t\t\tif tokenized_payment_method_selected\n\n\t\t\t\t\t# using an existing tokenized payment method, hide the 'new method' fields\n\t\t\t\t\t$new_payment_method_selection.slideUp( 200 )\n\n\t\t\t\t\t# move the CSC field out of the 'new method' fields so it can be used with the tokenized transaction\n\t\t\t\t\tif csc_required_for_tokens\n\t\t\t\t\t\t$csc_field.removeClass( 'form-row-last' ).addClass( 'form-row-first' )\n\t\t\t\t\t\t$new_payment_method_selection.after( $csc_field )\n\n\t\t\t\telse\n\t\t\t\t\t# use new payment method, display the 'new method' fields\n\t\t\t\t\t$new_payment_method_selection.slideDown( 200 )\n\n\t\t\t\t\t# move the CSC field back into its regular spot\n\t\t\t\t\tif csc_required_for_tokens\n\t\t\t\t\t\t$csc_field.removeClass( 'form-row-first' ).addClass( 'form-row-last' )\n\t\t\t\t\t\t$new_payment_method_selection.find( '.js-sv-wc-payment-gateway-credit-card-form-expiry' ).closest( '.form-row' ).after( $csc_field )\n\t\t\t.change()\n\n\t\t\t# display the 'save payment method' option for guest checkouts if the 'create account' option is checked\n\t\t\t# but only hide the input if there is a 'create account' checkbox (some themes just display the password)\n\t\t\t$( 'input#createaccount' ).on 'change', ->\n\t\t\t\t$parent_row = $( \"input.js-wc-#{ id_dasherized }-tokenize-payment-method\" ).closest( 'p.form-row' )\n\n\t\t\t\tif $( this ).is( ':checked' )\n\t\t\t\t\t$parent_row.slideDown()\n\t\t\t\t\t$parent_row.next().show()\n\t\t\t\telse\n\t\t\t\t\t$parent_row.hide()\n\t\t\t\t\t$parent_row.next().hide()\n\n\t\t\t$( 'input#createaccount' ).change() unless $( 'input#createaccount' ).is( ':checked' )\n\n\n\t\t# Public: Handle showing/hiding the sample check image\n\t\t#\n\t\t# Returns nothing.\n\t\thandle_sample_check_hint: ->\n\n\t\t\t$sample_check = @payment_fields.find( '.js-sv-wc-payment-gateway-echeck-form-sample-check' )\n\n\t\t\tif $sample_check.is( \":visible\" ) then $sample_check.slideUp() else $sample_check.slideDown()\n\n\n\n\t\t# Blocks the payment form UI\n\t\t#\n\t\t# @since 3.0.0\n\t\tblock_ui: -> @form.block( message: null, overlayCSS: background: '#fff',opacity: 0.6 )\n\n\n\t\t# Unblocks the payment form UI\n\t\t#\n\t\t# @since 3.0.0\n\t\tunblock_ui: -> @form.unblock()\n\n\n\t# dispatch loaded event\n\t$( document.body ).trigger( \"sv_wc_payment_form_handler_v6_0_1_loaded\" )\n"],"names":["indexOf","jQuery","$","window","SV_WC_Payment_Form_Handler_v6_0_1","constructor","args","id","id_dasherized","plugin_id","type","csc_required","csc_required_for_tokens","enabled_card_types","length","form","handle_checkout_page","handle_pay_page","handle_add_payment_method_page","console","log","params","on","handle_sample_check_hint","document","trigger","instance","body","format_credit_card_inputs","set_payment_fields","handle_saved_payment_methods","validate_payment_data","submit","val","payment_fields","$required_fields","find","each","i","input","handler","valid","is","saved_payment_method_selected","validate_card_data","validate_account_data","triggerHandler","payment_form","passed_validation","$card_number","$csc","$expiry","payment","do_inline_credit_card_validation","$card_type","cardType","call","addClass","removeClass","validateCardExpiry","validateCardCVC","account_number","csc","errors","expiry","test","push","cvv_digits_invalid","cvv_length_invalid","cvv_missing","cardExpiryVal","replace","card_number_length_invalid","card_number_digits_invalid","validateCardNumber","card_number_invalid","card_number_missing","card_exp_date_invalid","render_errors","routing_number","routing_number_length_invalid","routing_number_digits_invalid","routing_number_missing","account_number_length_invalid","account_number_invalid","account_number_missing","remove","prepend","join","unblock","blur","animate","scrollTop","offset","top","$csc_field","$new_payment_method_selection","closest","slideUp","after","slideDown","change","$parent_row","next","show","hide","$sample_check","block_ui","block","message","overlayCSS","background","opacity","unblock_ui"],"version":3,"file":"sv-wc-payment-gateway-payment-form.js.map"} \ No newline at end of file diff --git a/woocommerce/payment-gateway/assets/js/frontend/sv-wc-payment-gateway-apple-pay.coffee b/woocommerce/payment-gateway/assets/js/frontend/sv-wc-payment-gateway-apple-pay.coffee index e9387e261..66d7e6889 100644 --- a/woocommerce/payment-gateway/assets/js/frontend/sv-wc-payment-gateway-apple-pay.coffee +++ b/woocommerce/payment-gateway/assets/js/frontend/sv-wc-payment-gateway-apple-pay.coffee @@ -14,7 +14,7 @@ jQuery ( $ ) -> # The WooCommerce Apple Pay handler base class. # # @since 4.7.0 - class window.SV_WC_Apple_Pay_Handler_v6_0_0 + class window.SV_WC_Apple_Pay_Handler_v6_0_1 # Constructs the handler. @@ -440,4 +440,4 @@ jQuery ( $ ) -> # dispatch loaded event - $( document.body ).trigger( 'sv_wc_apple_pay_handler_v6_0_0_loaded' ) + $( document.body ).trigger( 'sv_wc_apple_pay_handler_v6_0_1_loaded' ) diff --git a/woocommerce/payment-gateway/assets/js/frontend/sv-wc-payment-gateway-google-pay.js b/woocommerce/payment-gateway/assets/js/frontend/sv-wc-payment-gateway-google-pay.js index d01750be3..9477ebab1 100644 --- a/woocommerce/payment-gateway/assets/js/frontend/sv-wc-payment-gateway-google-pay.js +++ b/woocommerce/payment-gateway/assets/js/frontend/sv-wc-payment-gateway-google-pay.js @@ -7,9 +7,9 @@ jQuery( function( $ ) { * * @since 5.10.0 * - * @type {SV_WC_Google_Pay_Handler_v6_0_0} object + * @type {SV_WC_Google_Pay_Handler_v6_0_1} object */ - window.SV_WC_Google_Pay_Handler_v6_0_0 = class SV_WC_Google_Pay_Handler_v6_0_0 { + window.SV_WC_Google_Pay_Handler_v6_0_1 = class SV_WC_Google_Pay_Handler_v6_0_1 { /** * Handler constructor. @@ -612,6 +612,6 @@ jQuery( function( $ ) { } } - $( document.body ).trigger( 'sv_wc_google_pay_handler_v6_0_0_loaded' ); + $( document.body ).trigger( 'sv_wc_google_pay_handler_v6_0_1_loaded' ); } ); diff --git a/woocommerce/payment-gateway/assets/js/frontend/sv-wc-payment-gateway-my-payment-methods.coffee b/woocommerce/payment-gateway/assets/js/frontend/sv-wc-payment-gateway-my-payment-methods.coffee index a4618f46f..3cc48f92d 100644 --- a/woocommerce/payment-gateway/assets/js/frontend/sv-wc-payment-gateway-my-payment-methods.coffee +++ b/woocommerce/payment-gateway/assets/js/frontend/sv-wc-payment-gateway-my-payment-methods.coffee @@ -12,7 +12,7 @@ jQuery ( $ ) -> # The My Payment Methods handler. # # @since 5.1.0 - class window.SV_WC_Payment_Methods_Handler_v6_0_0 + class window.SV_WC_Payment_Methods_Handler_v6_0_1 # Constructs the class. @@ -272,4 +272,4 @@ jQuery ( $ ) -> # dispatch loaded event - $( document.body ).trigger( 'sv_wc_payment_methods_handler_v6_0_0_loaded' ) + $( document.body ).trigger( 'sv_wc_payment_methods_handler_v6_0_1_loaded' ) diff --git a/woocommerce/payment-gateway/assets/js/frontend/sv-wc-payment-gateway-payment-form.coffee b/woocommerce/payment-gateway/assets/js/frontend/sv-wc-payment-gateway-payment-form.coffee index c6bc57f28..da9e236f3 100644 --- a/woocommerce/payment-gateway/assets/js/frontend/sv-wc-payment-gateway-payment-form.coffee +++ b/woocommerce/payment-gateway/assets/js/frontend/sv-wc-payment-gateway-payment-form.coffee @@ -10,7 +10,7 @@ jQuery ( $ ) -> "use strict" - class window.SV_WC_Payment_Form_Handler_v6_0_0 + class window.SV_WC_Payment_Form_Handler_v6_0_1 # Public: Instantiate Payment Form Handler @@ -22,7 +22,7 @@ jQuery ( $ ) -> # type - gateway type, either `credit-card` or `echeck` # csc_required - true if the gateway requires the CSC field to be displayed # - # Returns SV_WC_Payment_Form_Handler_v6_0_0 instance + # Returns SV_WC_Payment_Form_Handler_v6_0_1 instance constructor: (args) -> @id = args.id @@ -385,4 +385,4 @@ jQuery ( $ ) -> # dispatch loaded event - $( document.body ).trigger( "sv_wc_payment_form_handler_v6_0_0_loaded" ) + $( document.body ).trigger( "sv_wc_payment_form_handler_v6_0_1_loaded" ) diff --git a/woocommerce/payment-gateway/class-sv-wc-payment-gateway-direct.php b/woocommerce/payment-gateway/class-sv-wc-payment-gateway-direct.php index 50b5fe054..8f5451f22 100644 --- a/woocommerce/payment-gateway/class-sv-wc-payment-gateway-direct.php +++ b/woocommerce/payment-gateway/class-sv-wc-payment-gateway-direct.php @@ -22,15 +22,15 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; -use SkyVerge\WooCommerce\PluginFramework\v6_0_0\Blocks\Blocks_Handler; -use SkyVerge\WooCommerce\PluginFramework\v6_0_0\Helpers\OrderHelper; -use SkyVerge\WooCommerce\PluginFramework\v6_0_0\Payment_Gateway\Dynamic_Props; +use SkyVerge\WooCommerce\PluginFramework\v6_0_1\Blocks\Blocks_Handler; +use SkyVerge\WooCommerce\PluginFramework\v6_0_1\Helpers\OrderHelper; +use SkyVerge\WooCommerce\PluginFramework\v6_0_1\Payment_Gateway\Dynamic_Props; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WC_Payment_Gateway_Direct' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WC_Payment_Gateway_Direct' ) ) : /** diff --git a/woocommerce/payment-gateway/class-sv-wc-payment-gateway-helper.php b/woocommerce/payment-gateway/class-sv-wc-payment-gateway-helper.php index 5cf5a4402..3ae1d440f 100755 --- a/woocommerce/payment-gateway/class-sv-wc-payment-gateway-helper.php +++ b/woocommerce/payment-gateway/class-sv-wc-payment-gateway-helper.php @@ -22,11 +22,11 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WC_Payment_Gateway_Helper' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WC_Payment_Gateway_Helper' ) ) : /** diff --git a/woocommerce/payment-gateway/class-sv-wc-payment-gateway-hosted.php b/woocommerce/payment-gateway/class-sv-wc-payment-gateway-hosted.php index e37a2496b..ea73bf5f2 100644 --- a/woocommerce/payment-gateway/class-sv-wc-payment-gateway-hosted.php +++ b/woocommerce/payment-gateway/class-sv-wc-payment-gateway-hosted.php @@ -22,14 +22,14 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; -use SkyVerge\WooCommerce\PluginFramework\v6_0_0\Helpers\OrderHelper; +use SkyVerge\WooCommerce\PluginFramework\v6_0_1\Helpers\OrderHelper; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WC_Payment_Gateway_Hosted' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WC_Payment_Gateway_Hosted' ) ) : /** diff --git a/woocommerce/payment-gateway/class-sv-wc-payment-gateway-my-payment-methods.php b/woocommerce/payment-gateway/class-sv-wc-payment-gateway-my-payment-methods.php index 52642c4a4..8f0cff402 100644 --- a/woocommerce/payment-gateway/class-sv-wc-payment-gateway-my-payment-methods.php +++ b/woocommerce/payment-gateway/class-sv-wc-payment-gateway-my-payment-methods.php @@ -22,11 +22,11 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WC_Payment_Gateway_My_Payment_Methods' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WC_Payment_Gateway_My_Payment_Methods' ) ) : /** @@ -174,9 +174,9 @@ public function maybe_enqueue_styles_scripts() { wp_register_script( 'jquery-tiptip', WC()->plugin_url() . '/assets/js/jquery-tiptip/jquery.tipTip.min.js', [ 'jquery' ], $wc_version ); - wp_enqueue_style( "$handle-v6_0_0", $this->get_plugin()->get_payment_gateway_framework_assets_url() . '/css/frontend/' . $handle . '.min.css', [ 'dashicons' ], $fw_version ); + wp_enqueue_style( "$handle-v6_0_1", $this->get_plugin()->get_payment_gateway_framework_assets_url() . '/css/frontend/' . $handle . '.min.css', [ 'dashicons' ], $fw_version ); - wp_enqueue_script( "$handle-v6_0_0", $this->get_plugin()->get_payment_gateway_framework_assets_url() . '/dist/frontend/' . $handle . '.js', [ 'jquery-tiptip', 'jquery' ], $fw_version ); + wp_enqueue_script( "$handle-v6_0_1", $this->get_plugin()->get_payment_gateway_framework_assets_url() . '/dist/frontend/' . $handle . '.js', [ 'jquery-tiptip', 'jquery' ], $fw_version ); } diff --git a/woocommerce/payment-gateway/class-sv-wc-payment-gateway-payment-form.php b/woocommerce/payment-gateway/class-sv-wc-payment-gateway-payment-form.php index 0a4a77881..44e85c287 100644 --- a/woocommerce/payment-gateway/class-sv-wc-payment-gateway-payment-form.php +++ b/woocommerce/payment-gateway/class-sv-wc-payment-gateway-payment-form.php @@ -22,15 +22,15 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; -use SkyVerge\WooCommerce\PluginFramework\v6_0_0\Blocks\Blocks_Handler; -use SkyVerge\WooCommerce\PluginFramework\v6_0_0\Enums\PaymentFormContext; -use SkyVerge\WooCommerce\PluginFramework\v6_0_0\Payment_Gateway\Blocks\Gateway_Checkout_Block_Integration; +use SkyVerge\WooCommerce\PluginFramework\v6_0_1\Blocks\Blocks_Handler; +use SkyVerge\WooCommerce\PluginFramework\v6_0_1\Enums\PaymentFormContext; +use SkyVerge\WooCommerce\PluginFramework\v6_0_1\Payment_Gateway\Blocks\Gateway_Checkout_Block_Integration; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WC_Payment_Gateway_Payment_Form' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WC_Payment_Gateway_Payment_Form' ) ) : /** @@ -1180,7 +1180,7 @@ protected function get_js_handler_args() { if ( is_array( $card_types ) && ! empty( $card_types ) ) { - $args['enabled_card_types'] = array_map( [ 'SkyVerge\WooCommerce\PluginFramework\v6_0_0\SV_WC_Payment_Gateway_Helper', 'normalize_card_type' ], $card_types ); + $args['enabled_card_types'] = array_map( [ 'SkyVerge\WooCommerce\PluginFramework\v6_0_1\SV_WC_Payment_Gateway_Helper', 'normalize_card_type' ], $card_types ); } } diff --git a/woocommerce/payment-gateway/class-sv-wc-payment-gateway-plugin.php b/woocommerce/payment-gateway/class-sv-wc-payment-gateway-plugin.php index 7d545b7e6..600622d1f 100644 --- a/woocommerce/payment-gateway/class-sv-wc-payment-gateway-plugin.php +++ b/woocommerce/payment-gateway/class-sv-wc-payment-gateway-plugin.php @@ -22,16 +22,16 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; use Automattic\WooCommerce\Admin\Notes\WC_Admin_Note; use Automattic\WooCommerce\Admin\Notes\WC_Admin_Notes; -use SkyVerge\WooCommerce\PluginFramework\v6_0_0\Payment_Gateway\Blocks\Gateway_Blocks_Handler; -use SkyVerge\WooCommerce\PluginFramework\v6_0_0\Payment_Gateway\External_Checkout\Google_Pay\Google_Pay; +use SkyVerge\WooCommerce\PluginFramework\v6_0_1\Payment_Gateway\Blocks\Gateway_Blocks_Handler; +use SkyVerge\WooCommerce\PluginFramework\v6_0_1\Payment_Gateway\External_Checkout\Google_Pay\Google_Pay; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WC_Payment_Gateway_Plugin' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WC_Payment_Gateway_Plugin' ) ) : /** diff --git a/woocommerce/payment-gateway/class-sv-wc-payment-gateway-privacy.php b/woocommerce/payment-gateway/class-sv-wc-payment-gateway-privacy.php index e72b88012..72bb15f78 100644 --- a/woocommerce/payment-gateway/class-sv-wc-payment-gateway-privacy.php +++ b/woocommerce/payment-gateway/class-sv-wc-payment-gateway-privacy.php @@ -22,11 +22,11 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WC_Payment_Gateway_Privacy' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WC_Payment_Gateway_Privacy' ) ) : /** diff --git a/woocommerce/payment-gateway/class-sv-wc-payment-gateway.php b/woocommerce/payment-gateway/class-sv-wc-payment-gateway.php index c821269fe..1c3287571 100755 --- a/woocommerce/payment-gateway/class-sv-wc-payment-gateway.php +++ b/woocommerce/payment-gateway/class-sv-wc-payment-gateway.php @@ -22,18 +22,18 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; use Automattic\WooCommerce\Blocks\Integrations\IntegrationInterface; -use SkyVerge\WooCommerce\PluginFramework\v6_0_0\Blocks\Blocks_Handler; -use SkyVerge\WooCommerce\PluginFramework\v6_0_0\Helpers\OrderHelper; -use SkyVerge\WooCommerce\PluginFramework\v6_0_0\Payment_Gateway\Blocks\Gateway_Checkout_Block_Integration; -use SkyVerge\WooCommerce\PluginFramework\v6_0_0\Payment_Gateway\Dynamic_Props; +use SkyVerge\WooCommerce\PluginFramework\v6_0_1\Blocks\Blocks_Handler; +use SkyVerge\WooCommerce\PluginFramework\v6_0_1\Helpers\OrderHelper; +use SkyVerge\WooCommerce\PluginFramework\v6_0_1\Payment_Gateway\Blocks\Gateway_Checkout_Block_Integration; +use SkyVerge\WooCommerce\PluginFramework\v6_0_1\Payment_Gateway\Dynamic_Props; use stdClass; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WC_Payment_Gateway' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WC_Payment_Gateway' ) ) : /** @@ -475,7 +475,7 @@ protected function enqueue_payment_form_assets() { } $handle = 'sv-wc-payment-gateway-payment-form'; - $versioned_handle = $handle . '-v6_0_0'; + $versioned_handle = $handle . '-v6_0_1'; // Frontend JS wp_enqueue_script( $versioned_handle, $this->get_plugin()->get_payment_gateway_framework_assets_url() . '/dist/frontend/' . $handle . '.js', array( 'jquery-payment' ), SV_WC_Plugin::VERSION, true ); diff --git a/woocommerce/payment-gateway/exceptions/class-sv-wc-payment-gateway-exception.php b/woocommerce/payment-gateway/exceptions/class-sv-wc-payment-gateway-exception.php index 363d101c8..3cfe41663 100644 --- a/woocommerce/payment-gateway/exceptions/class-sv-wc-payment-gateway-exception.php +++ b/woocommerce/payment-gateway/exceptions/class-sv-wc-payment-gateway-exception.php @@ -22,11 +22,11 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WC_Payment_Gateway_Exception' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WC_Payment_Gateway_Exception' ) ) : /** diff --git a/woocommerce/payment-gateway/integrations/abstract-sv-wc-payment-gateway-integration.php b/woocommerce/payment-gateway/integrations/abstract-sv-wc-payment-gateway-integration.php index 9c527a152..564560b29 100644 --- a/woocommerce/payment-gateway/integrations/abstract-sv-wc-payment-gateway-integration.php +++ b/woocommerce/payment-gateway/integrations/abstract-sv-wc-payment-gateway-integration.php @@ -22,11 +22,11 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WC_Payment_Gateway_Integration' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WC_Payment_Gateway_Integration' ) ) : /** diff --git a/woocommerce/payment-gateway/integrations/class-sv-wc-payment-gateway-integration-pre-orders.php b/woocommerce/payment-gateway/integrations/class-sv-wc-payment-gateway-integration-pre-orders.php index bdfb9afe8..771175d66 100644 --- a/woocommerce/payment-gateway/integrations/class-sv-wc-payment-gateway-integration-pre-orders.php +++ b/woocommerce/payment-gateway/integrations/class-sv-wc-payment-gateway-integration-pre-orders.php @@ -22,14 +22,14 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; -use SkyVerge\WooCommerce\PluginFramework\v6_0_0\Helpers\OrderHelper; -use SkyVerge\WooCommerce\PluginFramework\v6_0_0\Payment_Gateway\Dynamic_Props; +use SkyVerge\WooCommerce\PluginFramework\v6_0_1\Helpers\OrderHelper; +use SkyVerge\WooCommerce\PluginFramework\v6_0_1\Payment_Gateway\Dynamic_Props; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WC_Payment_Gateway_Integration_Pre_Orders' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WC_Payment_Gateway_Integration_Pre_Orders' ) ) : /** diff --git a/woocommerce/payment-gateway/integrations/class-sv-wc-payment-gateway-integration-subscriptions.php b/woocommerce/payment-gateway/integrations/class-sv-wc-payment-gateway-integration-subscriptions.php index b832f78ed..3a588319e 100644 --- a/woocommerce/payment-gateway/integrations/class-sv-wc-payment-gateway-integration-subscriptions.php +++ b/woocommerce/payment-gateway/integrations/class-sv-wc-payment-gateway-integration-subscriptions.php @@ -22,14 +22,14 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; -use SkyVerge\WooCommerce\PluginFramework\v6_0_0\Helpers\OrderHelper; -use SkyVerge\WooCommerce\PluginFramework\v6_0_0\Payment_Gateway\Dynamic_Props; +use SkyVerge\WooCommerce\PluginFramework\v6_0_1\Helpers\OrderHelper; +use SkyVerge\WooCommerce\PluginFramework\v6_0_1\Payment_Gateway\Dynamic_Props; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WC_Payment_Gateway_Integration_Subscriptions' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WC_Payment_Gateway_Integration_Subscriptions' ) ) : /** diff --git a/woocommerce/payment-gateway/payment-tokens/class-sv-wc-payment-gateway-payment-token.php b/woocommerce/payment-gateway/payment-tokens/class-sv-wc-payment-gateway-payment-token.php index f309455b8..efa84f503 100644 --- a/woocommerce/payment-gateway/payment-tokens/class-sv-wc-payment-gateway-payment-token.php +++ b/woocommerce/payment-gateway/payment-tokens/class-sv-wc-payment-gateway-payment-token.php @@ -22,11 +22,11 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WC_Payment_Gateway_Payment_Token' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WC_Payment_Gateway_Payment_Token' ) ) : /** diff --git a/woocommerce/payment-gateway/payment-tokens/class-sv-wc-payment-gateway-payment-tokens-handler.php b/woocommerce/payment-gateway/payment-tokens/class-sv-wc-payment-gateway-payment-tokens-handler.php index a923af614..7caabd33d 100644 --- a/woocommerce/payment-gateway/payment-tokens/class-sv-wc-payment-gateway-payment-tokens-handler.php +++ b/woocommerce/payment-gateway/payment-tokens/class-sv-wc-payment-gateway-payment-tokens-handler.php @@ -22,13 +22,13 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; -use SkyVerge\WooCommerce\PluginFramework\v6_0_0\Helpers\OrderHelper; +use SkyVerge\WooCommerce\PluginFramework\v6_0_1\Helpers\OrderHelper; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WC_Payment_Gateway_Payment_Tokens_Handler' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WC_Payment_Gateway_Payment_Tokens_Handler' ) ) : /** diff --git a/woocommerce/payment-gateway/rest-api/class-sv-wc-payment-gateway-plugin-rest-api.php b/woocommerce/payment-gateway/rest-api/class-sv-wc-payment-gateway-plugin-rest-api.php index 610ebe205..f26f1212a 100644 --- a/woocommerce/payment-gateway/rest-api/class-sv-wc-payment-gateway-plugin-rest-api.php +++ b/woocommerce/payment-gateway/rest-api/class-sv-wc-payment-gateway-plugin-rest-api.php @@ -22,19 +22,19 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0\Payment_Gateway; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1\Payment_Gateway; -use SkyVerge\WooCommerce\PluginFramework\v6_0_0\REST_API as Plugin_REST_API; +use SkyVerge\WooCommerce\PluginFramework\v6_0_1\REST_API as Plugin_REST_API; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\Payment_Gateway\\REST_API' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\Payment_Gateway\\REST_API' ) ) : /** * The payment gateway plugin REST API handler class. * - * @see \SkyVerge\WooCommerce\PluginFramework\v6_0_0\REST_API + * @see \SkyVerge\WooCommerce\PluginFramework\v6_0_1\REST_API * * @since 5.2.0 */ @@ -47,7 +47,7 @@ class REST_API extends Plugin_REST_API { * * Plugins can override this to add their own data. * - * @see \SkyVerge\WooCommerce\PluginFramework\v6_0_0\REST_API::get_system_status_data() + * @see \SkyVerge\WooCommerce\PluginFramework\v6_0_1\REST_API::get_system_status_data() * * @since 5.2.0 * diff --git a/woocommerce/rest-api/Controllers/Settings.php b/woocommerce/rest-api/Controllers/Settings.php index 3bba41167..c0bc8b5e1 100644 --- a/woocommerce/rest-api/Controllers/Settings.php +++ b/woocommerce/rest-api/Controllers/Settings.php @@ -22,14 +22,14 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0\REST_API\Controllers; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1\REST_API\Controllers; -use SkyVerge\WooCommerce\PluginFramework\v6_0_0\Settings_API\Abstract_Settings; -use SkyVerge\WooCommerce\PluginFramework\v6_0_0\Settings_API\Setting; +use SkyVerge\WooCommerce\PluginFramework\v6_0_1\Settings_API\Abstract_Settings; +use SkyVerge\WooCommerce\PluginFramework\v6_0_1\Settings_API\Setting; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\REST_API\\Controllers\\Settings' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\REST_API\\Controllers\\Settings' ) ) : /** diff --git a/woocommerce/rest-api/class-sv-wc-plugin-rest-api.php b/woocommerce/rest-api/class-sv-wc-plugin-rest-api.php index e2253f40b..f667ebd62 100644 --- a/woocommerce/rest-api/class-sv-wc-plugin-rest-api.php +++ b/woocommerce/rest-api/class-sv-wc-plugin-rest-api.php @@ -22,11 +22,11 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\REST_API' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\REST_API' ) ) : /** diff --git a/woocommerce/utilities/class-sv-wp-async-request.php b/woocommerce/utilities/class-sv-wp-async-request.php index 019a33db5..6c6a7f17d 100644 --- a/woocommerce/utilities/class-sv-wp-async-request.php +++ b/woocommerce/utilities/class-sv-wp-async-request.php @@ -23,11 +23,11 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WP_Async_Request' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WP_Async_Request' ) ) : /** diff --git a/woocommerce/utilities/class-sv-wp-background-job-handler.php b/woocommerce/utilities/class-sv-wp-background-job-handler.php index b27a15ed0..524454766 100644 --- a/woocommerce/utilities/class-sv-wp-background-job-handler.php +++ b/woocommerce/utilities/class-sv-wp-background-job-handler.php @@ -23,11 +23,11 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; +namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WP_Background_Job_Handler' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WP_Background_Job_Handler' ) ) : /** diff --git a/woocommerce/utilities/class-sv-wp-job-batch-handler.php b/woocommerce/utilities/class-sv-wp-job-batch-handler.php index b54dd5cfb..9eadd84fa 100644 --- a/woocommerce/utilities/class-sv-wp-job-batch-handler.php +++ b/woocommerce/utilities/class-sv-wp-job-batch-handler.php @@ -22,11 +22,11 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ - namespace SkyVerge\WooCommerce\PluginFramework\v6_0_0; + namespace SkyVerge\WooCommerce\PluginFramework\v6_0_1; defined( 'ABSPATH' ) or exit; - if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_0\\SV_WP_Job_Batch_Handler' ) ) : + if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v6_0_1\\SV_WP_Job_Batch_Handler' ) ) : /**