diff --git a/composer.json b/composer.json index 8e03b5787..7f97638ae 100644 --- a/composer.json +++ b/composer.json @@ -1,7 +1,7 @@ { "name": "skyverge/wc-plugin-framework", "description": "The official SkyVerge WooCommerce plugin framework", - "version": "5.15.10", + "version": "5.15.11", "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\\v5_15_10\\": "woocommerce/" + "SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\": "woocommerce/" } }, "autoload-dev": { "psr-4": { - "SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\Tests\\": "tests/" + "SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\Tests\\": "tests/" } }, "config": { diff --git a/package-lock.json b/package-lock.json index 5e45f41a7..3c1b1b504 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "wc-plugin-framework", - "version": "5.15.10", + "version": "5.15.11", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "wc-plugin-framework", - "version": "5.15.10", + "version": "5.15.11", "license": "GPL-3.0", "devDependencies": { "@parcel/transformer-coffeescript": "^2.13.3", diff --git a/package.json b/package.json index 82f6db1c6..d8fe9d77f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wc-plugin-framework", - "version": "5.15.10", + "version": "5.15.11", "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 bf4bf8d92..ee0d7875c 100644 --- a/tests/TestCase.php +++ b/tests/TestCase.php @@ -1,6 +1,6 @@ assertInstanceOf( '\SkyVerge\WooCommerce\PluginFramework\v5_15_10\SV_WC_Plugin_Dependencies', $this->get_plugin()->get_dependency_handler() ); + $this->assertInstanceOf( '\SkyVerge\WooCommerce\PluginFramework\v5_15_11\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\v5_15_10\Plugin\Lifecycle', $this->get_plugin()->get_lifecycle_handler() ); + $this->assertInstanceOf( '\SkyVerge\WooCommerce\PluginFramework\v5_15_11\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 343c48cc1..159ca9c93 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_v5_15_10_loaded\', load_gateway_test_plugin_payment_methods_handler );', $wc_queued_js ); + $this->assertStringContainsString( 'window.jQuery( document.body ).on( \'sv_wc_payment_methods_handler_v5_15_11_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 818d63caf..7826c97d8 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_v5_15_10_loaded\', load_test_gateway_payment_form_handler );', $wc_queued_js ); + $this->assertStringContainsString( 'window.jQuery( document.body ).on( \'sv_wc_payment_form_handler_v5_15_11_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 824034673..dcde68019 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_v5_15_10_loaded\', load_test_gateway_apple_pay_handler );', $wc_queued_js ); + $this->assertStringContainsString( 'window.jQuery( document.body ).on( \'sv_wc_apple_pay_handler_v5_15_11_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 b480aeada..225a74e63 100644 --- a/tests/unit/API/CacheableRequestTraitTest.php +++ b/tests/unit/API/CacheableRequestTraitTest.php @@ -1,9 +1,9 @@ \SkyVerge\WooCommerce\PluginFramework\v5_15_10\Country_Helper::class, - PaymentFormContextChecker::class => \SkyVerge\WooCommerce\PluginFramework\v5_15_10\PaymentFormContextChecker::class, + Country_Helper::class => \SkyVerge\WooCommerce\PluginFramework\v5_15_11\Country_Helper::class, + PaymentFormContextChecker::class => \SkyVerge\WooCommerce\PluginFramework\v5_15_11\PaymentFormContextChecker::class, ]; foreach ($aliases as $alias) { diff --git a/tests/unit/HelperTest.php b/tests/unit/HelperTest.php index f8eb1a02b..2eafa4101 100644 --- a/tests/unit/HelperTest.php +++ b/tests/unit/HelperTest.php @@ -1,20 +1,20 @@ js_handler_base_class_name ); + return sprintf( '%s_v5_15_11', $this->js_handler_base_class_name ); } diff --git a/woocommerce/Helpers/ArrayHelper.php b/woocommerce/Helpers/ArrayHelper.php index 1172d0a12..948860f12 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\v5_15_10\Helpers; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11\Helpers; use ArrayAccess; diff --git a/woocommerce/Helpers/NumberHelper.php b/woocommerce/Helpers/NumberHelper.php index 516f43ff1..9e4b728bb 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\v5_15_10\Helpers; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11\Helpers; class NumberHelper { diff --git a/woocommerce/Helpers/PageHelper.php b/woocommerce/Helpers/PageHelper.php index 3907bf6dd..99d868441 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\v5_15_10\Helpers; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11\Helpers; class PageHelper { diff --git a/woocommerce/Plugin/Lifecycle.php b/woocommerce/Plugin/Lifecycle.php index 5d3b960dc..1e2ebe780 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\v5_15_10\Plugin; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11\Plugin; -use SkyVerge\WooCommerce\PluginFramework\v5_15_10\Admin\Notes_Helper; -use SkyVerge\WooCommerce\PluginFramework\v5_15_10\SV_WC_Payment_Gateway_Plugin; -use SkyVerge\WooCommerce\PluginFramework\v5_15_10\SV_WC_Plugin; -use SkyVerge\WooCommerce\PluginFramework\v5_15_10\SV_WC_Plugin_Compatibility; +use SkyVerge\WooCommerce\PluginFramework\v5_15_11\Admin\Notes_Helper; +use SkyVerge\WooCommerce\PluginFramework\v5_15_11\SV_WC_Payment_Gateway_Plugin; +use SkyVerge\WooCommerce\PluginFramework\v5_15_11\SV_WC_Plugin; +use SkyVerge\WooCommerce\PluginFramework\v5_15_11\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 9d5930049..0ea6a364d 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\v5_15_10\Settings_API; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11\Settings_API; -use SkyVerge\WooCommerce\PluginFramework\v5_15_10 as Framework; +use SkyVerge\WooCommerce\PluginFramework\v5_15_11 as Framework; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\Settings_API\\Abstract_Settings' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\Settings_API\\Abstract_Settings' ) ) : /** diff --git a/woocommerce/Settings_API/Control.php b/woocommerce/Settings_API/Control.php index 48f8160ef..f8e460e81 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\v5_15_10\Settings_API; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11\Settings_API; -use SkyVerge\WooCommerce\PluginFramework\v5_15_10 as Framework; +use SkyVerge\WooCommerce\PluginFramework\v5_15_11 as Framework; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\Settings_API\\Control' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\Settings_API\\Control' ) ) : /** diff --git a/woocommerce/Settings_API/Setting.php b/woocommerce/Settings_API/Setting.php index db0622a53..db9230f6a 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\v5_15_10\Settings_API; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11\Settings_API; -use SkyVerge\WooCommerce\PluginFramework\v5_15_10 as Framework; +use SkyVerge\WooCommerce\PluginFramework\v5_15_11 as Framework; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\Settings_API\\Setting' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\Settings_API\\Setting' ) ) : /** diff --git a/woocommerce/Traits/CanConvertToArrayTrait.php b/woocommerce/Traits/CanConvertToArrayTrait.php index e1160aeaa..8f682856b 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\v5_15_10\Traits; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11\Traits; use ReflectionClass; use ReflectionProperty; -use SkyVerge\WooCommerce\PluginFramework\v5_15_10\Helpers\ArrayHelper; +use SkyVerge\WooCommerce\PluginFramework\v5_15_11\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 a932ac514..274ce1629 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\v5_15_10\Traits; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11\Traits; defined('ABSPATH') or exit; -if (trait_exists('\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\Traits\\CanGetNewInstanceTrait')) { +if (trait_exists('\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\Traits\\CanGetNewInstanceTrait')) { return; } diff --git a/woocommerce/Traits/IsSingletonTrait.php b/woocommerce/Traits/IsSingletonTrait.php index 3107ba48d..65cd87092 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\v5_15_10\Traits; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11\Traits; defined('ABSPATH') or exit; -if (trait_exists('\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\Traits\\IsSingletonTrait')) { +if (trait_exists('\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\Traits\\IsSingletonTrait')) { return; } diff --git a/woocommerce/admin/Notes_Helper.php b/woocommerce/admin/Notes_Helper.php index 3ea16dedf..40c66b0d4 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\v5_15_10\Admin; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11\Admin; use Automattic\WooCommerce\Admin\Notes as WooCommerce_Admin_Notes; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\Admin\\Notes_Helper' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\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 62c575ffd..94568d2a3 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\v5_15_10\Admin; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11\Admin; defined( 'ABSPATH' ) or exit; -use SkyVerge\WooCommerce\PluginFramework\v5_15_10 as Framework; +use SkyVerge\WooCommerce\PluginFramework\v5_15_11 as Framework; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\Admin\\Setup_Wizard' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\Admin\\Setup_Wizard' ) ) : /** diff --git a/woocommerce/api/Abstract_Cacheable_API_Base.php b/woocommerce/api/Abstract_Cacheable_API_Base.php index 28c0d1b08..24e42d679 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\v5_15_10\API; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11\API; -use SkyVerge\WooCommerce\PluginFramework\v5_15_10\SV_WC_API_Base; -use SkyVerge\WooCommerce\PluginFramework\v5_15_10\API\Traits\Cacheable_Request_Trait; +use SkyVerge\WooCommerce\PluginFramework\v5_15_11\SV_WC_API_Base; +use SkyVerge\WooCommerce\PluginFramework\v5_15_11\API\Traits\Cacheable_Request_Trait; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\API\\Abstract_Cacheable_API_Base' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\API\\Abstract_Cacheable_API_Base' ) ) : /** diff --git a/woocommerce/api/Traits/Cacheable_Request_Trait.php b/woocommerce/api/Traits/Cacheable_Request_Trait.php index f623b8308..18e9b70e0 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\v5_15_10\API\Traits; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11\API\Traits; defined( 'ABSPATH' ) or exit; -if ( ! trait_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\API\\Traits\\Cacheable_Request_Trait' ) ) : +if ( ! trait_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\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 8b5755ecd..eea99e14c 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\v5_15_10; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\SV_WC_API_JSON_Request' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\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 5ba0c72d4..a700c3a18 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\v5_15_10; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\SV_WC_API_JSON_Response' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\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 3cc5df88f..b941a73df 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\v5_15_10; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\SV_WC_API_XML_Request' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\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 5dd4b7ed1..91373d71e 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\v5_15_10; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\SV_WC_API_XML_Response' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\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 e0dda02ff..39b7833a9 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\v5_15_10; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\SV_WC_API_Base' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\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 6c701f88c..da7ad4092 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\v5_15_10; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\SV_WC_API_Exception' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\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 b596d83cc..5518e3012 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\v5_15_10; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11; defined( 'ABSPATH' ) or exit; -if ( ! interface_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\SV_WC_API_Request' ) ) : +if ( ! interface_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\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 755a65d71..e07604393 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\v5_15_10; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11; defined( 'ABSPATH' ) or exit; -if ( ! interface_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\SV_WC_API_Response' ) ) : +if ( ! interface_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\SV_WC_API_Response' ) ) : /** diff --git a/woocommerce/changelog.txt b/woocommerce/changelog.txt index f4c951db4..45f06d9d7 100644 --- a/woocommerce/changelog.txt +++ b/woocommerce/changelog.txt @@ -1,5 +1,7 @@ *** SkyVerge WooCommerce Plugin Framework Changelog *** +2025.nn.nn - version 5.15.11 + 2025.nn.nn - version 5.15.10 2025.nn.nn - version 5.15.9 diff --git a/woocommerce/class-sv-wc-admin-notice-handler.php b/woocommerce/class-sv-wc-admin-notice-handler.php index 669af8163..a580db45f 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\v5_15_10; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\SV_WC_Admin_Notice_Handler' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\SV_WC_Admin_Notice_Handler' ) ) : /** diff --git a/woocommerce/class-sv-wc-helper.php b/woocommerce/class-sv-wc-helper.php index b131aa2c3..4cf88d6e0 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\v5_15_10; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11; -use SkyVerge\WooCommerce\PluginFramework\v5_15_10\Helpers\NumberHelper; +use SkyVerge\WooCommerce\PluginFramework\v5_15_11\Helpers\NumberHelper; use WC_Data; use WP_Post; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\SV_WC_Helper' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\SV_WC_Helper' ) ) : /** diff --git a/woocommerce/class-sv-wc-hook-deprecator.php b/woocommerce/class-sv-wc-hook-deprecator.php index 57a7ff3f4..a6a68ae3b 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\v5_15_10; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\SV_WC_Hook_Deprecator' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\SV_WC_Hook_Deprecator' ) ) : /** diff --git a/woocommerce/class-sv-wc-plugin-compatibility.php b/woocommerce/class-sv-wc-plugin-compatibility.php index 51368a32e..6948bee33 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\v5_15_10; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11; use Automattic\WooCommerce\Utilities\OrderUtil; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\SV_WC_Plugin_Compatibility' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\SV_WC_Plugin_Compatibility' ) ) : /** diff --git a/woocommerce/class-sv-wc-plugin-dependencies.php b/woocommerce/class-sv-wc-plugin-dependencies.php index 410336b60..caea7870e 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\v5_15_10; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\SV_WC_Plugin_Dependencies' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\SV_WC_Plugin_Dependencies' ) ) : /** diff --git a/woocommerce/class-sv-wc-plugin-exception.php b/woocommerce/class-sv-wc-plugin-exception.php index 753a801e5..e319f957d 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\v5_15_10; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\SV_WC_Plugin_Exception' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\SV_WC_Plugin_Exception' ) ) : /** diff --git a/woocommerce/class-sv-wc-plugin.php b/woocommerce/class-sv-wc-plugin.php index 7553fe499..2d0d17d56 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\v5_15_10; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11; use Automattic\WooCommerce\Utilities\FeaturesUtil; -use SkyVerge\WooCommerce\PluginFramework\v5_15_10\Handlers\Country_Helper; -use SkyVerge\WooCommerce\PluginFramework\v5_15_10\Payment_Gateway\PaymentFormContextChecker; +use SkyVerge\WooCommerce\PluginFramework\v5_15_11\Handlers\Country_Helper; +use SkyVerge\WooCommerce\PluginFramework\v5_15_11\Payment_Gateway\PaymentFormContextChecker; use stdClass; use Throwable; use WC_Logger_Interface; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\SV_WC_Plugin' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\SV_WC_Plugin' ) ) : /** @@ -51,7 +51,7 @@ abstract class SV_WC_Plugin { /** Plugin Framework Version */ - public const VERSION = '5.15.10'; + public const VERSION = '5.15.11'; /** @var object single instance of plugin */ protected static $instance; @@ -487,7 +487,7 @@ private function includes() { */ protected function setupClassAliases() : void { - $countryHelperAlias = '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\Country_Helper'; + $countryHelperAlias = '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\Country_Helper'; if (! class_exists($countryHelperAlias)) { class_alias( Country_Helper::class, @@ -495,7 +495,7 @@ class_alias( ); } - $paymentFormContextCheckerAlias = '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\PaymentFormContextChecker'; + $paymentFormContextCheckerAlias = '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\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 12bf91797..05f531026 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\v5_15_10; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\SV_WP_Admin_Message_Handler' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\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 cdf82aac1..76ed50954 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\v5_15_10; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\SV_WC_Data_Compatibility' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\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 1243d0ee6..175784285 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\v5_15_10; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11; 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\\v5_15_10\\SV_WC_Order_Compatibility' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\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 6e66e408e..86d5dc90a 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\v5_15_10; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\SV_WC_Subscription_Compatibility' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\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 987ad91cc..430997809 100644 --- a/woocommerce/i18n/languages/woocommerce-plugin-framework.pot +++ b/woocommerce/i18n/languages/woocommerce-plugin-framework.pot @@ -1,16 +1,16 @@ # 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-05-08T11:10:34+00:00\n" +"POT-Creation-Date: 2025-05-16T13:01:12+00:00\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"X-Generator: WP-CLI 2.12.0\n" +"X-Generator: WP-CLI 2.11.0\n" "X-Domain: woocommerce-plugin-framework\n" #. Plugin Name of the plugin @@ -39,12 +39,10 @@ msgid "http://www.woocommerce.com" msgstr "" #: woocommerce/admin/abstract-sv-wc-plugin-admin-setup-wizard.php:183 -#, php-format msgid "Thanks for installing %1$s! To get started, take a minute to %2$sread the documentation%3$s :)" msgstr "" #: woocommerce/admin/abstract-sv-wc-plugin-admin-setup-wizard.php:211 -#, php-format msgid "Thanks for installing %1$s! To get started, take a minute to complete these %2$squick and easy setup steps%3$s :)" msgstr "" @@ -54,7 +52,6 @@ msgstr "" #. translators: Placeholders: %s - plugin name #: woocommerce/admin/abstract-sv-wc-plugin-admin-setup-wizard.php:304 -#, php-format msgid "%s › Setup" msgstr "" @@ -118,7 +115,6 @@ msgstr "" #. translators: Placeholder: %s - plugin name #: woocommerce/admin/abstract-sv-wc-plugin-admin-setup-wizard.php:585 -#, php-format msgid "Welcome to %s!" msgstr "" @@ -128,7 +124,6 @@ msgstr "" #. translators: Placeholder: %s - the plugin name #: woocommerce/admin/abstract-sv-wc-plugin-admin-setup-wizard.php:617 -#, php-format msgid "%s is ready!" msgstr "" @@ -184,7 +179,6 @@ msgstr "" #. translators: Context: WordPress blocks and shortcodes. Placeholders: %1$s - Plugin name, %2$s - opening HTML tag, %3$s - closing HTML tag, %4$s - opening HTML tag, %5$s - `[woocommerce_checkout]` shortcode tag, %6$s - closing HTML tag #: woocommerce/Blocks/Blocks_Handler.php:271 -#, php-format msgid "%1$s is not yet compatible with the Checkout block. We recommend %2$sfollowing this guide%3$s to revert to the %4$s%5$s shortcode%6$s." msgstr "" @@ -195,7 +189,6 @@ msgstr "" #. translators: Context: WordPress blocks and shortcodes. Placeholders: %1$s - Plugin name, %2$s - opening HTML tag, %3$s - closing HTML tag, %4$s - opening HTML tag, %5$s - `[woocommerce_cart]` shortcode tag, %6$s - closing HTML tag #: woocommerce/Blocks/Blocks_Handler.php:302 -#, php-format msgid "%1$s is not yet compatible with the Cart block. We recommend %2$sfollowing this guide%3$s to revert to the %4$s%5$s shortcode%6$s." msgstr "" @@ -207,7 +200,6 @@ msgstr[1] "" #. translators: Context is for plugins to activate or deactivate. HTML Placeholders: %1$s - tag, %2$s - tag, %3$s - tag, %4$s - tag, %5$s - tag, %6$s - tag, %7$s - tag, %8$s - tag #: woocommerce/class-sv-wc-framework-bootstrap.php:283 -#, php-format msgid "To resolve this, please %1$supdate%2$s (recommended) %3$sor%4$s %5$sdeactivate%6$s the above plugin, or %7$sdeactivate the following%8$s:" msgid_plural "To resolve this, please %1$supdate%2$s (recommended) %3$sor%4$s %5$sdeactivate%6$s the above plugins, or %7$sdeactivate the following%8$s:" msgstr[0] "" @@ -223,13 +215,11 @@ msgstr "" #. translators: Placeholders: %1$s - plugin name, %2$s - WooCommerce version number #: woocommerce/class-sv-wc-framework-bootstrap.php:309 -#, php-format msgid "%1$s requires WooCommerce %2$s or newer" msgstr "" #. translators: Placeholders: %1$s - tag, %2$s - tag #: woocommerce/class-sv-wc-framework-bootstrap.php:313 -#, php-format msgid "Please %1$supdate WooCommerce%2$s" msgstr "" @@ -240,7 +230,6 @@ msgstr "" #. translators: A list of items, for example: "US or Canada", or "US, Canada, or Mexico". English uses Oxford comma before the conjunction ("or") if there are at least 2 items preceding it - hence the use of plural forms. If your locale does not use Oxford comma, you can just provide the same translation to all plural forms. Placeholders: %1$s - a comma-separated list of item, %2$s - the final item in the list #: woocommerce/class-sv-wc-helper.php:477 -#, php-format msgid "%1$s or %2$s" msgid_plural "%1$s, or %2$s" msgstr[0] "" @@ -248,7 +237,6 @@ msgstr[1] "" #. translators: A list of items, for example: "US and Canada", or "US, Canada, and Mexico". English uses Oxford comma before the conjunction ("and") if there are at least 2 items preceding it - hence the use of plural forms. If your locale does not use Oxford comma, you can just provide the same translation to all plural forms. Placeholders: %1$s - a comma-separated list of items, %2$s - the final item in the list #: woocommerce/class-sv-wc-helper.php:483 -#, php-format msgid "%1$s and %2$s" msgid_plural "%1$s, and %2$s" msgstr[0] "" @@ -256,7 +244,6 @@ msgstr[1] "" #. translators: Placeholders: %1$s - plugin name, %2$s - a PHP extension/comma-separated list of PHP extensions #: woocommerce/class-sv-wc-plugin-dependencies.php:157 -#, php-format msgid "%1$s requires the %2$s PHP extension to function. Contact your host or server administrator to install and configure the missing extension." msgid_plural "%1$s requires the following PHP extensions to function: %2$s. Contact your host or server administrator to install and configure the missing extensions." msgstr[0] "" @@ -264,7 +251,6 @@ msgstr[1] "" #. translators: Placeholders: %1$s - plugin name, %2$s - a PHP function/comma-separated list of PHP functions #: woocommerce/class-sv-wc-plugin-dependencies.php:185 -#, php-format msgid "%1$s requires the %2$s PHP function to exist. Contact your host or server administrator to install and configure the missing function." msgid_plural "%1$s requires the following PHP functions to exist: %2$s. Contact your host or server administrator to install and configure the missing functions." msgstr[0] "" @@ -272,7 +258,6 @@ msgstr[1] "" #. translators: Placeholder: %s - a PHP setting value #: woocommerce/class-sv-wc-plugin-dependencies.php:229 -#, php-format msgid "%s or higher" msgstr "" @@ -282,37 +267,31 @@ msgstr "" #. translators: Placeholders: %1$s - HTML tag, %2$s - HTML tag #: woocommerce/class-sv-wc-plugin-dependencies.php:262 -#, php-format msgid "Hey there! We've noticed that your server is running %1$san outdated version of PHP%2$s, which is the programming language that WooCommerce and its extensions are built on." msgstr "" #. translators: Placeholders: %1$s - HTML tag, %2$s - HTML tag #: woocommerce/class-sv-wc-plugin-dependencies.php:264 -#, php-format msgid "The PHP version that is currently used for your site is no longer maintained, nor %1$sreceives security updates%2$s; newer versions are faster and more secure." msgstr "" #. translators: Context: User is running an outdated PHP Version a plugin is not compatible with. Placeholders: %s - the plugin name #: woocommerce/class-sv-wc-plugin-dependencies.php:266 -#, php-format msgid "As a result, %s no longer supports this version and you should upgrade PHP as soon as possible." msgstr "" #. translators: Context: The host can update PHP version for the user. Placeholders: %1$s - HTML tag, %2$s - HTML tag #: woocommerce/class-sv-wc-plugin-dependencies.php:268 -#, php-format msgid "Your hosting provider can do this for you. %1$sHere are some resources to help you upgrade%2$s and to explain PHP versions further." msgstr "" #. translators: Placeholders: %s - plugin name #: woocommerce/class-sv-wc-plugin.php:370 -#, php-format msgid "You cannot clone instances of %s." msgstr "" #. translators: Placeholders: %s - plugin name #: woocommerce/class-sv-wc-plugin.php:381 -#, php-format msgid "You cannot unserialize instances of %s." msgstr "" @@ -333,13 +312,11 @@ msgstr "" #. translators: Placeholders: %1$s - PHP setting value, %2$s - version or value required #: woocommerce/class-sv-wc-plugin.php:777 -#, php-format msgid "%1$s - A minimum of %2$s is required." msgstr "" #. translators: Context: As in "Value has been set as [foo], but [bar] is required". Placeholders: %1$s - current value for a PHP setting, %2$s - required value for the PHP setting #: woocommerce/class-sv-wc-plugin.php:787 -#, php-format msgid "Set as %1$s - %2$s is required." msgstr "" @@ -395,7 +372,6 @@ msgstr "" #: woocommerce/payment-gateway/admin/class-sv-wc-payment-gateway-admin-payment-token-editor.php:495 #: woocommerce/payment-gateway/admin/class-sv-wc-payment-gateway-admin-user-handler.php:307 -#, php-format msgid "(%s)" msgstr "" @@ -463,7 +439,6 @@ msgstr "" #. translators: Placeholder: %s - Payment gateway title (e.g. Authorize.Net, Braintree, etc.) #: woocommerce/payment-gateway/admin/class-sv-wc-payment-gateway-admin-user-handler.php:226 #: woocommerce/payment-gateway/class-sv-wc-payment-gateway-privacy.php:225 -#, php-format msgid "%s Payment Tokens" msgstr "" @@ -544,7 +519,6 @@ msgstr "" #. translators: Context: Capture payment without charge. Placeholder: %s - transaction amount to be captured. #: woocommerce/payment-gateway/admin/views/html-order-partial-capture.php:67 -#, php-format msgid "Capture %s" msgstr "" @@ -765,7 +739,6 @@ msgstr "" #. translators: Placeholder: %s - Error message #: woocommerce/payment-gateway/class-sv-wc-payment-gateway-direct.php:543 -#, php-format msgid "Payment method address could not be updated. %s" msgstr "" @@ -773,7 +746,6 @@ msgstr "" #. translators: Context: "Check" as in "bank check" (noun, not verb). Placeholders: %1$s - payment method title, %2$s - payment account type (savings/checking) (may or may not be available), %3$s - last four digits of the account #: woocommerce/payment-gateway/class-sv-wc-payment-gateway-direct.php:713 #: woocommerce/payment-gateway/class-sv-wc-payment-gateway.php:2890 -#, php-format msgid "%1$s Check Transaction Approved: %2$s account ending in %3$s" msgstr "" @@ -781,7 +753,6 @@ msgstr "" #. translators: Context: "Check" as in "bank check" (noun, not verb). Placeholder: %s - check number #: woocommerce/payment-gateway/class-sv-wc-payment-gateway-direct.php:718 #: woocommerce/payment-gateway/class-sv-wc-payment-gateway.php:2895 -#, php-format msgid "Check number %s" msgstr "" @@ -794,13 +765,11 @@ msgstr "" #: woocommerce/payment-gateway/class-sv-wc-payment-gateway.php:2901 #: woocommerce/payment-gateway/Handlers/Capture.php:200 #: woocommerce/payment-gateway/integrations/class-sv-wc-payment-gateway-integration-pre-orders.php:366 -#, php-format msgid "(Transaction ID %s)" msgstr "" #. translators: Example: "Braintree Test Authorization Approved: Mastercard ending in 1234". Placeholders: %1$s - payment method title, %2$s - environment ("Test"), %3$s - transaction type (authorization/charge), %4$s - card type (mastercard, visa, ...), %5$s - last four digits of the card #: woocommerce/payment-gateway/class-sv-wc-payment-gateway-direct.php:790 -#, php-format msgid "%1$s %2$s %3$s Approved: %4$s ending in %5$s" msgstr "" @@ -826,7 +795,6 @@ msgstr "" #. translators: Example: "Authorize.Net Test Charge Approved: Mastercard" - Placeholders: %1$s - payment method title, %2$s - environment ("Test"), %3$s - transaction type (authorization/charge), %4$s - card type (mastercard, visa, ...) #: woocommerce/payment-gateway/class-sv-wc-payment-gateway-direct.php:800 -#, php-format msgid "%1$s %2$s %3$s Approved: %4$s" msgstr "" @@ -835,19 +803,16 @@ msgstr "" #: woocommerce/payment-gateway/class-sv-wc-payment-gateway-direct.php:813 #: woocommerce/payment-gateway/class-sv-wc-payment-gateway-payment-form.php:744 #: woocommerce/payment-gateway/class-sv-wc-payment-gateway.php:2847 -#, php-format msgid "(expires %s)" msgstr "" #. translators: Placeholders: %s - failure message #: woocommerce/payment-gateway/class-sv-wc-payment-gateway-direct.php:883 -#, php-format msgid "Tokenization Request Failed: %s" msgstr "" #. translators: Placeholders: %1$s - payment method title, %2$s - failure message #: woocommerce/payment-gateway/class-sv-wc-payment-gateway-direct.php:894 -#, php-format msgid "%1$s Tokenization Request Failed: %2$s" msgstr "" @@ -861,19 +826,16 @@ msgstr "" #. translators: Placeholders: %s - failure message. Payment method as in a specific credit card, e-check or bank account #: woocommerce/payment-gateway/class-sv-wc-payment-gateway-direct.php:952 -#, php-format msgid "Oops, adding your new payment method failed: %s" msgstr "" #. translators: Payment method as in a specific credit card. Placeholders: %1$s - card type (visa, mastercard, ...), %2$s - last four digits of the card, %3$s - card expiry date #: woocommerce/payment-gateway/class-sv-wc-payment-gateway-direct.php:997 -#, php-format msgid "Nice! New payment method added: %1$s ending in %2$s (expires %3$s)" msgstr "" #. translators: Payment method as in a specific e-check account. Placeholders: %1$s - account type (checking/savings), %2$s - last four digits of the account #: woocommerce/payment-gateway/class-sv-wc-payment-gateway-direct.php:1007 -#, php-format msgid "Nice! New payment method added: %1$s account ending in %2$s" msgstr "" @@ -884,7 +846,6 @@ msgstr "" #. translators: Placeholders: %1$s - site title, %2$s - customer email. Payment method as in a specific credit card, e-check or bank account #: woocommerce/payment-gateway/class-sv-wc-payment-gateway-direct.php:1137 -#, php-format msgid "%1$s - Add Payment Method for %2$s" msgstr "" @@ -982,47 +943,40 @@ msgstr "" #. translators: Placeholders: %s - a WooCommerce order ID #: woocommerce/payment-gateway/class-sv-wc-payment-gateway-hosted.php:461 #: woocommerce/payment-gateway/Handlers/Abstract_Hosted_Payment_Handler.php:321 -#, php-format msgid "Could not find order %s" msgstr "" #. translators: Placeholders: %s - payment gateway title (such as Authorize.net, Braintree, etc) #: woocommerce/payment-gateway/class-sv-wc-payment-gateway-hosted.php:525 #: woocommerce/payment-gateway/Handlers/Abstract_Payment_Handler.php:206 -#, php-format msgid "%s duplicate transaction received" msgstr "" #. translators: Placeholder: %s - Order number #: woocommerce/payment-gateway/class-sv-wc-payment-gateway-hosted.php:529 #: woocommerce/payment-gateway/Handlers/Abstract_Payment_Handler.php:209 -#, php-format msgid "Order %s is already paid for." msgstr "" #. translators: Placeholders: %1$s - payment gateway title (such as Authorize.net, Braintree, etc), %2$s - payment method name (mastercard, bank account, etc), %3$s - last four digits of the card/account, %4$s - card/account expiry date #: woocommerce/payment-gateway/class-sv-wc-payment-gateway-hosted.php:614 #: woocommerce/payment-gateway/payment-tokens/class-sv-wc-payment-gateway-payment-tokens-handler.php:1153 -#, php-format msgid "%1$s Payment Method Saved: %2$s ending in %3$s (expires %4$s)" msgstr "" #. translators: Placeholders: %1$s - payment gateway title (such as CyberSouce, NETbilling, etc), %2$s - account type (checking/savings - may or may not be available), %3$s - last four digits of the account #: woocommerce/payment-gateway/class-sv-wc-payment-gateway-hosted.php:625 #: woocommerce/payment-gateway/payment-tokens/class-sv-wc-payment-gateway-payment-tokens-handler.php:1164 -#, php-format msgid "%1$s eCheck Payment Method Saved: %2$s account ending in %3$s" msgstr "" #. translators: Placeholders: %s - payment gateway title (such as CyberSouce, NETbilling, etc) #: woocommerce/payment-gateway/class-sv-wc-payment-gateway-hosted.php:634 -#, php-format msgid "%s Payment Method Saved" msgstr "" #. translators: Placeholders: %s - a failed tokenization API error #: woocommerce/payment-gateway/class-sv-wc-payment-gateway-hosted.php:643 -#, php-format msgid "Tokenization failed. %s" msgstr "" @@ -1146,19 +1100,16 @@ msgstr "" #. translators: Placeholders: %1$s - plugin name, %2$s - tag, %3$s - tag #: woocommerce/payment-gateway/class-sv-wc-payment-gateway-plugin.php:643 -#, php-format msgid "%1$s: WooCommerce is not being forced over SSL; your customers' payment data may be at risk. %2$sVerify your site URLs here%3$s" msgstr "" #. translators: Placeholders: %s - payment gateway name #: woocommerce/payment-gateway/class-sv-wc-payment-gateway-plugin.php:660 -#, php-format msgid "%s will soon require TLS 1.2 support to process transactions and your server environment may need to be updated. Please contact your hosting provider to confirm that your site can send and receive TLS 1.2 connections and request they make any necessary updates." msgstr "" #. translators: Placeholders: %1$s - plugin name, %2$s - a currency/comma-separated list of currencies, %3$s - tag, %4$s - tag #: woocommerce/payment-gateway/class-sv-wc-payment-gateway-plugin.php:715 -#, php-format msgid "%1$s accepts payment in %2$s only. %3$sConfigure%4$s WooCommerce to accept %2$s to enable this gateway for checkout." msgid_plural "%1$s accepts payment in one of %2$s only. %3$sConfigure%4$s WooCommerce to accept one of %2$s to enable this gateway for checkout." msgstr[0] "" @@ -1166,13 +1117,11 @@ msgstr[1] "" #. translators: Placeholders: %1$s - payment gateway name, %2$s - opening tag, %3$s - closing tag #: woocommerce/payment-gateway/class-sv-wc-payment-gateway-plugin.php:745 -#, php-format msgid "Heads up! %1$s is currently configured to log transaction data for debugging purposes. If you are not experiencing any problems with payment processing, we recommend %2$sturning off Debug Mode%3$s" msgstr "" #. translators: Placeholders: %s - gateway name #: woocommerce/payment-gateway/class-sv-wc-payment-gateway-plugin.php:796 -#, php-format msgid "%s is not configured" msgstr "" @@ -1182,24 +1131,20 @@ msgstr "" #. translators: Placeholders: %1$s - plugin name, %2$s - opening HTML link tag, %3$s - closing HTML link tag #: woocommerce/payment-gateway/class-sv-wc-payment-gateway-plugin.php:845 -#, php-format msgid "Heads up! Apple Pay for %1$s requires WooCommerce version 3.2 or greater. Please %2$supdate WooCommerce%3$s." msgstr "" #. translators: Placeholders: %1$s - plugin name, %2$s - opening HTML link tag, %3$s - closing HTML link tag #: woocommerce/payment-gateway/class-sv-wc-payment-gateway-plugin.php:869 -#, php-format msgid "Heads up! Google Pay for %1$s requires WooCommerce version 3.2 or greater. Please %2$supdate WooCommerce%3$s." msgstr "" #. translators: Placeholders: %1$s - payment gateway title (such as Authorize.net, Braintree, etc), %2$s - tag, %3$s - tag #: woocommerce/payment-gateway/class-sv-wc-payment-gateway-plugin.php:905 -#, php-format msgid "%1$s is inactive for subscription transactions. Please %2$senable tokenization%3$s to activate %1$s for Subscriptions." msgstr "" #: woocommerce/payment-gateway/class-sv-wc-payment-gateway-plugin.php:923 -#, php-format msgid "%1$s is inactive for pre-order transactions. Please %2$senable tokenization%3$s to activate %1$s for Pre-Orders." msgstr "" @@ -1213,7 +1158,6 @@ msgstr "" #. translators: Placeholder: %s - Payment gateway title (e.g. Authorize.Net, Braintree...) #: woocommerce/payment-gateway/class-sv-wc-payment-gateway-privacy.php:130 -#, php-format msgid "%s Customer ID" msgstr "" @@ -1222,7 +1166,6 @@ msgid "Type" msgstr "" #: woocommerce/payment-gateway/class-sv-wc-payment-gateway-privacy.php:270 -#, php-format msgid "Removed payment token \"%d\"" msgstr "" @@ -1396,7 +1339,6 @@ msgstr "" #. translators: Placeholders: %1$s - tag, %2$s - tag #: woocommerce/payment-gateway/class-sv-wc-payment-gateway.php:1458 -#, php-format msgid "Show Detailed Error Messages and API requests/responses on the checkout page and/or save them to the %1$sdebug log%2$s" msgstr "" @@ -1457,43 +1399,36 @@ msgstr "" #. translators: Placeholders: %1$s - site title, %2$s - order number #: woocommerce/payment-gateway/class-sv-wc-payment-gateway.php:1952 -#, php-format msgid "%1$s - Order %2$s" msgstr "" #. translators: Placeholders: %1$s - site title, %2$s - order number. Definitions: Capture as in capture funds from a credit card. #: woocommerce/payment-gateway/class-sv-wc-payment-gateway.php:2084 -#, php-format msgid "%1$s - Capture for Order %2$s" msgstr "" #. translators: Placeholders: %1$s - site title, %2$s - order number #: woocommerce/payment-gateway/class-sv-wc-payment-gateway.php:2227 -#, php-format msgid "%1$s - Refund for Order %2$s" msgstr "" #. translators: Placeholders: %1$s - payment gateway title (such as Authorize.net, Braintree, etc), %2$s - a monetary amount #: woocommerce/payment-gateway/class-sv-wc-payment-gateway.php:2294 -#, php-format msgid "%1$s Refund in the amount of %2$s approved." msgstr "" #. translators: Placeholders: %1$s - payment gateway title (such as Authorize.net, Braintree, etc), %2$s - error code, %3$s - error message #: woocommerce/payment-gateway/class-sv-wc-payment-gateway.php:2324 -#, php-format msgid "%1$s Refund Failed: %2$s - %3$s" msgstr "" #. translators: Placeholders: %1$s - payment gateway title (such as Authorize.net, Braintree, etc), %2$s - error message #: woocommerce/payment-gateway/class-sv-wc-payment-gateway.php:2332 -#, php-format msgid "%1$s Refund Failed: %2$s" msgstr "" #. translators: Placeholders: %s - payment gateway title (such as Authorize.net, Braintree, etc) #: woocommerce/payment-gateway/class-sv-wc-payment-gateway.php:2353 -#, php-format msgid "%s Order completely refunded." msgstr "" @@ -1503,19 +1438,16 @@ msgstr "" #. translators: Placeholders: %1$s - payment gateway title, %2$s - error code, %3$s - error message. Void as in to void an order. #: woocommerce/payment-gateway/class-sv-wc-payment-gateway.php:2495 -#, php-format msgid "%1$s Void Failed: %2$s - %3$s" msgstr "" #. translators: Placeholders: %1$s - payment gateway title, %2$s - error message. Void as in to void an order. #: woocommerce/payment-gateway/class-sv-wc-payment-gateway.php:2503 -#, php-format msgid "%1$s Void Failed: %2$s" msgstr "" #. translators: Placeholders: %1$s - payment gateway title, %2$s - a monetary amount. Void as in to void an order. #: woocommerce/payment-gateway/class-sv-wc-payment-gateway.php:2527 -#, php-format msgid "%1$s Void in the amount of %2$s approved." msgstr "" @@ -1529,7 +1461,6 @@ msgstr "" #: woocommerce/payment-gateway/class-sv-wc-payment-gateway.php:2624 #: woocommerce/payment-gateway/Handlers/Abstract_Payment_Handler.php:153 #: woocommerce/payment-gateway/payment-tokens/class-sv-wc-payment-gateway-payment-tokens-handler.php:179 -#, php-format msgid "Status code %1$s: %2$s" msgstr "" @@ -1538,7 +1469,6 @@ msgstr "" #: woocommerce/payment-gateway/class-sv-wc-payment-gateway.php:2627 #: woocommerce/payment-gateway/Handlers/Abstract_Payment_Handler.php:156 #: woocommerce/payment-gateway/payment-tokens/class-sv-wc-payment-gateway-payment-tokens-handler.php:182 -#, php-format msgid "Status code: %s" msgstr "" @@ -1548,7 +1478,6 @@ msgstr "" #: woocommerce/payment-gateway/class-sv-wc-payment-gateway.php:2630 #: woocommerce/payment-gateway/Handlers/Abstract_Payment_Handler.php:159 #: woocommerce/payment-gateway/payment-tokens/class-sv-wc-payment-gateway-payment-tokens-handler.php:185 -#, php-format msgid "Status message: %s" msgstr "" @@ -1556,13 +1485,11 @@ msgstr "" #: woocommerce/payment-gateway/class-sv-wc-payment-gateway.php:2635 #: woocommerce/payment-gateway/Handlers/Abstract_Payment_Handler.php:165 #: woocommerce/payment-gateway/payment-tokens/class-sv-wc-payment-gateway-payment-tokens-handler.php:193 -#, php-format msgid "Transaction ID %s" msgstr "" #. translators: Placeholders: %1$s - payment method title, %2$s - environment ("Test"), %3$s - transaction type (authorization/charge) #: woocommerce/payment-gateway/class-sv-wc-payment-gateway.php:2826 -#, php-format msgid "%1$s %2$s %3$s Approved" msgstr "" @@ -1579,13 +1506,11 @@ msgstr "" #. translators: Placeholders: %1$s - credit card type (MasterCard, Visa, etc...), %2$s - last four digits of the card #: woocommerce/payment-gateway/class-sv-wc-payment-gateway.php:2836 -#, php-format msgid "%1$s ending in %2$s" msgstr "" #. translators: Placeholders: %1$s - payment gateway title, %2$s - message (probably reason for the transaction being held for review) #: woocommerce/payment-gateway/class-sv-wc-payment-gateway.php:2933 -#, php-format msgid "%1$s Transaction Held for Review (%2$s)" msgstr "" @@ -1596,7 +1521,6 @@ msgstr "" #. translators: Placeholders: %1$s - payment gateway title, %2$s - error message; e.g. Order Note: [Payment method] Payment failed [error] #: woocommerce/payment-gateway/class-sv-wc-payment-gateway.php:3022 -#, php-format msgid "%1$s Payment Failed (%2$s)" msgstr "" @@ -1608,7 +1532,6 @@ msgstr "" #. translators: Placeholders: %1$s - payment gateway title, %2$s - message/error #: woocommerce/payment-gateway/class-sv-wc-payment-gateway.php:3059 -#, php-format msgid "%1$s Transaction Cancelled (%2$s)" msgstr "" @@ -1646,7 +1569,6 @@ msgid "Capture Paid Orders" msgstr "" #: woocommerce/payment-gateway/class-sv-wc-payment-gateway.php:3347 -#, php-format msgid "Automatically capture orders when they are changed to %s." msgstr "" @@ -1664,7 +1586,6 @@ msgstr "" #. translators: Placeholders: %1$s - tag, %2$s - tag #: woocommerce/payment-gateway/class-sv-wc-payment-gateway.php:3543 -#, php-format msgid "This setting %1$sdoes not%2$s change which card types the gateway will accept. Accepted cards are configured from your payment processor account." msgstr "" @@ -1690,7 +1611,6 @@ msgstr "" #. translators: %1$s - gateway name, %2$s - tag, %3$s - tag, %4$s - tag, %5$s - tag #: woocommerce/payment-gateway/class-sv-wc-payment-gateway.php:4525 -#, php-format msgid "Heads up! %1$s is not fully configured and cannot accept payments. Please %2$sreview the documentation%3$s and configure the %4$sgateway settings%5$s." msgstr "" @@ -1714,13 +1634,11 @@ msgstr "" #. translators: Placeholder: %s - external checkout label #: woocommerce/payment-gateway/External_Checkout/Admin.php:331 -#, php-format msgid "%s is disabled." msgstr "" #. translators: Context: Error message displayed to merchants if their store currency is not in one of the accepted currencies by the payment gateway they intend to enable. Placeholders: %1$s - a currency or comma-separated list of currencies, %2$s - opening HTML tag, %3$s - closing HTML tag, %4$s - payment method title/label #: woocommerce/payment-gateway/External_Checkout/Admin.php:395 -#, php-format msgid "Accepts payment in %1$s only. %2$sConfigure%3$s WooCommerce to accept %1$s to enable %4$s." msgid_plural "Accepts payment in %1$s only. %2$sConfigure%3$s WooCommerce to accept %1$s to enable %4$s." msgstr[0] "" @@ -1728,12 +1646,10 @@ msgstr[1] "" #. translators: Placeholders: %1$s - Checkout method label, %2$s - Opening HTML tag, %3$s - Closing HTML tag, %4$s - Opening HTML tag, %5$s - closing HTML tag #: woocommerce/payment-gateway/External_Checkout/Admin.php:432 -#, php-format msgid "Your store %1$scalculates taxes%2$s based on the shipping address, but %1$s %4$sdoes not%5$s share customer shipping information with your store for orders with only virtual products. These orders will have their taxes calculated based on the shop address instead." msgstr "" #: woocommerce/payment-gateway/External_Checkout/Admin.php:465 -#, php-format msgid "%4$s%1$s Notice!%5$s Your store %2$scalculates taxes%3$s based on the billing address, but %1$s %4$sdoes not%5$s share the customer billing address with your store before payment. These orders will have their taxes calculated based on the shipping address (or shop address, for orders with only virtual products)." msgstr "" @@ -1781,7 +1697,6 @@ msgstr "" #. translators: Placeholders: %1$s - tag, %2$s - tag #: woocommerce/payment-gateway/External_Checkout/apple-pay/class-sv-wc-payment-gateway-apple-pay-admin.php:165 -#, php-format msgid "This is found in your %1$sApple developer account%2$s" msgstr "" @@ -1795,7 +1710,6 @@ msgstr "" #. translators: Placeholders: %s - the server's web root path #: woocommerce/payment-gateway/External_Checkout/apple-pay/class-sv-wc-payment-gateway-apple-pay-admin.php:180 -#, php-format msgid "For reference, your current web root path is: %s" msgstr "" @@ -1813,7 +1727,6 @@ msgid "Your site must be served over HTTPS with a valid SSL certificate." msgstr "" #: woocommerce/payment-gateway/External_Checkout/apple-pay/class-sv-wc-payment-gateway-apple-pay-admin.php:240 -#, php-format msgid "Your %1$sMerchant Identity Certificate%2$s cannot be found. Please check your path configuration." msgstr "" @@ -1827,7 +1740,6 @@ msgid "Apple Pay payment authorized." msgstr "" #: woocommerce/payment-gateway/External_Checkout/apple-pay/class-sv-wc-payment-gateway-apple-pay.php:188 -#, php-format msgid "Apple Pay payment failed. %s" msgstr "" @@ -1862,7 +1774,6 @@ msgid "or" msgstr "" #: woocommerce/payment-gateway/External_Checkout/Frontend.php:345 -#, php-format msgid "By submitting your payment, you agree to our %1$sterms and conditions%2$s." msgstr "" @@ -1882,7 +1793,6 @@ msgid "Merchant ID" msgstr "" #: woocommerce/payment-gateway/External_Checkout/Google_Pay/Admin.php:104 -#, php-format msgid "A Google merchant identifier issued after registration with the %1$sGoogle Pay & Wallet Console%2$s. 12-18 characters. Required in production environment." msgstr "" @@ -1901,14 +1811,12 @@ msgid "Google Pay payment authorized." msgstr "" #: woocommerce/payment-gateway/External_Checkout/Google_Pay/Google_Pay.php:540 -#, php-format msgid "Google Pay payment failed. %s" msgstr "" #: woocommerce/payment-gateway/External_Checkout/Orders.php:141 #: woocommerce/payment-gateway/External_Checkout/Orders.php:154 #: woocommerce/payment-gateway/External_Checkout/Orders.php:158 -#, php-format msgid "Error %d: Unable to create order. Please try again." msgstr "" @@ -1918,19 +1826,16 @@ msgstr "" #. translators: Example: "Authorize.Net Transaction Held for Review". Placeholder: %s - Payment gateway title #: woocommerce/payment-gateway/Handlers/Abstract_Payment_Handler.php:366 -#, php-format msgid "%s Transaction Held for Review" msgstr "" #. translators: Placeholders: %s - payment gateway title #: woocommerce/payment-gateway/Handlers/Abstract_Payment_Handler.php:437 -#, php-format msgid "%s Payment Failed" msgstr "" #. translators: Placeholders: %s - payment gateway title #: woocommerce/payment-gateway/Handlers/Abstract_Payment_Handler.php:464 -#, php-format msgid "%s Transaction Cancelled" msgstr "" @@ -1952,24 +1857,20 @@ msgstr "" #. translators: Placeholders: %1$s - payment gateway title (such as Authorize.net, Braintree, etc), %2$s - transaction amount. Definitions: Capture, as in capture funds from a credit card. #: woocommerce/payment-gateway/Handlers/Capture.php:190 -#, php-format msgid "%1$s Capture of %2$s Approved" msgstr "" #. translators: Placeholders: %1$s - payment gateway title (such as Authorize.net, Braintree, etc), %2$s - failure message. Definitions: "capture" as in capturing funds from a credit card. #: woocommerce/payment-gateway/Handlers/Capture.php:231 -#, php-format msgid "%1$s Capture Failed: %2$s" msgstr "" #: woocommerce/payment-gateway/integrations/class-sv-wc-payment-gateway-integration-pre-orders.php:262 -#, php-format msgid "Pre-Order Tokenization attempt failed (%s)" msgstr "" #. translators: Context: A payment is released for a pre-order. Placeholders: %1$s - Site name, %2$s - Order number #: woocommerce/payment-gateway/integrations/class-sv-wc-payment-gateway-integration-pre-orders.php:310 -#, php-format msgid "%1$s - Pre-Order Release Payment for Order %2$s" msgstr "" @@ -1979,19 +1880,16 @@ msgstr "" #. translators: Context: A payment is released for a pre-order. Placeholders: %1$s - Payment gateway name, %2$s - Either 'Authorization' or 'Charge' (untranslated), %3$s - Payment method type (e.g. 'PayPal', 'Credit Card', etc.), %4$s - Last four digits of the card or account, %5$s - Expiration date of the payment method #: woocommerce/payment-gateway/integrations/class-sv-wc-payment-gateway-integration-pre-orders.php:343 -#, php-format msgid "%1$s %2$s Pre-Order Release Payment Approved: %3$s ending in %4$s (expires %5$s)" msgstr "" #. translators: Context: A payment is released for a pre-order. Placeholders: %1$s - Payment gateway name, %2$s - Payment method type (e.g. 'Bank Account'), %3$s - Last four digits of the account #: woocommerce/payment-gateway/integrations/class-sv-wc-payment-gateway-integration-pre-orders.php:356 -#, php-format msgid "%1$s eCheck Pre-Order Release Payment Approved: %2$s ending in %3$s" msgstr "" #. translators: Context: Release of payment for pre-order failed. Placeholder: %s - Error message #: woocommerce/payment-gateway/integrations/class-sv-wc-payment-gateway-integration-pre-orders.php:408 -#, php-format msgid "Pre-Order Release Payment Failed: %s" msgstr "" @@ -2001,19 +1899,16 @@ msgstr "" #. translators: Placeholders: %1$s - Site name, %2$s - Order number #: woocommerce/payment-gateway/integrations/class-sv-wc-payment-gateway-integration-subscriptions.php:391 -#, php-format msgid "%1$s - Subscription Renewal Order %2$s" msgstr "" #. translators: Placeholders: %1$s - payment gateway title, %2$s - error message; e.g. Order Note: [Payment method] Payment Change failed [error] #: woocommerce/payment-gateway/integrations/class-sv-wc-payment-gateway-integration-subscriptions.php:528 -#, php-format msgid "%1$s Payment Change Failed (%2$s)" msgstr "" #. translators: Context: Payment made for order. Placeholders: %1$s - Payment method name (e.g. "Credit Card", "PayPal", etc.), %2$s - Last four digits of the card/account used #: woocommerce/payment-gateway/integrations/class-sv-wc-payment-gateway-integration-subscriptions.php:686 -#, php-format msgid "Via %1$s ending in %2$s" msgstr "" @@ -2022,7 +1917,6 @@ msgid "Subscriptions" msgstr "" #: woocommerce/payment-gateway/integrations/class-sv-wc-payment-gateway-integration-subscriptions.php:772 -#, php-format msgctxt "hash before order number" msgid "#%s" msgstr "" @@ -2038,7 +1932,6 @@ msgstr "" #. translators: Context: Error message. Placeholder: %s - Label of the related value #: woocommerce/payment-gateway/integrations/class-sv-wc-payment-gateway-integration-subscriptions.php:907 #: woocommerce/payment-gateway/integrations/class-sv-wc-payment-gateway-integration-subscriptions.php:913 -#, php-format msgid "%s is required." msgstr "" @@ -2073,7 +1966,6 @@ msgstr "" #. translators: Placeholders: %1$s - Plugin name, %2$s - Opening HTML tag, %3$s - Closing HTML tag, %4$s - Opening HTML tag, %5$s - Closing HTML tag #: woocommerce/Plugin/Lifecycle.php:403 -#, php-format msgid "Are you having a great experience with %1$s so far? Please consider %2$sleaving a review%3$s! If things aren't going quite as expected, we're happy to help -- please %4$sreach out to our support team%5$s." msgstr "" @@ -2083,7 +1975,6 @@ msgstr "" #. translators: Placeholder: %s - setting ID #: woocommerce/rest-api/Controllers/Settings.php:169 -#, php-format msgid "Setting %s does not exist" msgstr "" @@ -2093,7 +1984,6 @@ msgstr "" #. translators: Placeholder: %s - Error message #: woocommerce/rest-api/Controllers/Settings.php:225 -#, php-format msgid "Could not update setting: %s" msgstr "" @@ -2146,12 +2036,10 @@ msgid "A list of key/value pairs defining the display value of each setting opti msgstr "" #: woocommerce/utilities/class-sv-wp-background-job-handler.php:661 -#, php-format msgid "Job data key \"%s\" not set" msgstr "" #: woocommerce/utilities/class-sv-wp-background-job-handler.php:665 -#, php-format msgid "Job data key \"%s\" is not an array" msgstr "" diff --git a/woocommerce/payment-gateway/Blocks/Gateway_Blocks_Handler.php b/woocommerce/payment-gateway/Blocks/Gateway_Blocks_Handler.php index 686f1636d..a1372ed4f 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-v5_15_11', $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 642ca4824..0813053f0 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\v5_15_10\Payment_Gateway\External_Checkout\Google_Pay; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11\Payment_Gateway\External_Checkout\Google_Pay; -use SkyVerge\WooCommerce\PluginFramework\v5_15_10\SV_WC_Helper; -use SkyVerge\WooCommerce\PluginFramework\v5_15_10\SV_WC_Payment_Gateway_Exception; +use SkyVerge\WooCommerce\PluginFramework\v5_15_11\SV_WC_Helper; +use SkyVerge\WooCommerce\PluginFramework\v5_15_11\SV_WC_Payment_Gateway_Exception; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\Payment_Gateway\\External_Checkout\\Google_Pay\\AJAX' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\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 7146f63bd..0944435f1 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\v5_15_10\Payment_Gateway\External_Checkout\Google_Pay; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11\Payment_Gateway\External_Checkout\Google_Pay; -use SkyVerge\WooCommerce\PluginFramework\v5_15_10\SV_WC_Helper; +use SkyVerge\WooCommerce\PluginFramework\v5_15_11\SV_WC_Helper; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\Payment_Gateway\\External_Checkout\\Google_Pay\\Admin' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\Payment_Gateway\\External_Checkout\\Google_Pay\\Admin' ) ) : /** @@ -37,7 +37,7 @@ * @since 5.10.0 */ #[\AllowDynamicProperties] -class Admin extends \SkyVerge\WooCommerce\PluginFramework\v5_15_10\Payment_Gateway\External_Checkout\Admin { +class Admin extends \SkyVerge\WooCommerce\PluginFramework\v5_15_11\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 0193200de..359f22d7f 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\v5_15_10\Payment_Gateway\External_Checkout\Google_Pay; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11\Payment_Gateway\External_Checkout\Google_Pay; -use SkyVerge\WooCommerce\PluginFramework\v5_15_10\SV_WC_Payment_Gateway_Exception; -use SkyVerge\WooCommerce\PluginFramework\v5_15_10\SV_WC_Payment_Gateway_Plugin; +use SkyVerge\WooCommerce\PluginFramework\v5_15_11\SV_WC_Payment_Gateway_Exception; +use SkyVerge\WooCommerce\PluginFramework\v5_15_11\SV_WC_Payment_Gateway_Plugin; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\Payment_Gateway\\External_Checkout\\Google_Pay\\Frontend' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\Payment_Gateway\\External_Checkout\\Google_Pay\\Frontend' ) ) : /** @@ -38,7 +38,7 @@ * @since 5.10.0 */ #[\AllowDynamicProperties] -class Frontend extends \SkyVerge\WooCommerce\PluginFramework\v5_15_10\Payment_Gateway\External_Checkout\Frontend { +class Frontend extends \SkyVerge\WooCommerce\PluginFramework\v5_15_11\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-v5_15_10', $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-v5_15_11', $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 6285386ea..b2d6cee21 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\v5_15_10\Payment_Gateway\External_Checkout\Google_Pay; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11\Payment_Gateway\External_Checkout\Google_Pay; -use SkyVerge\WooCommerce\PluginFramework\v5_15_10\Payment_Gateway\External_Checkout\External_Checkout; -use SkyVerge\WooCommerce\PluginFramework\v5_15_10\Payment_Gateway\External_Checkout\Orders; -use SkyVerge\WooCommerce\PluginFramework\v5_15_10\SV_WC_Payment_Gateway_Exception; -use SkyVerge\WooCommerce\PluginFramework\v5_15_10\SV_WC_Payment_Gateway_Helper; -use SkyVerge\WooCommerce\PluginFramework\v5_15_10\SV_WC_Payment_Gateway_Plugin; +use SkyVerge\WooCommerce\PluginFramework\v5_15_11\Payment_Gateway\External_Checkout\External_Checkout; +use SkyVerge\WooCommerce\PluginFramework\v5_15_11\Payment_Gateway\External_Checkout\Orders; +use SkyVerge\WooCommerce\PluginFramework\v5_15_11\SV_WC_Payment_Gateway_Exception; +use SkyVerge\WooCommerce\PluginFramework\v5_15_11\SV_WC_Payment_Gateway_Helper; +use SkyVerge\WooCommerce\PluginFramework\v5_15_11\SV_WC_Payment_Gateway_Plugin; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\Payment_Gateway\\External_Checkout\\Google_Pay\\Google_Pay' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\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\\v5_15_10\\SV_WC_Payment_Gateway_Helper::normalize_card_type', $accepted_card_types ); + $accepted_card_types = array_map( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\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 04d398d6f..5993918e4 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\v5_15_10\Payment_Gateway\External_Checkout; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11\Payment_Gateway\External_Checkout; -use SkyVerge\WooCommerce\PluginFramework\v5_15_10 as Framework; +use SkyVerge\WooCommerce\PluginFramework\v5_15_11 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 f0a042120..f616e54d6 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\v5_15_10; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\SV_WC_Payment_Gateway_Apple_Pay_API_Request' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\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 225703afb..d26818923 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\v5_15_10; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\SV_WC_Payment_Gateway_Apple_Pay_API_Response' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\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 e91d11640..b98444886 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\v5_15_10; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\SV_WC_Payment_Gateway_Apple_Pay_API' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\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\\v5_15_10\\SV_WC_Payment_Gateway_Apple_Pay_API_Response' ); + $this->set_response_handler( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\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 b0b1d922f..64dc1a9f2 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\v5_15_10; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\SV_WC_Payment_Gateway_Apple_Pay_Payment_Response' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\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 1e375c896..66796d6d9 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\v5_15_10; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11; -use SkyVerge\WooCommerce\PluginFramework\v5_15_10\Payment_Gateway\External_Checkout\Admin; +use SkyVerge\WooCommerce\PluginFramework\v5_15_11\Payment_Gateway\External_Checkout\Admin; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\SV_WC_Payment_Gateway_Apple_Pay_Admin' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\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 b864aee75..9b8ab5a49 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\v5_15_10; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\SV_WC_Payment_Gateway_Apple_Pay_AJAX' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\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 05dd05626..5e7b4a3e9 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\v5_15_10; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\SV_WC_Payment_Gateway_Apple_Pay_Frontend' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\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\v5_15_10\Payment_Gateway\External_Checkout\Frontend { +class SV_WC_Payment_Gateway_Apple_Pay_Frontend extends \SkyVerge\WooCommerce\PluginFramework\v5_15_11\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-v5_15_10', $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-v5_15_11', $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-v5_15_10', $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-v5_15_11', $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 ad0907eee..f6deafd62 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\v5_15_10; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11; -use SkyVerge\WooCommerce\PluginFramework\v5_15_10\Payment_Gateway\External_Checkout\Orders; +use SkyVerge\WooCommerce\PluginFramework\v5_15_11\Payment_Gateway\External_Checkout\Orders; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\SV_WC_Payment_Gateway_Apple_Pay' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\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\\v5_15_10\\SV_WC_Payment_Gateway_Helper::normalize_card_type', $accepted_card_types ); + $accepted_card_types = array_map( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\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 20ee36e4b..ae99c8937 100644 --- a/woocommerce/payment-gateway/Handlers/Abstract_Hosted_Payment_Handler.php +++ b/woocommerce/payment-gateway/Handlers/Abstract_Hosted_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\v5_15_10\Payment_Gateway\Handlers; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11\Payment_Gateway\Handlers; -use SkyVerge\WooCommerce\PluginFramework\v5_15_10 as FrameworkBase; +use SkyVerge\WooCommerce\PluginFramework\v5_15_11 as FrameworkBase; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\Payment_Gateway\\Handlers\\Abstract_Hosted_Payment_Handler' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\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 6378622e9..50f6e14b7 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\v5_15_10\Payment_Gateway\Handlers; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11\Payment_Gateway\Handlers; -use SkyVerge\WooCommerce\PluginFramework\v5_15_10 as FrameworkBase; +use SkyVerge\WooCommerce\PluginFramework\v5_15_11 as FrameworkBase; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\Payment_Gateway\\Handlers\\Abstract_Payment_Handler' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\Payment_Gateway\\Handlers\\Abstract_Payment_Handler' ) ) : /** diff --git a/woocommerce/payment-gateway/Handlers/Capture.php b/woocommerce/payment-gateway/Handlers/Capture.php index 06b7cbc16..486f4e883 100644 --- a/woocommerce/payment-gateway/Handlers/Capture.php +++ b/woocommerce/payment-gateway/Handlers/Capture.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\v5_15_10\Payment_Gateway\Handlers; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11\Payment_Gateway\Handlers; -use SkyVerge\WooCommerce\PluginFramework\v5_15_10 as Framework; +use SkyVerge\WooCommerce\PluginFramework\v5_15_11 as Framework; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\Payment_Gateway\\Handlers\\Capture' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\Payment_Gateway\\Handlers\\Capture' ) ) : /** diff --git a/woocommerce/payment-gateway/PaymentFormContextChecker.php b/woocommerce/payment-gateway/PaymentFormContextChecker.php index beb698a51..23dc4e67e 100644 --- a/woocommerce/payment-gateway/PaymentFormContextChecker.php +++ b/woocommerce/payment-gateway/PaymentFormContextChecker.php @@ -1,9 +1,9 @@ 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_v5_15_10_loaded")})}).call({}); +(function(){jQuery(function(e){return window.SV_WC_Apple_Pay_Handler_v5_15_11=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_v5_15_11_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 885d5ae77..4d85dd639 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_v5_15_10 = class SV_WC_Apple_Pay_Handler_v5_15_10 {\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_v5_15_10_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_v5_15_10\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_v5_15_10_loaded' )\n"],"names":["jQuery","$","window","SV_WC_Apple_Pay_Handler_v5_15_10","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_v5_15_11 = class SV_WC_Apple_Pay_Handler_v5_15_11 {\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_v5_15_11_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_v5_15_11\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_v5_15_11_loaded' )\n"],"names":["jQuery","$","window","SV_WC_Apple_Pay_Handler_v5_15_11","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 af52249a5..6649ca808 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_v5_15_10=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_v5_15_10_loaded")}); +jQuery(function(e){window.SV_WC_Google_Pay_Handler_v5_15_11=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_v5_15_11_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 71b646f84..49c642d40 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_v5_15_10} object\n\t */ window.SV_WC_Google_Pay_Handler_v5_15_10 = class SV_WC_Google_Pay_Handler_v5_15_10 {\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_v5_15_10_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_v5_15_10} object\n\t */\n\twindow.SV_WC_Google_Pay_Handler_v5_15_10 = class SV_WC_Google_Pay_Handler_v5_15_10 {\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_v5_15_10_loaded' );\n\n} );\n"],"names":["jQuery","$","window","SV_WC_Google_Pay_Handler_v5_15_10","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_v5_15_11} object\n\t */ window.SV_WC_Google_Pay_Handler_v5_15_11 = class SV_WC_Google_Pay_Handler_v5_15_11 {\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_v5_15_11_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_v5_15_11} object\n\t */\n\twindow.SV_WC_Google_Pay_Handler_v5_15_11 = class SV_WC_Google_Pay_Handler_v5_15_11 {\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_v5_15_11_loaded' );\n\n} );\n"],"names":["jQuery","$","window","SV_WC_Google_Pay_Handler_v5_15_11","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 a198880db..9d9ae34ee 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_v5_15_10=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=>{if(0!==e(t.currentTarget).parents("tr").find(`input[name=plugin-id][value=${this.slug}]`).length&&!confirm(this.i18n.delete_ays))return 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_v5_15_10_loaded")})}).call({}); +(function(){jQuery(function(e){return window.SV_WC_Payment_Methods_Handler_v5_15_11=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_v5_15_11_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 7a2c12212..2abafb7d8 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":"ACOG,CAAA,WACH,OAAO,SAAE,CAAF,EAwQN,OAlQM,OAAO,sCAAA,CAAb,MAaC,YAAe,CAAF,CAAA,CA8Cb,IAAA,CAAA,qBAAA,CAAA,IAAA,CAAA,qBAAA,CAAA,IAAA,CAAA,IAAA,EA4BA,IAAA,CAAA,8BAAA,CAAA,IAAA,CAAA,8BAAA,CAAA,IAAA,CAAA,IAAA,EAYA,IAAA,CAAA,WAAA,CAAA,IAAA,CAAA,WAAA,CAAA,IAAA,CAAA,IAAA,EA0BA,IAAA,CAAA,WAAA,CAAA,IAAA,CAAA,WAAA,CAAA,IAAA,CAAA,IAAA,EAuDA,IAAA,CAAA,WAAA,CAAA,IAAA,CAAA,WAAA,CAAA,IAAA,CAAA,IAAA,EArKC,IAAC,CAAA,EAAD,CAAc,EAAK,EAAnB,CACA,IAAC,CAAA,IAAD,CAAc,EAAK,IAAnB,CACA,IAAC,CAAA,IAAD,CAAc,EAAK,IAAnB,CACA,IAAC,CAAA,QAAD,CAAc,EAAK,QAAnB,CACA,IAAC,CAAA,UAAD,CAAc,EAAK,UAAA,CAGnB,IAAI,CAAC,qBAAL,GAGA,IAAI,CAAC,8BAAL,GAGA,EAAG,yCAA0C,EAA7C,CAAiD,QAAS,mDAAoD,AAAE,GAAW,IAAI,CAAC,WAAL,CAAkB,IAG7I,EAAG,yCAA0C,EAA7C,CAAiD,QAAS,mDAAoD,AAAE,GAAW,IAAI,CAAC,WAAL,CAAkB,IAG7I,EAAG,yCAA0C,EAA7C,CAAiD,QAAS,mDAAoD,AAAE,GAAW,IAAI,CAAC,WAAL,CAAkB,IAG7I,EAAG,yCAA0C,EAA7C,CAAiD,QAAS,qDAAsD,AAAE,IAMjH,GAAG,AAA8D,IAA9D,AAHM,AADA,EAAG,EAAM,aAAT,EACO,OAAP,CAAgB,MAGlB,IAAJ,CAAU,CAAA,4BAAA,EAA+B,IAAC,CAAA,IAAhC,CAAA,CAAA,CAAV,EAAoD,MAApD,EAGA,CAAI,QAAS,IAAC,CAAA,IAAI,CAAC,UAAf,EACN,OAAA,EAAM,cAAN,EAV8G,GAehH,EAAG,uCAAwC,EAA3C,CAA8C,QAAS,MAAM,WAC5D,GAA0B,EAAG,IAAH,EAAU,QAAV,CAAoB,YAA9C,OAAA,MAAM,cAAN,EAD4D,GAvCjD,CA8Cb,uBAAA,CAEC,OAAA,EAAG,yCAA0C,IAA7C,CAAmD,MAAO,IAA1D,CAA+D,CAAE,EAAO,KAE3E,IAAA,EACI,GAAG,AAAuE,IAAvE,EAAG,GAAU,IAAb,CAAmB,CAAA,4BAAA,EAA+B,IAAC,CAAA,IAAhC,CAAA,CAAA,CAAnB,EAA6D,MAA7D,CAeH,OAXA,EAAG,GAAU,IAAb,CAAmB,uCAAwC,MAA3D,GAKK,AAHL,CAAA,EAAc,EAAG,GAAU,IAAb,CAAmB,sCAAjC,EAGiB,QAAZ,GAAuB,MAAvB,CAAgC,GAGpC,EAAG,GAAU,IAAb,CAAmB,wCAAyC,IAA5D,CAAkE,EAAY,IAAZ,IAGnE,EAAG,GAAU,IAAb,CAAmB,uCAAwC,MAA3D,EAlB8D,EAFzC,CA4BvB,gCAAA,CAEC,OAAA,EAAG,yCAA0C,IAA7C,CAAmD,MAAO,IAA1D,CAA+D,CAAE,EAAO,IAEvE,EAAG,GAAU,IAAb,CAAmB,yCAA0C,IAA7D,CAAmE,kCAAmC,MAAtG,GAJ8B,CAYhC,YAAe,CAAF,CAAb,CAEF,IAAA,EAAA,EAMG,GANA,EAAM,cAAN,GAMG,AAA8D,IAA9D,AAHH,CAAA,EAAS,AADT,CAAA,EAAS,EAAG,EAAM,aAAT,CAAA,EACO,OAAP,CAAgB,KAAzB,EAGO,IAAJ,CAAU,CAAA,4BAAA,EAA+B,IAAC,CAAA,IAAhC,CAAA,CAAA,CAAV,EAAoD,MAApD,CAUH,OAPA,EAAI,IAAJ,CAAU,YAAa,IAAvB,GACA,EAAI,IAAJ,CAAU,YAAa,IAAvB,GACA,EAAI,QAAJ,CAAc,WAGd,EAAO,IAAP,CAAa,IAAC,CAAA,IAAI,CAAC,aAAnB,EAAmC,WAAnC,CAAgD,QAAS,QAAzD,CAAmE,eAAgB,WAAnF,CAAgG,UAEhG,IAAI,CAAC,iBAAL,EAlBY,CA0Bb,YAAe,CAAF,CAAb,CAEF,IAAA,EAAA,EAAA,EAMG,GANA,EAAM,cAAN,GAMG,AAA8D,IAA9D,AAHH,CAAA,EAAS,AADT,CAAA,EAAS,EAAG,EAAM,aAAT,CAAA,EACO,OAAP,CAAgB,KAAzB,EAGO,IAAJ,CAAU,CAAA,4BAAA,EAA+B,IAAC,CAAA,IAAhC,CAAA,CAAA,CAAV,EAAoD,MAApD,CAcH,OAXA,IAAI,CAAC,QAAL,GAGA,EAAI,IAAJ,CAAU,UAAW,MAArB,GAEA,EACC,CAAA,OAAU,CAAA,GAAA,EAAM,IAAC,CAAA,EAAP,CAAA,oBAAA,CAAV,CACA,MAAU,IAAC,CAAA,UADX,CAEA,SAAU,EAAI,IAAJ,CAAU,wBAAyB,GAAnC,GACV,KAAU,EAAI,IAAJ,CAAU,eAAgB,SAA1B,EAHV,EAKD,EAAE,IAAF,CAAQ,IAAC,CAAA,QAAT,CAAmB,GAEjB,IAFF,CAEO,AAAE,GAEP,AAAuD,EAAS,OAAhE,EAEG,MAAA,EAAA,IAAA,CAAA,KAAA,EACF,EAAI,IAAJ,CAAS,sCAAsC,IAA/C,CAAqD,EAAS,IAAI,CAAC,KAAnE,EAEE,MAAA,EAAA,IAAA,CAAA,KAAA,EACF,CAAA,IAAC,CAAA,UAAD,CAAc,EAAS,IAAI,CAAC,KAAA,AAAA,EAG7B,EAAO,QAAP,CAAiB,gBAAiB,WAAlC,CAA+C,eAAgB,QAA/D,CAAyE,QAAS,IAAlF,CAAwF,IAAC,CAAA,IAAI,CAAC,WAA9F,EAA4G,QAA5G,CAAsH,UAEtH,EAAI,WAAJ,CAAiB,WAEjB,IAAI,CAAC,kBAAL,IAbO,IAAI,CAAC,aAAL,CAAoB,EAAK,EAAS,IAAlC,GAeP,IAnBF,CAmBO,CAAE,EAAO,EAAY,IAE1B,IAAI,CAAC,aAAL,CAAoB,EAAK,IAEzB,MAvBF,CAuBS,IAEP,IAAI,CAAC,UAAL,GA/CU,CAuDb,YAAe,CAAF,CAAb,CAEF,IAAA,EAAA,EAMG,GANA,EAAM,cAAN,GAMG,AAA8D,IAA9D,AAHH,CAAA,EAAS,AADT,CAAA,EAAS,EAAG,EAAM,aAAT,CAAA,EACO,OAAP,CAAgB,KAAzB,EAGO,IAAJ,CAAU,CAAA,4BAAA,EAA+B,IAAC,CAAA,IAAhC,CAAA,CAAA,CAAV,EAAoD,MAApD,CAUH,OAPA,EAAI,IAAJ,CAAU,YAAa,IAAvB,GACA,EAAI,IAAJ,CAAU,YAAa,IAAvB,GACA,EAAI,WAAJ,CAAiB,WAGjB,EAAO,WAAP,CAAoB,eAAgB,QAApC,CAA8C,QAAS,IAAvD,CAA6D,IAAC,CAAA,IAAI,CAAC,WAAnE,EAAiF,QAAjF,CAA2F,UAE3F,IAAI,CAAC,kBAAL,EAlBY,CA2Bb,mBAAmB,CAMlB,OAHA,EAAG,yCAA0C,QAA7C,CAAuD,WAGvD,EAAG,uCAAwC,QAA3C,CAAqD,WANnC,CAYnB,oBAAoB,CAMnB,OAHA,EAAG,yCAA0C,WAA7C,CAA0D,WAG1D,EAAG,uCAAwC,WAA3C,CAAwD,WANrC,CAYpB,UAAA,CAAa,OAAA,EAAG,yCAA0C,MAA7C,CAAqD,OAAQ,KAA7D,CAAoE,CAAA,QAAS,KAAM,WAAY,CAAA,WAAY,OAAQ,QAAS,EAA7B,CAA3B,EAAvE,CAMV,YAAA,CAAe,OAAA,EAAG,yCAA0C,MAA7C,CAAqD,OAAQ,OAA7D,EAAH,CAUZ,cAAiB,CAAF,CAAO,CAAP,CAAc,EAAU,EAAxB,CAAf,CAEF,IAAA,EAKG,OALA,QAAQ,KAAR,CAAe,GAEmB,GAAlC,CAAA,EAAU,IAAC,CAAA,IAAI,CAAC,UAAA,AAAA,EAChB,EAAU,EAAG,qDAAsD,MAAnE,CAEA,EAAG,kCAAoC,EAAU,KAAO,EAAU,cAAe,WAAjF,CAA8F,GAAM,IAApG,CAA0G,MAAO,KAAjH,CAAwH,KAAO,OAA/H,CAAwI,IAP1H,CAvPhB,EAkQA,EAAG,SAAS,IAAZ,EAAmB,OAAnB,CAA4B,gDAxQtB,E,C,E,I,C,C","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_v5_15_10 = class SV_WC_Payment_Methods_Handler_v5_15_10 {\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)) return event1.preventDefault();\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_v5_15_10_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_v5_15_10\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\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_v5_15_10_loaded' )\n"],"names":["jQuery","$","window","SV_WC_Payment_Methods_Handler_v5_15_10","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","row","button","currentTarget","parents","find","length","confirm","delete_ays","preventDefault","event","hasClass","each","index","element","titleColumn","remove","children","html","hide","show","addClass","text","cancel_button","removeClass","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_v5_15_11 = class SV_WC_Payment_Methods_Handler_v5_15_11 {\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_v5_15_11_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_v5_15_11\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_v5_15_11_loaded' )\n"],"names":["jQuery","$","window","SV_WC_Payment_Methods_Handler_v5_15_11","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 0c6af5188..202c72f0f 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_v5_15_10=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_v5_15_10_loaded")})}).call({}); +(function(){var e=[].indexOf;jQuery(function(t){return window.SV_WC_Payment_Form_Handler_v5_15_11=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_v5_15_11_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 ca0c0f0f0..e98fd3c78 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":"ACOG,CAAA,WAAA,IAAA,EAAA,EAAA,CAAA,OAAA,CACH,OAAO,SAAE,CAAF,EA2XN,OAvXM,OAAO,mCAAA,CAAb,MAaC,YAAc,CAAD,CAAb,CAWC,GATA,IAAC,CAAA,EAAD,CAA2B,EAAK,EAAhC,CACA,IAAC,CAAA,aAAD,CAA2B,EAAK,aAAhC,CACA,IAAC,CAAA,SAAD,CAA2B,EAAK,SAAhC,CACA,IAAC,CAAA,IAAD,CAA2B,EAAK,IAAhC,CACA,IAAC,CAAA,YAAD,CAA2B,EAAK,YAAhC,CACA,IAAC,CAAA,uBAAD,CAA2B,EAAK,uBAAhC,CACA,IAAC,CAAA,kBAAD,CAA2B,EAAK,kBAAA,CAG7B,EAAG,iBAAkB,MAAxB,CACC,IAAC,CAAA,IAAD,CAAQ,EAAG,iBACX,IAAI,CAAC,oBAAL,QAEI,GAAG,EAAG,qBAAsB,MAA5B,CACJ,IAAC,CAAA,IAAD,CAAQ,EAAG,qBACX,IAAI,CAAC,eAAL,QAEI,GAAG,EAAG,2BAA4B,MAAlC,CACJ,IAAC,CAAA,IAAD,CAAQ,EAAG,2BACX,IAAI,CAAC,8BAAL,OAFI,CAKJ,QAAQ,GAAR,CAAa,0BACb,MAvBJ,CA0BG,IAAC,CAAA,MAAD,CAAU,OAAQ,yCAAlB,CAG4K,WAAT,IAAC,CAAA,IAAD,EAAnK,IAAC,CAAA,IAAI,CAAC,EAAN,CAAU,QAAS,uGAAwG,IAAG,IAAI,CAAC,wBAAL,IAE9H,EAAG,UAAW,OAAd,CAAuB,kCAAmC,CAAE,GAAI,IAAC,CAAA,EAAP,CAAW,SAAU,IAAV,AAAX,EAjC9C,CAuCb,sBAAA,CAcC,MAX6F,gBAAT,IAAC,CAAA,IAAD,EAApF,EAAG,SAAS,IAAZ,EAAmB,EAAnB,CAAuB,mBAAoB,IAAG,IAAI,CAAC,yBAAL,IAG9C,EAAG,SAAS,IAAZ,EAAmB,EAAnB,CAAuB,mBAAoB,IAAG,IAAI,CAAC,kBAAL,IAK9C,EAAG,SAAS,IAAZ,EAAmB,EAAnB,CAAuB,mBAAoB,IAAG,IAAI,CAAC,4BAAL,IAG9C,IAAC,CAAA,IAAI,CAAC,EAAN,CAAU,CAAA,qBAAA,EAAyB,IAAC,CAAA,EAA1B,CAAA,CAAV,CAA2C,IAAG,IAAI,CAAC,qBAAL,GAdzB,CAoBtB,iBAAA,CAYC,OAVA,IAAI,CAAC,kBAAL,GAGY,gBAAT,IAAC,CAAA,IAAD,EACF,IAAI,CAAC,yBAAL,GAGD,IAAI,CAAC,4BAAL,GAGA,IAAC,CAAA,IAAI,CAAC,MAAN,CAAa,KAGZ,GAAuC,EAAG,oDAAqD,GAAxD,KAAiE,IAAC,CAAA,EAAzG,CAAA,OAAO,IAAI,CAAC,qBAAL,EAHK,EAZG,CAqBjB,gCAAA,CASC,OAPA,IAAI,CAAC,kBAAL,GAGY,gBAAT,IAAC,CAAA,IAAD,EACF,IAAI,CAAC,yBAAL,GAGD,IAAC,CAAA,IAAI,CAAC,MAAN,CAAa,KAGZ,GAAuC,EAAG,0DAA2D,GAA9D,KAAuE,IAAC,CAAA,EAA/G,CAAA,OAAO,IAAI,CAAC,qBAAL,EAHK,EATkB,CAsBhC,oBAAA,CAMC,OAJA,IAAC,CAAA,cAAD,CAAkB,EAAG,CAAA,gBAAA,EAAoB,IAAC,CAAA,EAArB,CAAA,CAAH,EAIlB,AAFmB,IAAC,CAAA,cAAc,CAAC,IAAhB,CAAsB,kCAExB,IAAjB,CAAuB,CAAE,EAAG,IAG3B,CAAG,EAAG,GAAQ,GAAX,IAIH,EAAG,GAAQ,OAAX,CAAoB,SAbF,CAoBpB,uBAAA,CAEF,IAAA,EAAA,QACG,CAAgB,IAAC,CAAA,IAAI,CAAC,EAAN,CAAU,iBAE1B,IAAC,CAAA,6BAAD,CAAiC,IAAC,CAAA,cAAc,CAAC,IAAhB,CAAsB,mDAAoD,GAA1E,GAGjC,EAAW,AAAS,gBAAT,IAAC,CAAA,IAAD,CAA4B,IAAI,CAAC,kBAAL,GAA+B,IAAI,CAAC,qBAAL,GAGtE,EAAU,AAAoI,CAAA,IAApI,EAAG,SAAS,IAAZ,EAAmB,cAAnB,CAAmC,wCAAyC,CAAE,aAAc,IAAhB,CAAsB,kBAAmB,CAAzC,GAE/E,GAAS,EAbM,CAmBvB,2BAAA,CACF,IAAA,EAAA,EAAA,EAUG,OAVA,EAAe,EAAE,6DAA6D,OAA/D,CAAuE,oBACtF,EAAe,EAAE,qDAAqD,OAAvD,CAA+D,oBAC9E,EAAe,EAAE,kDAAkD,OAApD,CAA4D,iBAGxC,EAAa,GAAb,IAAsB,EAAa,GAAb,GAAmB,MAAnB,CAA4B,GAArF,EAAa,OAAb,CAAsB,UACQ,EAAQ,GAAR,IAAiB,EAAQ,GAAR,GAAc,MAAd,CAAuB,GAAtE,EAAQ,OAAR,CAAiB,UACU,EAAK,GAAL,IAAc,EAAK,GAAL,GAAW,MAAX,CAAoB,GAA7D,EAAK,OAAL,CAAc,UAGd,EAAG,oDAAqD,EAAxD,CAA4D,qBAAsB,IAAG,IAAI,CAAC,gCAAL,GAX3D,CAiB3B,kCAAA,CAEF,IAAA,EAAA,EAAA,EAAA,QAgBG,CAhBA,EAAe,EAAG,6DAClB,EAAe,EAAG,qDAClB,EAAe,EAAG,kDAElB,EAAa,EAAE,OAAO,CAAC,QAAV,CAAoB,EAAa,GAAb,IAEjC,AAAG,EAAH,EAAA,IAAA,CAAqB,IAAC,CAAA,kBAAA,CAAnB,GACF,EAAa,QAAb,CAAuB,qBAEvB,EAAa,WAAb,CAA0B,qBAExB,EAAE,OAAO,CAAC,kBAAV,CAA8B,EAAQ,OAAR,CAAiB,kBACjD,EAAQ,QAAR,CAAkB,cAElB,EAAQ,WAAR,CAAqB,cAEnB,EAAE,OAAO,CAAC,eAAV,CAA2B,EAAK,GAAL,KAC7B,EAAK,QAAL,CAAe,cAEf,EAAK,WAAL,CAAkB,aArBc,CA2BlC,oBAAA,CAEF,IAAA,EAAA,EAAA,EAAA,QAkCG,CAlCA,EAAS,EAAT,CAKG,MAHH,CAAA,EAAM,IAAC,CAAA,cAAc,CAAC,IAAhB,CAAsB,kDAAmD,GAAzE,EAAN,IAKI,GAC2C,KAAK,IAAL,CAAW,IAAxD,EAAO,IAAP,CAAa,IAAC,CAAA,MAAM,CAAC,kBAArB,EAC6C,CAAA,EAAI,MAAJ,CAAa,GAAK,EAAI,MAAJ,CAAa,CAAA,GAA5E,EAAO,IAAP,CAAa,IAAC,CAAA,MAAM,CAAC,kBAArB,GACO,IAAC,CAAA,YAAJ,EACD,CAAA,CAAI,IAAC,CAAA,6BAAL,EAAsC,IAAC,CAAA,uBAA1C,AAA0C,GACzC,EAAO,IAAP,CAAa,IAAC,CAAA,MAAM,CAAC,WAArB,GAGI,IAAC,CAAA,6BAAR,GAEC,EAAiB,IAAC,CAAA,cAAc,CAAC,IAAhB,CAAsB,6DAA8D,GAApF,GACjB,EAAiB,EAAE,OAAO,CAAC,aAAV,CAAyB,IAAC,CAAA,cAAc,CAAC,IAAhB,CAAsB,qDAAsD,GAA5E,IAG1C,CAAA,EAAiB,EAAe,OAAf,CAAwB,QAAS,GAAlD,GAMsD,CAAA,EAAe,MAAf,CAAwB,IAAM,EAAe,MAAf,CAAwB,EAAA,GAA3G,EAAO,IAAP,CAAa,IAAC,CAAA,MAAM,CAAC,0BAArB,EACqD,KAAK,IAAL,CAAW,IAAhE,EAAO,IAAP,CAAa,IAAC,CAAA,MAAM,CAAC,0BAArB,EACkD,EAAE,OAAO,CAAC,kBAAV,CAA8B,IAAhF,EAAO,IAAP,CAAa,IAAC,CAAA,MAAM,CAAC,mBAArB,GAJA,EAAO,IAAP,CAAa,IAAC,CAAA,MAAM,CAAC,mBAArB,EAOmD,EAAE,OAAO,CAAC,kBAAV,CAA8B,IAAlF,EAAO,IAAP,CAAa,IAAC,CAAA,MAAM,CAAC,qBAArB,GAEE,EAAO,MAAP,CAAgB,IAClB,IAAI,CAAC,aAAL,CAAoB,GACb,CAAA,IAGP,IAAC,CAAA,cAAc,CAAC,IAAhB,CAAsB,6DAA8D,GAApF,CAAyF,GAClF,CAAA,EA1CW,CAgDpB,uBAAA,CAEF,IAAA,EAAA,EAAA,QAAG,EAAe,IAAC,CAAA,6BAAhB,IAEA,EAAS,EAAT,CAEA,EAAiB,IAAC,CAAA,cAAc,CAAC,IAAhB,CAAqB,wDAAwD,GAA7E,GACjB,EAAiB,IAAC,CAAA,cAAc,CAAC,IAAhB,CAAqB,wDAAwD,GAA7E,GAGV,GAGkD,IAAK,EAAe,MAA5E,EAAA,EAAO,IAAP,CAAa,IAAC,CAAA,MAAM,CAAC,6BAArB,EACwD,KAAK,IAAL,CAAW,IAAnE,EAAO,IAAP,CAAa,IAAC,CAAA,MAAM,CAAC,6BAArB,GAHA,EAAO,IAAP,CAAa,IAAC,CAAA,MAAM,CAAC,sBAArB,EAMM,GAGkD,CAAA,EAAe,MAAf,CAAwB,GAAK,EAAe,MAAf,CAAwB,EAAA,GAA7G,EAAO,IAAP,CAAa,IAAC,CAAA,MAAM,CAAC,6BAArB,EACiD,KAAK,IAAL,CAAW,IAA5D,EAAO,IAAP,CAAa,IAAC,CAAA,MAAM,CAAC,sBAArB,GAHA,EAAO,IAAP,CAAa,IAAC,CAAA,MAAM,CAAC,sBAArB,EAKE,EAAO,MAAP,CAAgB,IAClB,IAAI,CAAC,aAAL,CAAoB,GACb,CAAA,IAGP,IAAC,CAAA,cAAc,CAAC,IAAhB,CAAsB,wDAAyD,GAA/E,CAAoF,GAC7E,CAAA,GA7Bc,CAmCvB,cAAgB,CAAD,CAAA,CAad,OAVA,EAAG,4CAA6C,MAAhD,GAGA,IAAC,CAAA,IAAI,CAAC,OAAN,CAAc,qCAAuC,EAAO,IAAP,CAAa,aAAgB,cAGlF,IAAC,CAAA,IAAI,CAAC,WAAN,CAAmB,cAAe,OAAlC,GACA,IAAC,CAAA,IAAI,CAAC,IAAN,CAAY,uBAAwB,IAApC,GAGA,EAAG,cAAe,OAAlB,CAA2B,CAAE,UAAW,IAAC,CAAA,IAAI,CAAC,MAAN,GAAe,GAAf,CAAqB,GAAlC,EAAyC,IAbtD,CAmBf,8BAAA,CAEF,IAAA,EAAA,EAAA,EAAA,EA8CG,GA7CA,EAAgB,IAAC,CAAA,aAAjB,CAE2B,IAAC,CAAA,YAA5B,CACA,EAA2B,IAAC,CAAA,uBAA5B,CAGA,EAAa,AADb,CAAA,EAAgC,EAAG,CAAA,UAAA,EAAc,EAAd,wBAAA,CAAH,CAAA,EACW,IAA9B,CAAoC,kDAAmD,OAAvF,CAAgG,aAG7G,EAAG,CAAA,YAAA,EAAgB,IAAC,CAAA,aAAjB,CAAA,cAAA,CAAH,EAAqD,EAArD,CAAwD,SAAU,WAIjE,GAFoC,EAAG,CAAA,YAAA,EAAgB,EAAhB,sBAAA,CAAH,EAA4D,GAA5D,GAQnC,CAAA,GAHA,EAA8B,OAA9B,CAAuC,KAGpC,EAEF,OADA,EAAW,WAAX,CAAwB,iBAAkB,QAA1C,CAAoD,kBACpD,EAA8B,KAA9B,CAAqC,EARvC,MAeC,GAHA,EAA8B,SAA9B,CAAyC,KAGtC,EAEF,OADA,EAAW,WAAX,CAAwB,kBAAmB,QAA3C,CAAqD,iBACrD,EAA8B,IAA9B,CAAoC,qDAAsD,OAA1F,CAAmG,aAAc,KAAjH,CAAwH,EArBzD,GAsBjE,MAtBD,GA0BA,EAAG,uBAAwB,EAA3B,CAA8B,SAAU,WAC3C,IAAA,QAEI,CAFA,EAAc,EAAG,CAAA,YAAA,EAAgB,EAAhB,wBAAA,CAAH,EAA8D,OAA9D,CAAuE,cAElF,EAAG,IAAH,EAAU,EAAV,CAAc,cAChB,EAAY,SAAZ,GACA,EAAY,IAAZ,GAAmB,IAAnB,KAEA,EAAY,IAAZ,GACA,EAAY,IAAZ,GAAmB,IAAnB,GARsC,GAUxC,CAA2C,EAAG,uBAAwB,EAA3B,CAA+B,YAA1E,OAAA,EAAG,uBAAwB,MAA3B,EAhD6B,CAsD9B,0BAAA,CAEF,IAAA,QAEG,AAAG,AAFH,CAAA,EAAgB,IAAC,CAAA,cAAc,CAAC,IAAhB,CAAsB,qDAAtC,EAEiB,EAAd,CAAkB,YAAkB,EAAc,OAAd,GAA6B,EAAc,SAAd,EAJ3C,CAW1B,UAAA,CAAa,OAAA,IAAC,CAAA,IAAI,CAAC,KAAN,CAAa,CAAA,QAAS,KAAM,WAAY,CAAA,WAAY,OAAO,QAAS,EAA5B,CAA3B,EAAhB,CAMV,YAAA,CAAe,OAAA,IAAC,CAAA,IAAI,CAAC,OAAN,EAAH,CAnXb,EAuXA,EAAG,SAAS,IAAZ,EAAmB,OAAnB,CAA4B,6CA3XtB,E,C,E,I,C,C","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_v5_15_10 = class SV_WC_Payment_Form_Handler_v5_15_10 {\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_v5_15_10 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_v5_15_10_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_v5_15_10\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_v5_15_10 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_v5_15_10_loaded\" )\n"],"names":["indexOf","jQuery","$","window","SV_WC_Payment_Form_Handler_v5_15_10","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_v5_15_11 = class SV_WC_Payment_Form_Handler_v5_15_11 {\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_v5_15_11 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_v5_15_11_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_v5_15_11\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_v5_15_11 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_v5_15_11_loaded\" )\n"],"names":["indexOf","jQuery","$","window","SV_WC_Payment_Form_Handler_v5_15_11","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 4a1366a1f..fd642f77c 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_v5_15_10 + class window.SV_WC_Apple_Pay_Handler_v5_15_11 # Constructs the handler. @@ -440,4 +440,4 @@ jQuery ( $ ) -> # dispatch loaded event - $( document.body ).trigger( 'sv_wc_apple_pay_handler_v5_15_10_loaded' ) + $( document.body ).trigger( 'sv_wc_apple_pay_handler_v5_15_11_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 fd42128a7..63ddd17f4 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_v5_15_10} object + * @type {SV_WC_Google_Pay_Handler_v5_15_11} object */ - window.SV_WC_Google_Pay_Handler_v5_15_10 = class SV_WC_Google_Pay_Handler_v5_15_10 { + window.SV_WC_Google_Pay_Handler_v5_15_11 = class SV_WC_Google_Pay_Handler_v5_15_11 { /** * Handler constructor. @@ -612,6 +612,6 @@ jQuery( function( $ ) { } } - $( document.body ).trigger( 'sv_wc_google_pay_handler_v5_15_10_loaded' ); + $( document.body ).trigger( 'sv_wc_google_pay_handler_v5_15_11_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 6a8dfe70d..b2cfcb84d 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_v5_15_10 + class window.SV_WC_Payment_Methods_Handler_v5_15_11 # Constructs the class. @@ -59,6 +59,8 @@ jQuery ( $ ) -> return if not confirm( @i18n.delete_ays ) + # re-enable the button if user cancels (side note: WooCommerce core is the one that added the disabled state in the first place) + button.prop( 'disabled', false ).removeClass( 'disabled' ) event.preventDefault() ) @@ -270,4 +272,4 @@ jQuery ( $ ) -> # dispatch loaded event - $( document.body ).trigger( 'sv_wc_payment_methods_handler_v5_15_10_loaded' ) + $( document.body ).trigger( 'sv_wc_payment_methods_handler_v5_15_11_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 133347e2a..634753c2c 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_v5_15_10 + class window.SV_WC_Payment_Form_Handler_v5_15_11 # 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_v5_15_10 instance + # Returns SV_WC_Payment_Form_Handler_v5_15_11 instance constructor: (args) -> @id = args.id @@ -385,4 +385,4 @@ jQuery ( $ ) -> # dispatch loaded event - $( document.body ).trigger( "sv_wc_payment_form_handler_v5_15_10_loaded" ) + $( document.body ).trigger( "sv_wc_payment_form_handler_v5_15_11_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 8ac0a30b1..5526436de 100644 --- a/woocommerce/payment-gateway/class-sv-wc-payment-gateway-direct.php +++ b/woocommerce/payment-gateway/class-sv-wc-payment-gateway-direct.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\v5_15_10; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11; -use SkyVerge\WooCommerce\PluginFramework\v5_15_10\Blocks\Blocks_Handler; +use SkyVerge\WooCommerce\PluginFramework\v5_15_11\Blocks\Blocks_Handler; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\SV_WC_Payment_Gateway_Direct' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\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 0e04ee877..f93060627 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\v5_15_10; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\SV_WC_Payment_Gateway_Helper' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\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 c84107b45..c3b2f3a4c 100644 --- a/woocommerce/payment-gateway/class-sv-wc-payment-gateway-hosted.php +++ b/woocommerce/payment-gateway/class-sv-wc-payment-gateway-hosted.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\v5_15_10; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\SV_WC_Payment_Gateway_Hosted' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\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 8665e09ae..6940fe827 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\v5_15_10; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\SV_WC_Payment_Gateway_My_Payment_Methods' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\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-v5_15_10", $this->get_plugin()->get_payment_gateway_framework_assets_url() . '/css/frontend/' . $handle . '.min.css', [ 'dashicons' ], $fw_version ); + wp_enqueue_style( "$handle-v5_15_11", $this->get_plugin()->get_payment_gateway_framework_assets_url() . '/css/frontend/' . $handle . '.min.css', [ 'dashicons' ], $fw_version ); - wp_enqueue_script( "$handle-v5_15_10", $this->get_plugin()->get_payment_gateway_framework_assets_url() . '/dist/frontend/' . $handle . '.js', [ 'jquery-tiptip', 'jquery' ], $fw_version ); + wp_enqueue_script( "$handle-v5_15_11", $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 07397f6ec..ee7a0a5af 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\v5_15_10; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11; -use SkyVerge\WooCommerce\PluginFramework\v5_15_10\Blocks\Blocks_Handler; -use SkyVerge\WooCommerce\PluginFramework\v5_15_10\Enums\PaymentFormContext; -use SkyVerge\WooCommerce\PluginFramework\v5_15_10\Payment_Gateway\Blocks\Gateway_Checkout_Block_Integration; +use SkyVerge\WooCommerce\PluginFramework\v5_15_11\Blocks\Blocks_Handler; +use SkyVerge\WooCommerce\PluginFramework\v5_15_11\Enums\PaymentFormContext; +use SkyVerge\WooCommerce\PluginFramework\v5_15_11\Payment_Gateway\Blocks\Gateway_Checkout_Block_Integration; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\SV_WC_Payment_Gateway_Payment_Form' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\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\v5_15_10\SV_WC_Payment_Gateway_Helper', 'normalize_card_type' ], $card_types ); + $args['enabled_card_types'] = array_map( [ 'SkyVerge\WooCommerce\PluginFramework\v5_15_11\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 fe6b8cbf4..b7c15ab26 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\v5_15_10; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11; use Automattic\WooCommerce\Admin\Notes\WC_Admin_Note; use Automattic\WooCommerce\Admin\Notes\WC_Admin_Notes; -use SkyVerge\WooCommerce\PluginFramework\v5_15_10\Payment_Gateway\Blocks\Gateway_Blocks_Handler; -use SkyVerge\WooCommerce\PluginFramework\v5_15_10\Payment_Gateway\External_Checkout\Google_Pay\Google_Pay; +use SkyVerge\WooCommerce\PluginFramework\v5_15_11\Payment_Gateway\Blocks\Gateway_Blocks_Handler; +use SkyVerge\WooCommerce\PluginFramework\v5_15_11\Payment_Gateway\External_Checkout\Google_Pay\Google_Pay; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\SV_WC_Payment_Gateway_Plugin' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\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 504885d01..72d05211f 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\v5_15_10; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\SV_WC_Payment_Gateway_Privacy' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\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 f9b2dc1bb..cfa74acc5 100755 --- a/woocommerce/payment-gateway/class-sv-wc-payment-gateway.php +++ b/woocommerce/payment-gateway/class-sv-wc-payment-gateway.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\v5_15_10; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11; use Automattic\WooCommerce\Blocks\Integrations\IntegrationInterface; -use SkyVerge\WooCommerce\PluginFramework\v5_15_10\Blocks\Blocks_Handler; -use SkyVerge\WooCommerce\PluginFramework\v5_15_10\Payment_Gateway\Blocks\Gateway_Checkout_Block_Integration; +use SkyVerge\WooCommerce\PluginFramework\v5_15_11\Blocks\Blocks_Handler; +use SkyVerge\WooCommerce\PluginFramework\v5_15_11\Payment_Gateway\Blocks\Gateway_Checkout_Block_Integration; use stdClass; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\SV_WC_Payment_Gateway' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\SV_WC_Payment_Gateway' ) ) : /** @@ -473,7 +473,7 @@ protected function enqueue_payment_form_assets() { } $handle = 'sv-wc-payment-gateway-payment-form'; - $versioned_handle = $handle . '-v5_15_10'; + $versioned_handle = $handle . '-v5_15_11'; // 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 835d0fd1a..476a5c4fb 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\v5_15_10; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\SV_WC_Payment_Gateway_Exception' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\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 eaaa38d0f..f2131f34d 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\v5_15_10; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\SV_WC_Payment_Gateway_Integration' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\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 18a7a1faa..fa099015f 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,11 +22,11 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v5_15_10; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\SV_WC_Payment_Gateway_Integration_Pre_Orders' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\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 6efffab8d..ade2f3ca7 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,11 +22,11 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v5_15_10; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\SV_WC_Payment_Gateway_Integration_Subscriptions' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\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 13ecdaf9a..e718544b8 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\v5_15_10; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\SV_WC_Payment_Gateway_Payment_Token' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\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 5054cd6ad..ea51c638f 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,11 +22,11 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 */ -namespace SkyVerge\WooCommerce\PluginFramework\v5_15_10; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\SV_WC_Payment_Gateway_Payment_Tokens_Handler' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\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 6206462ee..1feb51039 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\v5_15_10\Payment_Gateway; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11\Payment_Gateway; -use SkyVerge\WooCommerce\PluginFramework\v5_15_10\REST_API as Plugin_REST_API; +use SkyVerge\WooCommerce\PluginFramework\v5_15_11\REST_API as Plugin_REST_API; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\Payment_Gateway\\REST_API' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\Payment_Gateway\\REST_API' ) ) : /** * The payment gateway plugin REST API handler class. * - * @see \SkyVerge\WooCommerce\PluginFramework\v5_15_10\REST_API + * @see \SkyVerge\WooCommerce\PluginFramework\v5_15_11\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\v5_15_10\REST_API::get_system_status_data() + * @see \SkyVerge\WooCommerce\PluginFramework\v5_15_11\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 934868260..516fbb647 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\v5_15_10\REST_API\Controllers; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11\REST_API\Controllers; -use SkyVerge\WooCommerce\PluginFramework\v5_15_10\Settings_API\Abstract_Settings; -use SkyVerge\WooCommerce\PluginFramework\v5_15_10\Settings_API\Setting; +use SkyVerge\WooCommerce\PluginFramework\v5_15_11\Settings_API\Abstract_Settings; +use SkyVerge\WooCommerce\PluginFramework\v5_15_11\Settings_API\Setting; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\REST_API\\Controllers\\Settings' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\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 197c64c6c..dfe04adc6 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\v5_15_10; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\REST_API' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\REST_API' ) ) : /** diff --git a/woocommerce/utilities/class-sv-wp-async-request.php b/woocommerce/utilities/class-sv-wp-async-request.php index 9ed84dcb4..f36c646c9 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\v5_15_10; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\SV_WP_Async_Request' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\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 2d9fe5fe6..f65fdd664 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\v5_15_10; +namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11; defined( 'ABSPATH' ) or exit; -if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\SV_WP_Background_Job_Handler' ) ) : +if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\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 902dbbeae..8dd8ffca8 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\v5_15_10; + namespace SkyVerge\WooCommerce\PluginFramework\v5_15_11; defined( 'ABSPATH' ) or exit; - if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_10\\SV_WP_Job_Batch_Handler' ) ) : + if ( ! class_exists( '\\SkyVerge\\WooCommerce\\PluginFramework\\v5_15_11\\SV_WP_Job_Batch_Handler' ) ) : /**