diff --git a/modules/ppcp-button/.babelrc b/modules/ppcp-button/.babelrc new file mode 100644 index 000000000..9e972c8b9 --- /dev/null +++ b/modules/ppcp-button/.babelrc @@ -0,0 +1,11 @@ +{ + "presets": [ + [ + "@babel/preset-env", + { + "useBuiltIns": "usage", + "corejs": "3.25.0" + } + ] + ] +} diff --git a/modules/ppcp-button/package.json b/modules/ppcp-button/package.json index cceb1b748..5fb4286e1 100644 --- a/modules/ppcp-button/package.json +++ b/modules/ppcp-button/package.json @@ -1,25 +1,34 @@ { - "name": "ppc-button", - "version": "1.0.0", - "license": "GPL-3.0-or-later", - "main": "resources/js/button.js", - "dependencies": { - "deepmerge": "^4.2.2" - }, - "devDependencies": { - "@babel/core": "^7.19", - "@babel/preset-env": "^7.19", - "babel-loader": "^8.2", - "cross-env": "^7.0.3", - "file-loader": "^6.2.0", - "sass": "^1.42.1", - "sass-loader": "^12.1.0", - "webpack": "^5.74", - "webpack-cli": "^4.10" - }, - "scripts": { - "build": "cross-env BABEL_ENV=default NODE_ENV=production webpack", - "watch": "cross-env BABEL_ENV=default NODE_ENV=production webpack --watch", - "dev": "cross-env BABEL_ENV=default webpack --watch" - } + "name": "ppc-button", + "version": "1.0.0", + "license": "GPL-3.0-or-later", + "main": "resources/js/button.js", + "browserslist": [ + "> 0.5%", + "Safari >= 8", + "Chrome >= 41", + "Firefox >= 43", + "Edge >= 14" + ], + "dependencies": { + "core-js": "^3.25.0", + "formdata-polyfill": "^4.0.10", + "deepmerge": "^4.2.2" + }, + "devDependencies": { + "@babel/core": "^7.19", + "@babel/preset-env": "^7.19", + "babel-loader": "^8.2", + "cross-env": "^7.0.3", + "file-loader": "^6.2.0", + "sass": "^1.42.1", + "sass-loader": "^12.1.0", + "webpack": "^5.74", + "webpack-cli": "^4.10" + }, + "scripts": { + "build": "cross-env BABEL_ENV=default NODE_ENV=production webpack", + "watch": "cross-env BABEL_ENV=default NODE_ENV=production webpack --watch", + "dev": "cross-env BABEL_ENV=default webpack --watch" + } } diff --git a/modules/ppcp-button/resources/js/button.js b/modules/ppcp-button/resources/js/button.js index 23a9d71b9..9d9d792ae 100644 --- a/modules/ppcp-button/resources/js/button.js +++ b/modules/ppcp-button/resources/js/button.js @@ -240,6 +240,6 @@ document.addEventListener( return; } - document.body.append(script); + document.body.appendChild(script); }, ); diff --git a/modules/ppcp-button/resources/js/modules/ActionHandler/CartActionHandler.js b/modules/ppcp-button/resources/js/modules/ActionHandler/CartActionHandler.js index d9004f0fc..dce4259c6 100644 --- a/modules/ppcp-button/resources/js/modules/ActionHandler/CartActionHandler.js +++ b/modules/ppcp-button/resources/js/modules/ActionHandler/CartActionHandler.js @@ -16,6 +16,7 @@ class CartActionHandler { this.config.bn_codes[this.config.context] : ''; return fetch(this.config.ajax.create_order.endpoint, { method: 'POST', + credentials: 'same-origin', body: JSON.stringify({ nonce: this.config.ajax.create_order.nonce, purchase_units: [], diff --git a/modules/ppcp-button/resources/js/modules/ActionHandler/CheckoutActionHandler.js b/modules/ppcp-button/resources/js/modules/ActionHandler/CheckoutActionHandler.js index 8b4dd7501..98e14e134 100644 --- a/modules/ppcp-button/resources/js/modules/ActionHandler/CheckoutActionHandler.js +++ b/modules/ppcp-button/resources/js/modules/ActionHandler/CheckoutActionHandler.js @@ -1,3 +1,4 @@ +import 'formdata-polyfill'; import onApprove from '../OnApproveHandler/onApproveForPayNow.js'; import {payerData} from "../Helper/PayerData"; import {getCurrentPaymentMethod} from "../Helper/CheckoutMethodState"; @@ -22,7 +23,7 @@ class CheckoutActionHandler { const formSelector = this.config.context === 'checkout' ? 'form.checkout' : 'form#order_review'; const formData = new FormData(document.querySelector(formSelector)); // will not handle fields with multiple values (checkboxes,