diff --git a/assets/build/unzer_apple_pay_v2.asset.php b/assets/build/unzer_apple_pay_v2.asset.php
index 7068254..867a1a1 100644
--- a/assets/build/unzer_apple_pay_v2.asset.php
+++ b/assets/build/unzer_apple_pay_v2.asset.php
@@ -1,4 +1,4 @@
array( 'react-jsx-runtime', 'wc-blocks-registry', 'wc-settings', 'wp-element', 'wp-html-entities' ),
- 'version' => '11275690762e1158d528',
+ 'version' => '916afb7af7c9d1103569',
);
diff --git a/assets/build/unzer_apple_pay_v2.js b/assets/build/unzer_apple_pay_v2.js
index 6c22c1c..5c21ce7 100644
--- a/assets/build/unzer_apple_pay_v2.js
+++ b/assets/build/unzer_apple_pay_v2.js
@@ -1 +1 @@
-(()=>{"use strict";const e=window.wp.htmlEntities,n=window.wc.wcBlocksRegistry,t=window.ReactJSXRuntime,s=window.wc.wcSettings,o=window.wp.element,i="apple_pay_v2",p=(0,s.getSetting)("unzer_"+i+"_data",{}),c=p.title||i,a=p.id||i,r=p?.description||"",m=p?.publicKey||"",u=p?.locale||"",d=p.paymentComponentId||a+"-payment-component",R=({eventRegistration:e,emitResponse:n})=>{const{onPaymentSetup:s}=e;return(0,o.useEffect)(()=>{const e=s(function(e,n,t,s){return async()=>{try{const n=document.getElementById(e);n||console.error("unzer payment component does not exist: "+e);const o=await n.submit();if(o.submitResponse){if(!0===o.submitResponse.success){const e={};e.unzer_nonce=s.nonce,e["unzer-apple-pay-v2-id"]=o.submitResponse.data.id;const n={type:t?.responseTypes?.SUCCESS,meta:{paymentMethodData:e}};return console.log("submit response: ",o.submitResponse,n),n}return{type:t?.responseTypes?.ERROR,message:"GENERAL ERROR 1"}}return{type:t?.responseTypes?.ERROR,message:"GENERAL ERROR 2"}}catch(e){return{type:t?.responseTypes?.ERROR,message:"GENERAL ERROR 3"}}}}(d,0,n,p));return e},[s]),(0,t.jsxs)("div",{children:[r&&(0,t.jsx)("p",{children:r}),(0,t.jsx)("unzer-payment",{id:d,publicKey:m,locale:u,children:(0,t.jsx)("unzer-apple-pay",{})})]})};!function(s,o,i){(0,n.registerPaymentMethod)({name:s,label:(0,t.jsx)("div",{children:(0,t.jsx)("span",{className:"wc-block-components-payment-method-label",children:o})}),content:i,edit:i,canMakePayment:()=>!0,ariaLabel:(0,e.decodeEntities)(o),supports:{features:["products"]}})}(a,c,(0,t.jsx)(R,{}))})();
\ No newline at end of file
+(()=>{"use strict";const e=window.wp.htmlEntities,n=window.wc.wcBlocksRegistry,t=window.ReactJSXRuntime,s=window.wc.wcSettings,o=window.wp.element,r="apple_pay_v2",c=(0,s.getSetting)("unzer_"+r+"_data",{}),a=c.title||r,p=c.id||r,i=c?.description||"",m=c?.publicKey||"",d=c?.locale||"",u=c.paymentComponentId||p+"-payment-component",y=c.checkoutComponentId||p+"-checkout-component",l=({eventRegistration:e,emitResponse:n})=>{const{onPaymentSetup:s}=e;return(0,o.useEffect)(()=>{const e=s(function(e,n,t,s){return async()=>{try{const o=document.getElementById(e);if(o||console.error("unzer payment component does not exist: "+e),o.woocommercePaymentTypeId){const e={};e.unzer_nonce=s.nonce,e[n]=o.woocommercePaymentTypeId;const r={type:t?.responseTypes?.SUCCESS,meta:{paymentMethodData:e}};return console.log("return previously generated type id (button payment methods)",r),r}const r=await o.submit();if(r.submitResponse){if(!0===r.submitResponse.success){const e={};return e.unzer_nonce=s.nonce,e[n]=r.submitResponse.data.id,{type:t?.responseTypes?.SUCCESS,meta:{paymentMethodData:e}}}return{type:t?.responseTypes?.ERROR,message:r.submitResponse.message||"General Error"}}return{type:t?.responseTypes?.ERROR,message:"General Error 002"}}catch(e){return{type:t?.responseTypes?.ERROR,message:e.message||e.name||"General Error 003"}}}}(u,"unzer-apple-pay-v2-id",n,c));return e},[s]),(0,t.jsxs)("div",{children:[i&&(0,t.jsx)("p",{children:i}),(0,t.jsx)("div",{style:{display:"none"},children:(0,t.jsxs)("div",{id:u+"-container-for-button",children:[(0,t.jsx)("unzer-payment",{id:u,publicKey:m,locale:d,children:(0,t.jsx)("unzer-apple-pay",{})}),(0,t.jsx)("unzer-checkout",{id:y})]})})]})};!function(s,o,r){(0,n.registerPaymentMethod)({name:s,label:(0,t.jsx)("div",{children:(0,t.jsx)("span",{className:"wc-block-components-payment-method-label",children:o})}),content:r,edit:r,canMakePayment:()=>!0,ariaLabel:(0,e.decodeEntities)(o),supports:{features:["products"]}})}(p,a,(0,t.jsx)(l,{}))})();
\ No newline at end of file
diff --git a/assets/build/unzer_card.asset.php b/assets/build/unzer_card.asset.php
index becffaa..6dfb35f 100644
--- a/assets/build/unzer_card.asset.php
+++ b/assets/build/unzer_card.asset.php
@@ -1,4 +1,4 @@
array( 'react-jsx-runtime', 'wc-blocks-registry', 'wc-settings', 'wp-element', 'wp-html-entities' ),
- 'version' => '3cff6bed3cc968bbf96f',
+ 'version' => '63fd7aaf04a14116e59a',
);
diff --git a/assets/build/unzer_card.js b/assets/build/unzer_card.js
index 0080402..c2b6961 100644
--- a/assets/build/unzer_card.js
+++ b/assets/build/unzer_card.js
@@ -1 +1 @@
-(()=>{"use strict";const e=window.wp.htmlEntities,n=window.wc.wcBlocksRegistry,t=window.ReactJSXRuntime,s=window.wc.wcSettings,o=window.wp.element,c="card",i=(0,s.getSetting)("unzer_card_data",{}),r=i.title||c,a=i.id||c,p=i?.description||"",d=i?.publicKey||"",m=(i?.locale||"")+(new Date).getMilliseconds(),u=i.paymentComponentId||a+"-payment-component",R=({eventRegistration:e,emitResponse:n})=>{const{onPaymentSetup:s}=e;return(0,o.useEffect)(()=>{const e=s(function(e,n,t,s){return async()=>{try{const n=document.getElementById(e);n||console.error("unzer payment component does not exist: "+e);const o=await n.submit();if(o.submitResponse){if(!0===o.submitResponse.success){const e={};e.unzer_nonce=s.nonce,e["unzer-card-id"]=o.submitResponse.data.id;const n={type:t?.responseTypes?.SUCCESS,meta:{paymentMethodData:e}};return console.log("submit response: ",o.submitResponse,n),n}return{type:t?.responseTypes?.ERROR,message:"GENERAL ERROR 1"}}return{type:t?.responseTypes?.ERROR,message:"GENERAL ERROR 2"}}catch(e){return{type:t?.responseTypes?.ERROR,message:"GENERAL ERROR 3"}}}}(u,0,n,i));return e},[s]),(0,t.jsxs)("div",{children:[p&&(0,t.jsx)("p",{children:p}),(0,t.jsx)("unzer-payment",{id:u,publicKey:d,locale:m,children:(0,t.jsx)("unzer-card",{})})]})};!function(s,o,c){(0,n.registerPaymentMethod)({name:s,label:(0,t.jsx)("div",{children:(0,t.jsx)("span",{className:"wc-block-components-payment-method-label",children:o})}),content:c,edit:c,canMakePayment:()=>!0,ariaLabel:(0,e.decodeEntities)(o),supports:{features:["products"]}})}(a,r,(0,t.jsx)(R,{}))})();
\ No newline at end of file
+(()=>{"use strict";const e=window.wp.htmlEntities,n=window.wc.wcBlocksRegistry,t=window.ReactJSXRuntime,s=window.wc.wcSettings,o=window.wp.element,r="card",c=(0,s.getSetting)("unzer_card_data",{}),a=c.title||r,i=c.id||r,p=c?.description||"",m=c?.publicKey||"",d=(c?.locale||"")+(new Date).getMilliseconds(),u=c.paymentComponentId||i+"-payment-component",y=({eventRegistration:e,emitResponse:n})=>{const{onPaymentSetup:s}=e;return(0,o.useEffect)(()=>{const e=s(function(e,n,t,s){return async()=>{try{const o=document.getElementById(e);if(o||console.error("unzer payment component does not exist: "+e),o.woocommercePaymentTypeId){const e={};e.unzer_nonce=s.nonce,e[n]=o.woocommercePaymentTypeId;const r={type:t?.responseTypes?.SUCCESS,meta:{paymentMethodData:e}};return console.log("return previously generated type id (button payment methods)",r),r}const r=await o.submit();if(r.submitResponse){if(!0===r.submitResponse.success){const e={};return e.unzer_nonce=s.nonce,e[n]=r.submitResponse.data.id,{type:t?.responseTypes?.SUCCESS,meta:{paymentMethodData:e}}}return{type:t?.responseTypes?.ERROR,message:r.submitResponse.message||"General Error"}}return{type:t?.responseTypes?.ERROR,message:"General Error 002"}}catch(e){return{type:t?.responseTypes?.ERROR,message:e.message||e.name||"General Error 003"}}}}(u,"unzer-card-id",n,c));return e},[s]),(0,t.jsxs)("div",{children:[p&&(0,t.jsx)("p",{children:p}),(0,t.jsx)("unzer-payment",{id:u,publicKey:m,locale:d,children:(0,t.jsx)("unzer-card",{})})]})};!function(s,o,r){(0,n.registerPaymentMethod)({name:s,label:(0,t.jsx)("div",{children:(0,t.jsx)("span",{className:"wc-block-components-payment-method-label",children:o})}),content:r,edit:r,canMakePayment:()=>!0,ariaLabel:(0,e.decodeEntities)(o),supports:{features:["products"]}})}(i,a,(0,t.jsx)(y,{}))})();
\ No newline at end of file
diff --git a/assets/build/unzer_direct_debit.asset.php b/assets/build/unzer_direct_debit.asset.php
index 957db10..7a7d798 100644
--- a/assets/build/unzer_direct_debit.asset.php
+++ b/assets/build/unzer_direct_debit.asset.php
@@ -1,4 +1,4 @@
array( 'react-jsx-runtime', 'wc-blocks-registry', 'wc-settings', 'wp-element', 'wp-html-entities' ),
- 'version' => '00adb3a0559cdb92af78',
+ 'version' => '32d79f5351f92c11ec07',
);
diff --git a/assets/build/unzer_direct_debit.js b/assets/build/unzer_direct_debit.js
index 66316ee..46addcc 100644
--- a/assets/build/unzer_direct_debit.js
+++ b/assets/build/unzer_direct_debit.js
@@ -1 +1 @@
-(()=>{"use strict";const e=window.wp.htmlEntities,t=window.wc.wcBlocksRegistry,n=window.ReactJSXRuntime,s=window.wc.wcSettings,o=window.wp.element,i="direct_debit",c=(0,s.getSetting)("unzer_"+i+"_data",{}),r=c.title||i,a=c.id||i,p=c?.description||"",d=c?.publicKey||"",m=c?.locale||"",u=c.paymentComponentId||a+"-payment-component",R=({eventRegistration:e,emitResponse:t})=>{const{onPaymentSetup:s}=e;return(0,o.useEffect)(()=>{const e=s(function(e,t,n,s){return async()=>{try{const t=document.getElementById(e);t||console.error("unzer payment component does not exist: "+e);const o=await t.submit();if(o.submitResponse){if(!0===o.submitResponse.success){const e={};e.unzer_nonce=s.nonce,e["unzer-direct-debit-id"]=o.submitResponse.data.id;const t={type:n?.responseTypes?.SUCCESS,meta:{paymentMethodData:e}};return console.log("submit response: ",o.submitResponse,t),t}return{type:n?.responseTypes?.ERROR,message:"GENERAL ERROR 1"}}return{type:n?.responseTypes?.ERROR,message:"GENERAL ERROR 2"}}catch(e){return{type:n?.responseTypes?.ERROR,message:"GENERAL ERROR 3"}}}}(u,0,t,c));return e},[s]),(0,n.jsxs)("div",{children:[p&&(0,n.jsx)("p",{children:p}),(0,n.jsx)("unzer-payment",{id:u,publicKey:d,locale:m,children:(0,n.jsx)("unzer-sepa-direct-debit",{})})]})};!function(s,o,i){(0,t.registerPaymentMethod)({name:s,label:(0,n.jsx)("div",{children:(0,n.jsx)("span",{className:"wc-block-components-payment-method-label",children:o})}),content:i,edit:i,canMakePayment:()=>!0,ariaLabel:(0,e.decodeEntities)(o),supports:{features:["products"]}})}(a,r,(0,n.jsx)(R,{}))})();
\ No newline at end of file
+(()=>{"use strict";const e=window.wp.htmlEntities,t=window.wc.wcBlocksRegistry,n=window.ReactJSXRuntime,s=window.wc.wcSettings,o=window.wp.element,r="direct_debit",c=(0,s.getSetting)("unzer_"+r+"_data",{}),i=c.title||r,a=c.id||r,p=c?.description||"",m=c?.publicKey||"",d=c?.locale||"",u=c.paymentComponentId||a+"-payment-component",y=({eventRegistration:e,emitResponse:t})=>{const{onPaymentSetup:s}=e;return(0,o.useEffect)(()=>{const e=s(function(e,t,n,s){return async()=>{try{const o=document.getElementById(e);if(o||console.error("unzer payment component does not exist: "+e),o.woocommercePaymentTypeId){const e={};e.unzer_nonce=s.nonce,e[t]=o.woocommercePaymentTypeId;const r={type:n?.responseTypes?.SUCCESS,meta:{paymentMethodData:e}};return console.log("return previously generated type id (button payment methods)",r),r}const r=await o.submit();if(r.submitResponse){if(!0===r.submitResponse.success){const e={};return e.unzer_nonce=s.nonce,e[t]=r.submitResponse.data.id,{type:n?.responseTypes?.SUCCESS,meta:{paymentMethodData:e}}}return{type:n?.responseTypes?.ERROR,message:r.submitResponse.message||"General Error"}}return{type:n?.responseTypes?.ERROR,message:"General Error 002"}}catch(e){return{type:n?.responseTypes?.ERROR,message:e.message||e.name||"General Error 003"}}}}(u,"unzer-direct-debit-id",t,c));return e},[s]),(0,n.jsxs)("div",{children:[p&&(0,n.jsx)("p",{children:p}),(0,n.jsx)("unzer-payment",{id:u,publicKey:m,locale:d,children:(0,n.jsx)("unzer-sepa-direct-debit",{})})]})};!function(s,o,r){(0,t.registerPaymentMethod)({name:s,label:(0,n.jsx)("div",{children:(0,n.jsx)("span",{className:"wc-block-components-payment-method-label",children:o})}),content:r,edit:r,canMakePayment:()=>!0,ariaLabel:(0,e.decodeEntities)(o),supports:{features:["products"]}})}(a,i,(0,n.jsx)(y,{}))})();
\ No newline at end of file
diff --git a/assets/build/unzer_direct_debit_secured.asset.php b/assets/build/unzer_direct_debit_secured.asset.php
index 6ae7c10..d05763f 100644
--- a/assets/build/unzer_direct_debit_secured.asset.php
+++ b/assets/build/unzer_direct_debit_secured.asset.php
@@ -1,4 +1,4 @@
array( 'react-jsx-runtime', 'wc-blocks-registry', 'wc-settings', 'wp-element', 'wp-html-entities' ),
- 'version' => '85a29053323ec96921e4',
+ 'version' => 'ce8fb575ec826f41efeb',
);
diff --git a/assets/build/unzer_direct_debit_secured.js b/assets/build/unzer_direct_debit_secured.js
index 9afa1a7..8fb6b2d 100644
--- a/assets/build/unzer_direct_debit_secured.js
+++ b/assets/build/unzer_direct_debit_secured.js
@@ -1 +1 @@
-(()=>{"use strict";const e=window.wp.htmlEntities,t=window.wc.wcBlocksRegistry,n=window.ReactJSXRuntime,s=window.wc.wcSettings,o=window.wp.element,i="direct_debit_secured",c=(0,s.getSetting)("unzer_"+i+"_data",{}),r=c.title||i,a=c.id||i,p=c?.description||"",d=c?.publicKey||"",u=c?.locale||"",m=c.paymentComponentId||a+"-payment-component",R=({eventRegistration:e,emitResponse:t})=>{const{onPaymentSetup:s}=e;return(0,o.useEffect)(()=>{const e=s(function(e,t,n,s){return async()=>{try{const t=document.getElementById(e);t||console.error("unzer payment component does not exist: "+e);const o=await t.submit();if(o.submitResponse){if(!0===o.submitResponse.success){const e={};e.unzer_nonce=s.nonce,e["unzer-direct-debit-secured-id"]=o.submitResponse.data.id;const t={type:n?.responseTypes?.SUCCESS,meta:{paymentMethodData:e}};return console.log("submit response: ",o.submitResponse,t),t}return{type:n?.responseTypes?.ERROR,message:"GENERAL ERROR 1"}}return{type:n?.responseTypes?.ERROR,message:"GENERAL ERROR 2"}}catch(e){return{type:n?.responseTypes?.ERROR,message:"GENERAL ERROR 3"}}}}(m,0,t,c));return e},[s]),(0,n.jsxs)("div",{children:[p&&(0,n.jsx)("p",{children:p}),(0,n.jsx)("unzer-payment",{id:m,publicKey:d,locale:u,children:(0,n.jsx)("unzer-paylater-direct-debit",{})})]})};!function(s,o,i){(0,t.registerPaymentMethod)({name:s,label:(0,n.jsx)("div",{children:(0,n.jsx)("span",{className:"wc-block-components-payment-method-label",children:o})}),content:i,edit:i,canMakePayment:()=>!0,ariaLabel:(0,e.decodeEntities)(o),supports:{features:["products"]}})}(a,r,(0,n.jsx)(R,{}))})();
\ No newline at end of file
+(()=>{"use strict";const e=window.wp.htmlEntities,t=window.wc.wcBlocksRegistry,n=window.ReactJSXRuntime,s=window.wc.wcSettings,o=window.wp.element,r="direct_debit_secured",c=(0,s.getSetting)("unzer_"+r+"_data",{}),i=c.title||r,a=c.id||r,p=c?.description||"",d=c?.publicKey||"",m=c?.locale||"",u=c.paymentComponentId||a+"-payment-component",y=({eventRegistration:e,emitResponse:t})=>{const{onPaymentSetup:s}=e;return(0,o.useEffect)(()=>{const e=s(function(e,t,n,s){return async()=>{try{const o=document.getElementById(e);if(o||console.error("unzer payment component does not exist: "+e),o.woocommercePaymentTypeId){const e={};e.unzer_nonce=s.nonce,e[t]=o.woocommercePaymentTypeId;const r={type:n?.responseTypes?.SUCCESS,meta:{paymentMethodData:e}};return console.log("return previously generated type id (button payment methods)",r),r}const r=await o.submit();if(r.submitResponse){if(!0===r.submitResponse.success){const e={};return e.unzer_nonce=s.nonce,e[t]=r.submitResponse.data.id,{type:n?.responseTypes?.SUCCESS,meta:{paymentMethodData:e}}}return{type:n?.responseTypes?.ERROR,message:r.submitResponse.message||"General Error"}}return{type:n?.responseTypes?.ERROR,message:"General Error 002"}}catch(e){return{type:n?.responseTypes?.ERROR,message:e.message||e.name||"General Error 003"}}}}(u,"unzer-direct-debit-secured-id",t,c));return e},[s]),(0,n.jsxs)("div",{children:[p&&(0,n.jsx)("p",{children:p}),(0,n.jsx)("unzer-payment",{id:u,publicKey:d,locale:m,children:(0,n.jsx)("unzer-paylater-direct-debit",{})})]})};!function(s,o,r){(0,t.registerPaymentMethod)({name:s,label:(0,n.jsx)("div",{children:(0,n.jsx)("span",{className:"wc-block-components-payment-method-label",children:o})}),content:r,edit:r,canMakePayment:()=>!0,ariaLabel:(0,e.decodeEntities)(o),supports:{features:["products"]}})}(a,i,(0,n.jsx)(y,{}))})();
\ No newline at end of file
diff --git a/assets/build/unzer_global.asset.php b/assets/build/unzer_global.asset.php
index 046d159..de580bd 100644
--- a/assets/build/unzer_global.asset.php
+++ b/assets/build/unzer_global.asset.php
@@ -1,4 +1,4 @@
array( 'wp-data' ),
- 'version' => '726a0e254157077b8bec',
+ 'version' => '8b3cc5a0ca561d16a328',
);
diff --git a/assets/build/unzer_global.js b/assets/build/unzer_global.js
index 9127424..bcb5c5f 100644
--- a/assets/build/unzer_global.js
+++ b/assets/build/unzer_global.js
@@ -1 +1 @@
-(()=>{"use strict";const t=window.wp.data;window.unzerCurrentPaymentMethod="",window.unzerCurrentAmount=0,(0,t.subscribe)(()=>{const e=(0,t.select)(window.wc.wcBlocksData.CART_STORE_KEY),n=(0,t.select)(window.wc.wcBlocksData.PAYMENT_STORE_KEY),o=e.getCartData();let a=!1;window.unzerCurrentPaymentMethod!==n.getActivePaymentMethod()&&(a=!0),a||window.unzerCurrentAmount===o.totals.total_price||(a=!0),a&&(console.log("payment method changed to: "+n.getActivePaymentMethod()),window.unzerCurrentPaymentMethod=n.getActivePaymentMethod(),window.unzerCurrentAmount=o.totals.total_price,function(t,e){console.info("updatePaymentMethodData for "+t);const n=window.wc.wcSettings.getSetting(t+"_data",{});console.log(n,e),setTimeout(async()=>{const o=document.getElementById(n.paymentComponentId);o&&Promise.all([customElements.whenDefined("unzer-payment")]).then(()=>{try{const a=new FormData;a.append("data",JSON.stringify(e)),a.append("payment_method",t),a.append("unzer_nonce",n.nonce),fetch(n.getCustomerDataUrl,{method:"POST",body:a}).then(t=>t.json()).then(t=>{const n=t.customer;if(console.log("set customer data",n),n&&o.setCustomerData(n),t.publicKey!==o.publicKey&&(o.publicKey=t.publicKey,o.initOnFirstUpdate()),o.setBasketData){o.setBasketData({amount:e.totals.total_price/100,currencyType:e.totals.currency_code,country:e.billingAddress.country});const t=document.getElementById("unzer-paylater-installment-component");t&&t.reloadPlansWithRetainedData&&(t.updateDataFromStore(),console.log(t.basketDetails),t.onDataReady())}})}catch(t){console.error(t)}})},100)}(window.unzerCurrentPaymentMethod,o))},"wc/store/cart")})();
\ No newline at end of file
+(()=>{"use strict";const e=window.wp.data;function t(e,t){e.woocommercePaymentTypeId=t;const o=document.querySelectorAll(".wc-block-components-checkout-place-order-button");o[o.length-1].click(),e.style.display="none",setTimeout(()=>{n(!0)},3e3)}window.unzerCurrentPaymentMethod="",window.unzerIsInitial=!0,window.unzerCurrentAmount=0,window.unzerInitiatePaymentMethod=(e,o,n)=>{const a=document.getElementById(o.paymentComponentId),c=document.getElementById(o.paymentComponentId+"-container-for-button"),r=document.querySelectorAll(".wc-block-components-checkout-place-order-button");r.forEach(e=>{e.classList.remove("unzer-place-order-button-hidden")}),document.querySelectorAll(".unzer-payment-method-checkout-button-container").forEach(e=>{e.remove()}),a&&(a.style.display="",Promise.all([customElements.whenDefined("unzer-payment")]).then(()=>{try{if(r.length&&c){r.forEach(e=>{e.classList.add("unzer-place-order-button-hidden")});const e=r[r.length-1];c.classList.add("unzer-payment-method-checkout-button-container"),e.after(c)}if("unzer_google_pay"===e&&a.setGooglePayData){const e=o.options,c={gatewayMerchantId:e.gatewayMerchantId,merchantInfo:e.merchantInfo,transactionInfo:{currencyCode:n.totals.currency_code,countryCode:n.billingAddress.country,totalPriceStatus:"ESTIMATED",totalPrice:(n.totals.total_price/100).toFixed(2)},buttonOptions:e.buttonOptions,allowedCardNetworks:e.allowedCardNetworks,allowCreditCards:e.allowCreditCards,allowPrepaidCards:e.allowPrepaidCards};setTimeout(function(){a.setGooglePayData(c)},1e3);const r=document.getElementById("unzer-google-pay-checkout-component");r&&(r.onPaymentSubmit=function(e){e.submitResponse&&e.submitResponse.success?t(a,e.submitResponse.data.id):console.error(e)})}if("unzer_apple_pay_v2"===e&&a.setApplePayData){const e={countryCode:o.storeCountry,currencyCode:n.totals.currency_code,supportedNetworks:["visa","masterCard"],merchantCapabilities:["supports3DS"],total:{label:o.storeName,amount:n.totals.total_price/100}};setTimeout(function(){a.setApplePayData(e)},1e3);const c=document.getElementById("unzer-apple-pay-v2-checkout-component");c&&(c.onPaymentSubmit=function(e){e.submitResponse&&e.submitResponse.data&&e.submitResponse.data.id&&-1===e.submitResponse.data.id.indexOf("-apl-")||(e.submitResponse&&e.submitResponse.success?t(a,e.submitResponse.data.id):console.error(e))})}const s=new FormData;s.append("data",JSON.stringify(n)),s.append("payment_method",e),s.append("unzer_nonce",o.nonce),fetch(o.getCustomerDataUrl,{method:"POST",body:s}).then(e=>e.json()).then(e=>{const t=e.customer;if(t&&a.setCustomerData(t),e.publicKey!==a.publicKey&&(a.publicKey=e.publicKey,a.initOnFirstUpdate()),a.setBasketData){a.setBasketData({amount:n.totals.total_price/100,currencyType:n.totals.currency_code,country:n.billingAddress.country});const e=document.getElementById("unzer-paylater-installment-component");e&&e.reloadPlansWithRetainedData&&(e.updateDataFromStore(),e.onDataReady())}})}catch(e){console.error(e)}}))};const o=function(e,t){const o=window.wc.wcSettings.getSetting(e+"_data",{});if(console.log(o,t),window.unzerIsInitial){const n=()=>{document.querySelector(".wc-block-components-checkout-place-order-button")&&document.querySelector(".wp-block-woocommerce-checkout-payment-block .wc-block-components-radio-control-accordion-option")?setTimeout(async()=>{window.unzerInitiatePaymentMethod(e,o,t)},1e3):setTimeout(n,100)};n()}else setTimeout(async()=>{window.unzerInitiatePaymentMethod(e,o,t)},1e3)};function n(t=!1){(0,e.select)(window.wc.wcBlocksData.CHECKOUT_STORE_KEY);const n=(0,e.select)(window.wc.wcBlocksData.CART_STORE_KEY),a=(0,e.select)(window.wc.wcBlocksData.PAYMENT_STORE_KEY),c=n.getCartData();let r=!1;window.unzerCurrentPaymentMethod!==a.getActivePaymentMethod()&&(r=!0),r||window.unzerCurrentAmount===c.totals.total_price||(r=!0),(r||t)&&(console.log("payment method changed to: "+a.getActivePaymentMethod()),window.unzerCurrentPaymentMethod=a.getActivePaymentMethod(),window.unzerCurrentAmount=c.totals.total_price,o(window.unzerCurrentPaymentMethod,c))}(0,e.subscribe)(n,"wc/store/cart")})();
\ No newline at end of file
diff --git a/assets/build/unzer_google_pay.asset.php b/assets/build/unzer_google_pay.asset.php
index 5540647..649f38f 100644
--- a/assets/build/unzer_google_pay.asset.php
+++ b/assets/build/unzer_google_pay.asset.php
@@ -1,4 +1,4 @@
array( 'react-jsx-runtime', 'wc-blocks-registry', 'wc-settings', 'wp-element', 'wp-html-entities' ),
- 'version' => 'f61e770ae45bf7883391',
+ 'version' => 'ed95cfcadf7c4c532301',
);
diff --git a/assets/build/unzer_google_pay.js b/assets/build/unzer_google_pay.js
index 0725272..5d8c331 100644
--- a/assets/build/unzer_google_pay.js
+++ b/assets/build/unzer_google_pay.js
@@ -1 +1 @@
-(()=>{"use strict";const e=window.wp.htmlEntities,n=window.wc.wcBlocksRegistry,t=window.ReactJSXRuntime,s=window.wc.wcSettings,o=window.wp.element,i="google_pay",c=(0,s.getSetting)("unzer_"+i+"_data",{}),r=c.title||i,a=c.id||i,p=c?.description||"",m=c?.publicKey||"",u=c?.locale||"",d=c.paymentComponentId||a+"-payment-component",R=({eventRegistration:e,emitResponse:n})=>{const{onPaymentSetup:s}=e;return(0,o.useEffect)(()=>{const e=s(function(e,n,t,s){return async()=>{try{const n=document.getElementById(e);n||console.error("unzer payment component does not exist: "+e);const o=await n.submit();if(o.submitResponse){if(!0===o.submitResponse.success){const e={};e.unzer_nonce=s.nonce,e["unzer-google-pay-id"]=o.submitResponse.data.id;const n={type:t?.responseTypes?.SUCCESS,meta:{paymentMethodData:e}};return console.log("submit response: ",o.submitResponse,n),n}return{type:t?.responseTypes?.ERROR,message:"GENERAL ERROR 1"}}return{type:t?.responseTypes?.ERROR,message:"GENERAL ERROR 2"}}catch(e){return{type:t?.responseTypes?.ERROR,message:"GENERAL ERROR 3"}}}}(d,0,n,c));return e},[s]),(0,t.jsxs)("div",{children:[p&&(0,t.jsx)("p",{children:p}),(0,t.jsx)("unzer-payment",{id:d,publicKey:m,locale:u,children:(0,t.jsx)("unzer-google-pay",{})})]})};!function(s,o,i){(0,n.registerPaymentMethod)({name:s,label:(0,t.jsx)("div",{children:(0,t.jsx)("span",{className:"wc-block-components-payment-method-label",children:o})}),content:i,edit:i,canMakePayment:()=>!0,ariaLabel:(0,e.decodeEntities)(o),supports:{features:["products"]}})}(a,r,(0,t.jsx)(R,{}))})();
\ No newline at end of file
+(()=>{"use strict";const e=window.wp.htmlEntities,n=window.wc.wcBlocksRegistry,t=window.ReactJSXRuntime,s=window.wc.wcSettings,o=window.wp.element,r="google_pay",c=(0,s.getSetting)("unzer_"+r+"_data",{}),a=c.title||r,i=c.id||r,p=c?.description||"",m=c?.publicKey||"",d=c?.locale||"",u=c.paymentComponentId||i+"-payment-component",y=c.checkoutComponentId||i+"-checkout-component",l=({eventRegistration:e,emitResponse:n})=>{const{onPaymentSetup:s}=e;return(0,o.useEffect)(()=>{const e=s(function(e,n,t,s){return async()=>{try{const o=document.getElementById(e);if(o||console.error("unzer payment component does not exist: "+e),o.woocommercePaymentTypeId){const e={};e.unzer_nonce=s.nonce,e[n]=o.woocommercePaymentTypeId;const r={type:t?.responseTypes?.SUCCESS,meta:{paymentMethodData:e}};return console.log("return previously generated type id (button payment methods)",r),r}const r=await o.submit();if(r.submitResponse){if(!0===r.submitResponse.success){const e={};return e.unzer_nonce=s.nonce,e[n]=r.submitResponse.data.id,{type:t?.responseTypes?.SUCCESS,meta:{paymentMethodData:e}}}return{type:t?.responseTypes?.ERROR,message:r.submitResponse.message||"General Error"}}return{type:t?.responseTypes?.ERROR,message:"General Error 002"}}catch(e){return{type:t?.responseTypes?.ERROR,message:e.message||e.name||"General Error 003"}}}}(u,"unzer-google-pay-id",n,c));return e},[s]),(0,t.jsxs)("div",{children:[p&&(0,t.jsx)("p",{children:p}),(0,t.jsx)("div",{style:{display:"none"},children:(0,t.jsxs)("div",{id:u+"-container-for-button",children:[(0,t.jsx)("unzer-payment",{id:u,publicKey:m,locale:d,children:(0,t.jsx)("unzer-google-pay",{})}),(0,t.jsx)("unzer-checkout",{id:y})]})})]})};!function(s,o,r){(0,n.registerPaymentMethod)({name:s,label:(0,t.jsx)("div",{children:(0,t.jsx)("span",{className:"wc-block-components-payment-method-label",children:o})}),content:r,edit:r,canMakePayment:()=>!0,ariaLabel:(0,e.decodeEntities)(o),supports:{features:["products"]}})}(i,a,(0,t.jsx)(l,{}))})();
\ No newline at end of file
diff --git a/assets/build/unzer_installment.asset.php b/assets/build/unzer_installment.asset.php
index 4722795..fb0a52f 100644
--- a/assets/build/unzer_installment.asset.php
+++ b/assets/build/unzer_installment.asset.php
@@ -1,4 +1,4 @@
array( 'react-jsx-runtime', 'wc-blocks-registry', 'wc-settings', 'wp-element', 'wp-html-entities' ),
- 'version' => '60224e45e2089f765739',
+ 'version' => '10ed83671a1cfe909449',
);
diff --git a/assets/build/unzer_installment.js b/assets/build/unzer_installment.js
index 286bf0f..eb26be7 100644
--- a/assets/build/unzer_installment.js
+++ b/assets/build/unzer_installment.js
@@ -1 +1 @@
-(()=>{"use strict";const e=window.wp.htmlEntities,n=window.wc.wcBlocksRegistry,t=window.ReactJSXRuntime,s=window.wc.wcSettings,o=window.wp.element,i="installment",c=(0,s.getSetting)("unzer_"+i+"_data",{}),a=c.title||i,r=c.id||i,p=c?.description||"",m=c?.publicKey||"",l=c?.locale||"",u=c.paymentComponentId||r+"-payment-component",d=({eventRegistration:e,emitResponse:n})=>{const{onPaymentSetup:s}=e;return(0,o.useEffect)(()=>{const e=s(function(e,n,t,s){return async()=>{try{const n=document.getElementById(e);n||console.error("unzer payment component does not exist: "+e);const o=await n.submit();if(o.submitResponse){if(!0===o.submitResponse.success){const e={};e.unzer_nonce=s.nonce,e["unzer-installment-id"]=o.submitResponse.data.id;const n={type:t?.responseTypes?.SUCCESS,meta:{paymentMethodData:e}};return console.log("submit response: ",o.submitResponse,n),n}return{type:t?.responseTypes?.ERROR,message:"GENERAL ERROR 1"}}return{type:t?.responseTypes?.ERROR,message:"GENERAL ERROR 2"}}catch(e){return{type:t?.responseTypes?.ERROR,message:"GENERAL ERROR 3"}}}}(u,0,n,c));return e},[s]),(0,t.jsxs)("div",{children:[p&&(0,t.jsx)("p",{children:p}),(0,t.jsx)("unzer-payment",{id:u,publicKey:m,locale:l,children:(0,t.jsx)("unzer-paylater-installment",{id:"unzer-paylater-installment-component"})})]})};!function(s,o,i){(0,n.registerPaymentMethod)({name:s,label:(0,t.jsx)("div",{children:(0,t.jsx)("span",{className:"wc-block-components-payment-method-label",children:o})}),content:i,edit:i,canMakePayment:()=>!0,ariaLabel:(0,e.decodeEntities)(o),supports:{features:["products"]}})}(r,a,(0,t.jsx)(d,{}))})();
\ No newline at end of file
+(()=>{"use strict";const e=window.wp.htmlEntities,n=window.wc.wcBlocksRegistry,t=window.ReactJSXRuntime,s=window.wc.wcSettings,o=window.wp.element,r="installment",a=(0,s.getSetting)("unzer_"+r+"_data",{}),c=a.title||r,i=a.id||r,p=a?.description||"",m=a?.publicKey||"",l=a?.locale||"",d=a.paymentComponentId||i+"-payment-component",u=({eventRegistration:e,emitResponse:n})=>{const{onPaymentSetup:s}=e;return(0,o.useEffect)(()=>{const e=s(function(e,n,t,s){return async()=>{try{const o=document.getElementById(e);if(o||console.error("unzer payment component does not exist: "+e),o.woocommercePaymentTypeId){const e={};e.unzer_nonce=s.nonce,e[n]=o.woocommercePaymentTypeId;const r={type:t?.responseTypes?.SUCCESS,meta:{paymentMethodData:e}};return console.log("return previously generated type id (button payment methods)",r),r}const r=await o.submit();if(r.submitResponse){if(!0===r.submitResponse.success){const e={};return e.unzer_nonce=s.nonce,e[n]=r.submitResponse.data.id,{type:t?.responseTypes?.SUCCESS,meta:{paymentMethodData:e}}}return{type:t?.responseTypes?.ERROR,message:r.submitResponse.message||"General Error"}}return{type:t?.responseTypes?.ERROR,message:"General Error 002"}}catch(e){return{type:t?.responseTypes?.ERROR,message:e.message||e.name||"General Error 003"}}}}(d,"unzer-installment-id",n,a));return e},[s]),(0,t.jsxs)("div",{children:[p&&(0,t.jsx)("p",{children:p}),(0,t.jsx)("unzer-payment",{id:d,publicKey:m,locale:l,children:(0,t.jsx)("unzer-paylater-installment",{id:"unzer-paylater-installment-component"})})]})};!function(s,o,r){(0,n.registerPaymentMethod)({name:s,label:(0,t.jsx)("div",{children:(0,t.jsx)("span",{className:"wc-block-components-payment-method-label",children:o})}),content:r,edit:r,canMakePayment:()=>!0,ariaLabel:(0,e.decodeEntities)(o),supports:{features:["products"]}})}(i,c,(0,t.jsx)(u,{}))})();
\ No newline at end of file
diff --git a/assets/build/unzer_invoice.asset.php b/assets/build/unzer_invoice.asset.php
index e31cbbd..a8a211b 100644
--- a/assets/build/unzer_invoice.asset.php
+++ b/assets/build/unzer_invoice.asset.php
@@ -1,4 +1,4 @@
array( 'react-jsx-runtime', 'wc-blocks-registry', 'wc-settings', 'wp-element', 'wp-html-entities' ),
- 'version' => '09fccfb7c08f267db209',
+ 'version' => 'f3d80eedde3556f6c679',
);
diff --git a/assets/build/unzer_invoice.js b/assets/build/unzer_invoice.js
index a027d8c..ff9a280 100644
--- a/assets/build/unzer_invoice.js
+++ b/assets/build/unzer_invoice.js
@@ -1 +1 @@
-(()=>{"use strict";const e=window.wp.htmlEntities,n=window.wc.wcBlocksRegistry,t=window.ReactJSXRuntime,s=window.wc.wcSettings,o=window.wp.element,i="invoice",c=(0,s.getSetting)("unzer_"+i+"_data",{}),r=c.title||i,a=c.id||i,p=c?.description||"",m=c?.publicKey||"",u=c?.locale||"",d=c.paymentComponentId||a+"-payment-component",R=({eventRegistration:e,emitResponse:n})=>{const{onPaymentSetup:s}=e;return(0,o.useEffect)(()=>{const e=s(function(e,n,t,s){return async()=>{try{const n=document.getElementById(e);n||console.error("unzer payment component does not exist: "+e);const o=await n.submit();if(o.submitResponse){if(!0===o.submitResponse.success){const e={};e.unzer_nonce=s.nonce,e["unzer-invoice-id"]=o.submitResponse.data.id;const n={type:t?.responseTypes?.SUCCESS,meta:{paymentMethodData:e}};return console.log("submit response: ",o.submitResponse,n),n}return{type:t?.responseTypes?.ERROR,message:"GENERAL ERROR 1"}}return{type:t?.responseTypes?.ERROR,message:"GENERAL ERROR 2"}}catch(e){return{type:t?.responseTypes?.ERROR,message:"GENERAL ERROR 3"}}}}(d,0,n,c));return e},[s]),(0,t.jsxs)("div",{children:[p&&(0,t.jsx)("p",{children:p}),(0,t.jsx)("unzer-payment",{id:d,publicKey:m,locale:u,children:(0,t.jsx)("unzer-paylater-invoice",{})})]})};!function(s,o,i){(0,n.registerPaymentMethod)({name:s,label:(0,t.jsx)("div",{children:(0,t.jsx)("span",{className:"wc-block-components-payment-method-label",children:o})}),content:i,edit:i,canMakePayment:()=>!0,ariaLabel:(0,e.decodeEntities)(o),supports:{features:["products"]}})}(a,r,(0,t.jsx)(R,{}))})();
\ No newline at end of file
+(()=>{"use strict";const e=window.wp.htmlEntities,n=window.wc.wcBlocksRegistry,t=window.ReactJSXRuntime,s=window.wc.wcSettings,o=window.wp.element,r="invoice",c=(0,s.getSetting)("unzer_"+r+"_data",{}),i=c.title||r,a=c.id||r,p=c?.description||"",m=c?.publicKey||"",d=c?.locale||"",u=c.paymentComponentId||a+"-payment-component",y=({eventRegistration:e,emitResponse:n})=>{const{onPaymentSetup:s}=e;return(0,o.useEffect)(()=>{const e=s(function(e,n,t,s){return async()=>{try{const o=document.getElementById(e);if(o||console.error("unzer payment component does not exist: "+e),o.woocommercePaymentTypeId){const e={};e.unzer_nonce=s.nonce,e[n]=o.woocommercePaymentTypeId;const r={type:t?.responseTypes?.SUCCESS,meta:{paymentMethodData:e}};return console.log("return previously generated type id (button payment methods)",r),r}const r=await o.submit();if(r.submitResponse){if(!0===r.submitResponse.success){const e={};return e.unzer_nonce=s.nonce,e[n]=r.submitResponse.data.id,{type:t?.responseTypes?.SUCCESS,meta:{paymentMethodData:e}}}return{type:t?.responseTypes?.ERROR,message:r.submitResponse.message||"General Error"}}return{type:t?.responseTypes?.ERROR,message:"General Error 002"}}catch(e){return{type:t?.responseTypes?.ERROR,message:e.message||e.name||"General Error 003"}}}}(u,"unzer-invoice-id",n,c));return e},[s]),(0,t.jsxs)("div",{children:[p&&(0,t.jsx)("p",{children:p}),(0,t.jsx)("unzer-payment",{id:u,publicKey:m,locale:d,children:(0,t.jsx)("unzer-paylater-invoice",{})})]})};!function(s,o,r){(0,n.registerPaymentMethod)({name:s,label:(0,t.jsx)("div",{children:(0,t.jsx)("span",{className:"wc-block-components-payment-method-label",children:o})}),content:r,edit:r,canMakePayment:()=>!0,ariaLabel:(0,e.decodeEntities)(o),supports:{features:["products"]}})}(a,i,(0,t.jsx)(y,{}))})();
\ No newline at end of file
diff --git a/assets/build/unzer_simple.asset.php b/assets/build/unzer_simple.asset.php
index 854eda9..3141f4f 100644
--- a/assets/build/unzer_simple.asset.php
+++ b/assets/build/unzer_simple.asset.php
@@ -1,4 +1,4 @@
array( 'react-jsx-runtime', 'wc-blocks-registry', 'wc-settings', 'wp-html-entities' ),
- 'version' => 'aa971fc6a6cdf5615f0c',
+ 'version' => '61276055c948fa0fa3b2',
);
diff --git a/assets/build/unzer_simple.js b/assets/build/unzer_simple.js
index 557a514..11fba18 100644
--- a/assets/build/unzer_simple.js
+++ b/assets/build/unzer_simple.js
@@ -1 +1 @@
-(()=>{"use strict";const e=window.wp.htmlEntities,t=window.wc.wcBlocksRegistry,n=window.ReactJSXRuntime,i=window.wc.wcSettings;function c(c){const a=(0,i.getSetting)("unzer_"+c+"_data",{}),s=a.title||c,o=a.id||c,d=a?.description||"",r=()=>(0,n.jsx)("div",{children:d&&(0,n.jsx)("p",{children:d})});!function(i,c,a){(0,t.registerPaymentMethod)({name:i,label:(0,n.jsx)("div",{children:(0,n.jsx)("span",{className:"wc-block-components-payment-method-label",children:c})}),content:a,edit:a,canMakePayment:()=>!0,ariaLabel:(0,e.decodeEntities)(c),supports:{features:["products"]}})}(o,s,(0,n.jsx)(r,{}))}const a=["alipay","bancontact","eps","ideal","klarna","postfinance_card","postfinance_efinance","prepayment","przelewy24","twint","wechatpay","wero"];for(const e of a)c(e)})();
\ No newline at end of file
+(()=>{"use strict";const e=window.wp.htmlEntities,t=window.wc.wcBlocksRegistry,n=window.ReactJSXRuntime,a=window.wc.wcSettings;function c(c){const i=(0,a.getSetting)("unzer_"+c+"_data",{}),s=i.title||c,o=i.id||c,l=i?.description||"",d=()=>l?(0,n.jsx)("p",{children:l}):null;!function(a,c,i){(0,t.registerPaymentMethod)({name:a,label:(0,n.jsx)("div",{children:(0,n.jsx)("span",{className:"wc-block-components-payment-method-label",children:c})}),content:i,edit:i,canMakePayment:()=>!0,ariaLabel:(0,e.decodeEntities)(c),supports:{features:["products"]}})}(o,s,(0,n.jsx)(d,{}))}const i=["alipay","bancontact","eps","ideal","klarna","postfinance_card","postfinance_efinance","paypal","prepayment","przelewy24","twint","wechatpay","wero"];for(const e of i)c(e)})();
\ No newline at end of file
diff --git a/assets/css/admin.css b/assets/css/admin.css
index 6e76845..d3fcbf7 100755
--- a/assets/css/admin.css
+++ b/assets/css/admin.css
@@ -132,3 +132,15 @@
.unzer-payment-navigation{
display:none;
}
+
+.unzer-alert-info-row td{
+ padding:0;
+}
+
+.unzer-alert-info{
+ padding: 10px 15px;
+ background: #e7f5fe;
+ border-left: 4px solid #2196f3;
+ color: #1a3e5c;
+ margin: 10px 0;
+}
diff --git a/assets/css/block-checkout.css b/assets/css/block-checkout.css
new file mode 100644
index 0000000..9f9e601
--- /dev/null
+++ b/assets/css/block-checkout.css
@@ -0,0 +1,3 @@
+.unzer-place-order-button-hidden{
+ display:none !important;
+}
\ No newline at end of file
diff --git a/assets/js/admin_webhook_management.js b/assets/js/admin_webhook_management.js
index acbb42d..01beb36 100644
--- a/assets/js/admin_webhook_management.js
+++ b/assets/js/admin_webhook_management.js
@@ -3,6 +3,7 @@ function unzerWebhookRefreshData(slug) {
const formData = new FormData();
formData.append( 'slug', slug );
formData.append( 'unzer_nonce', window.unzerWebhookNonce );
+ formData.append( 'unzer_payment_method', window.unzerWebhookPaymentMethod );
fetch(
window.unzerWebhookAjaxUrl,
{
@@ -56,6 +57,7 @@ function unzerAddCurrentWebhook(slug) {
formData.append( 'action', 'add' );
formData.append( 'slug', slug );
formData.append( 'unzer_nonce', window.unzerWebhookNonce );
+ formData.append( 'unzer_payment_method', window.unzerWebhookPaymentMethod );
fetch(
window.unzerWebhookAjaxUrl,
{
@@ -85,6 +87,7 @@ function unzerDeleteWebhook(id, slug) {
formData.append( 'id', id );
formData.append( 'slug', slug );
formData.append( 'unzer_nonce', window.unzerWebhookNonce );
+ formData.append( 'unzer_payment_method', window.unzerWebhookPaymentMethod );
fetch(
window.unzerWebhookAjaxUrl,
{
@@ -127,8 +130,9 @@ document.addEventListener(
document.querySelectorAll( '.unzer-webhook-container' ).forEach(
function (element) {
if (element.getAttribute( 'data-url' ) && element.getAttribute( 'data-nonce' )) {
- window.unzerWebhookAjaxUrl = element.getAttribute( 'data-url' );
- window.unzerWebhookNonce = element.getAttribute( 'data-nonce' );
+ window.unzerWebhookAjaxUrl = element.getAttribute( 'data-url' );
+ window.unzerWebhookNonce = element.getAttribute( 'data-nonce' );
+ window.unzerWebhookPaymentMethod = element.getAttribute( 'data-payment-method' );
unzerWebhookRefreshData( element.getAttribute( 'data-slug' ) );
}
}
diff --git a/assets/js/checkout.js b/assets/js/checkout.js
index eea8d19..83d4d8a 100755
--- a/assets/js/checkout.js
+++ b/assets/js/checkout.js
@@ -197,6 +197,7 @@ const UnzerManager = {
// for some reason this does not get applied without timeout?
setTimeout(
function () {
+ console.log(unzerPaymentElement, paymentDataRequestObject);
unzerPaymentElement.setGooglePayData(paymentDataRequestObject);
},
100
@@ -250,7 +251,7 @@ const UnzerManager = {
);
const unzerCheckout = document.getElementById('unzer-apple-pay-checkout-component');
unzerCheckout.onPaymentSubmit = function (response) {
- if (response.submitResponse && response.submitResponse.data && response.submitResponse.data.id && response.submitResponse.data.id.indexOf('apple') === -1) {
+ if (response.submitResponse && response.submitResponse.data && response.submitResponse.data.id && response.submitResponse.data.id.indexOf('-apl-') === -1) {
return
}
if (response.submitResponse && response.submitResponse.success) {
@@ -495,9 +496,6 @@ const UnzerManager = {
return false;
},
- supportsApplePay() {
- return window.ApplePaySession && window.ApplePaySession.canMakePayments() && window.ApplePaySession.supportsVersion(6);
- },
_setCustomerDataToPaymentComponent(selector) {
const paymentElement = document.querySelector(selector);
if (paymentElement) {
@@ -588,11 +586,8 @@ jQuery(
const applePayContainer = document.querySelector('.payment_method_unzer_apple_pay_v2');
if (applePayContainer) {
const applePayButton = document.getElementById('unzer_apple_pay_v2_place_order');
- if (!UnzerManager.supportsApplePay()) {
- applePayContainer.style.display = 'none';
- }
if (applePayButton && placeOrderButton) {
- if (document.getElementById('payment_method_unzer_apple_pay_v2').checked && UnzerManager.supportsApplePay()) {
+ if (document.getElementById('payment_method_unzer_apple_pay_v2').checked) {
applePayButton.style.display = '';
showPlaceOrderButton = false;
} else {
@@ -624,4 +619,3 @@ jQuery(
);
}
);
-
diff --git a/assets/src/payment_methods/unzer_apple_pay_v2.jsx b/assets/src/payment_methods/unzer_apple_pay_v2.jsx
index e64b764..4d3b2b2 100644
--- a/assets/src/payment_methods/unzer_apple_pay_v2.jsx
+++ b/assets/src/payment_methods/unzer_apple_pay_v2.jsx
@@ -1,6 +1,6 @@
import unzerRegisterMethod from "../util/register-method";
import {getSetting} from '@woocommerce/settings'
-import { useEffect, useState } from '@wordpress/element'
+import {useEffect} from '@wordpress/element'
import onPaymentSetupFactory from "../util/on-payment-setup-factory";
const nameInSnakeCase = 'apple_pay_v2';
@@ -11,7 +11,7 @@ const gatewayDescription = settings?.description || ''
const publicKey = settings?.publicKey || '';
const locale = settings?.locale || '';
const paymentComponentId = settings.paymentComponentId || (gatewayName + '-payment-component');
-
+const checkoutComponentId = settings.checkoutComponentId || (gatewayName + '-checkout-component');
const PaymentContent = ({eventRegistration, emitResponse}) => {
const {onPaymentSetup} = eventRegistration;
@@ -23,13 +23,18 @@ const PaymentContent = ({eventRegistration, emitResponse}) => {
return (
{gatewayDescription &&
{gatewayDescription}
}
-
-
-
+
)
}
diff --git a/assets/src/payment_methods/unzer_google_pay.jsx b/assets/src/payment_methods/unzer_google_pay.jsx
index 7857dd4..e2578fd 100644
--- a/assets/src/payment_methods/unzer_google_pay.jsx
+++ b/assets/src/payment_methods/unzer_google_pay.jsx
@@ -1,6 +1,6 @@
import unzerRegisterMethod from "../util/register-method";
import {getSetting} from '@woocommerce/settings'
-import { useEffect, useState } from '@wordpress/element'
+import {useEffect} from '@wordpress/element'
import onPaymentSetupFactory from "../util/on-payment-setup-factory";
const nameInSnakeCase = 'google_pay';
@@ -11,6 +11,7 @@ const gatewayDescription = settings?.description || ''
const publicKey = settings?.publicKey || '';
const locale = settings?.locale || '';
const paymentComponentId = settings.paymentComponentId || (gatewayName + '-payment-component');
+const checkoutComponentId = settings.checkoutComponentId || (gatewayName + '-checkout-component');
const PaymentContent = ({eventRegistration, emitResponse}) => {
const {onPaymentSetup} = eventRegistration;
@@ -22,13 +23,18 @@ const PaymentContent = ({eventRegistration, emitResponse}) => {
return (
{gatewayDescription &&
{gatewayDescription}
}
-
-
-
+
)
}
diff --git a/assets/src/unzer_global.jsx b/assets/src/unzer_global.jsx
index 08dd815..ecfb1f1 100644
--- a/assets/src/unzer_global.jsx
+++ b/assets/src/unzer_global.jsx
@@ -1,135 +1,221 @@
import {select, subscribe} from '@wordpress/data';
window.unzerCurrentPaymentMethod = '';
+window.unzerIsInitial = true;
window.unzerCurrentAmount = 0;
-const updatePaymentMethodData = function (longNameInSnakeCase, cartData) {
- console.info('updatePaymentMethodData for ' + longNameInSnakeCase);
- const settings = window.wc.wcSettings.getSetting(longNameInSnakeCase + '_data', {})
- console.log(settings, cartData);
- setTimeout(async () => {
- const paymentComponent = document.getElementById(settings.paymentComponentId);
- if (paymentComponent) {
- Promise.all([customElements.whenDefined('unzer-payment')]).then(
- () => {
- try {
- const data = new FormData();
- data.append('data', JSON.stringify(cartData));
- data.append('payment_method', longNameInSnakeCase);
- data.append('unzer_nonce', settings.nonce);
- fetch(settings.getCustomerDataUrl, {
- method: 'POST',
- body: data
-
- }).then((response) => response.json())
- .then((responseData)=>{
- const customerData = responseData.customer;
- console.log(
- 'set customer data',
- customerData
- );
- if (customerData) {
- paymentComponent.setCustomerData(
- customerData
- );
- }
- if(responseData.publicKey !== paymentComponent.publicKey) {
- paymentComponent.publicKey = responseData.publicKey;
- paymentComponent.initOnFirstUpdate();
- }
+function triggerSubmitForPaymentTypeId(paymentComponent, paymentTypeId) {
+ paymentComponent.woocommercePaymentTypeId = paymentTypeId;
+ const originalCheckoutButtons = document.querySelectorAll('.wc-block-components-checkout-place-order-button');
+ const lastOriginalCheckoutButton = originalCheckoutButtons[originalCheckoutButtons.length - 1];
+ lastOriginalCheckoutButton.click();
+ paymentComponent.style.display = 'none';
+ setTimeout(() => {
+ unzerCheckForPaymentMethodChanges(true);
+ }, 3000);
- if (paymentComponent.setBasketData) {
- paymentComponent.setBasketData(
- {
- amount: cartData.totals.total_price/100,
- currencyType: cartData.totals.currency_code,
- country: cartData.billingAddress.country
- }
- );
- const installmentComponent = document.getElementById('unzer-paylater-installment-component');
- if (installmentComponent && installmentComponent.reloadPlansWithRetainedData) {
- installmentComponent.updateDataFromStore();
- console.log(installmentComponent.basketDetails);
- installmentComponent.onDataReady();
- }
- }
+}
+
+window.unzerInitiatePaymentMethod = (
+ longNameInSnakeCase,
+ settings,
+ cartData
+) => {
+ const paymentComponent = document.getElementById(settings.paymentComponentId);
+ const paymentMethodCheckoutButtonContainer = document.getElementById(settings.paymentComponentId + '-container-for-button');
+ const originalCheckoutButtons = document.querySelectorAll('.wc-block-components-checkout-place-order-button');
+ originalCheckoutButtons.forEach(originalCheckoutButton => {
+ originalCheckoutButton.classList.remove('unzer-place-order-button-hidden');
+ });
+ document.querySelectorAll('.unzer-payment-method-checkout-button-container').forEach(container => {
+ container.remove();
+ });
+ if (paymentComponent) {
+ paymentComponent.style.display = '';
+ Promise.all([customElements.whenDefined('unzer-payment')]).then(
+ () => {
+ try {
+
+ // move buttons to place order section
+ if (originalCheckoutButtons.length) {
+ if (paymentMethodCheckoutButtonContainer) {
+ //is button payment method
+ originalCheckoutButtons.forEach(originalCheckoutButton => {
+ originalCheckoutButton.classList.add('unzer-place-order-button-hidden');
+ });
+ const lastOriginalCheckoutButton = originalCheckoutButtons[originalCheckoutButtons.length - 1];
+ paymentMethodCheckoutButtonContainer.classList.add('unzer-payment-method-checkout-button-container');
+ lastOriginalCheckoutButton.after(paymentMethodCheckoutButtonContainer);
+ }
+ }
+
+ if (longNameInSnakeCase === 'unzer_google_pay' && paymentComponent.setGooglePayData) {
+ const options = settings.options;
+ const paymentDataRequestObject = {
+ gatewayMerchantId: options.gatewayMerchantId,
+ merchantInfo: options.merchantInfo,
+ transactionInfo: {
+ currencyCode: cartData.totals.currency_code,
+ countryCode: cartData.billingAddress.country,
+ totalPriceStatus: 'ESTIMATED',
+ totalPrice: (cartData.totals.total_price / 100).toFixed(2),
+ },
+ buttonOptions: options.buttonOptions,
+ allowedCardNetworks: options.allowedCardNetworks,
+ allowCreditCards: options.allowCreditCards,
+ allowPrepaidCards: options.allowPrepaidCards
+ };
+ // for some reason this does not get applied without timeout?
+ setTimeout(
+ function () {
+ paymentComponent.setGooglePayData(paymentDataRequestObject);
+ },
+ 1000
+ );
+
+ const unzerCheckout = document.getElementById('unzer-google-pay-checkout-component');
+ if (unzerCheckout) {
+ unzerCheckout.onPaymentSubmit = function (response) {
+ if (response.submitResponse && response.submitResponse.success) {
+ triggerSubmitForPaymentTypeId(paymentComponent, response.submitResponse.data.id);
+ } else {
+ console.error(response);
+ }
+ };
+ }
+ }
- });
+ if (longNameInSnakeCase === 'unzer_apple_pay_v2' && paymentComponent.setApplePayData) {
+ const applePayPaymentRequest = {
+ countryCode: settings.storeCountry,
+ currencyCode: cartData.totals.currency_code,
+ supportedNetworks: ['visa', 'masterCard'],
+ merchantCapabilities: ['supports3DS'],
+ total: {
+ label: settings.storeName,
+ amount: cartData.totals.total_price / 100
+ }
+ };
+ // for some reason this does not get applied without timeout?
+ setTimeout(
+ function () {
+ paymentComponent.setApplePayData(applePayPaymentRequest);
+ },
+ 1000
+ );
- } catch (e) {
- console.error(e);
+ const unzerCheckout = document.getElementById('unzer-apple-pay-v2-checkout-component');
+ if (unzerCheckout) {
+ unzerCheckout.onPaymentSubmit = function (response) {
+ if (response.submitResponse && response.submitResponse.data && response.submitResponse.data.id && response.submitResponse.data.id.indexOf('-apl-') === -1) {
+ return
+ }
+ if (response.submitResponse && response.submitResponse.success) {
+ triggerSubmitForPaymentTypeId(paymentComponent, response.submitResponse.data.id);
+ } else {
+ console.error(response);
+ }
+ };
}
}
- );
+ const data = new FormData();
+ data.append('data', JSON.stringify(cartData));
+ data.append('payment_method', longNameInSnakeCase);
+ data.append('unzer_nonce', settings.nonce);
+ fetch(settings.getCustomerDataUrl, {
+ method: 'POST',
+ body: data
+
+ }).then((response) => response.json())
+ .then((responseData) => {
+ const customerData = responseData.customer;
+ if (customerData) {
+ paymentComponent.setCustomerData(
+ customerData
+ );
+ }
+
+ if (responseData.publicKey !== paymentComponent.publicKey) {
+ paymentComponent.publicKey = responseData.publicKey;
+ paymentComponent.initOnFirstUpdate();
+ }
+
+ if (paymentComponent.setBasketData) {
+ paymentComponent.setBasketData(
+ {
+ amount: cartData.totals.total_price / 100,
+ currencyType: cartData.totals.currency_code,
+ country: cartData.billingAddress.country
+ }
+ );
+ const installmentComponent = document.getElementById('unzer-paylater-installment-component');
+ if (installmentComponent && installmentComponent.reloadPlansWithRetainedData) {
+ installmentComponent.updateDataFromStore();
+ installmentComponent.onDataReady();
+ }
+ }
+
+
+ });
+
+ } catch (e) {
+ console.error(e);
+ }
}
- }, 100
- )
+ );
+ }
}
-subscribe(() => {
+const updatePaymentMethodData = function (longNameInSnakeCase, cartData) {
+ const settings = window.wc.wcSettings.getSetting(longNameInSnakeCase + '_data', {})
+ console.log(settings, cartData);
+
+ if (window.unzerIsInitial) {
+ const initializeLoopFunction = () => {
+ if (!document.querySelector('.wc-block-components-checkout-place-order-button') || !document.querySelector('.wp-block-woocommerce-checkout-payment-block .wc-block-components-radio-control-accordion-option')) {
+ setTimeout(initializeLoopFunction, 100);
+ } else {
+ setTimeout(async () => {
+ window.unzerInitiatePaymentMethod(longNameInSnakeCase, settings, cartData);
+ }, 1000
+ )
+ }
+ }
+ initializeLoopFunction();
+ } else {
+ setTimeout(async () => {
+ window.unzerInitiatePaymentMethod(longNameInSnakeCase, settings, cartData);
+ }, 1000
+ )
+ }
+
+
+}
+
+function unzerCheckForPaymentMethodChanges(force = false) {
+
+ const checkoutStore = select(window.wc.wcBlocksData.CHECKOUT_STORE_KEY);
const cartStore = select(window.wc.wcBlocksData.CART_STORE_KEY);
const paymentStore = select(window.wc.wcBlocksData.PAYMENT_STORE_KEY);
+
const cartData = cartStore.getCartData();
let hasChanged = false;
if (window.unzerCurrentPaymentMethod !== paymentStore.getActivePaymentMethod()) {
-hasChanged = true;
+ hasChanged = true;
}
- if(!hasChanged && window.unzerCurrentAmount !== cartData.totals.total_price){
+ if (!hasChanged && window.unzerCurrentAmount !== cartData.totals.total_price) {
hasChanged = true;
}
- if(hasChanged) {
+ if (hasChanged || force) {
console.log('payment method changed to: ' + paymentStore.getActivePaymentMethod());
window.unzerCurrentPaymentMethod = paymentStore.getActivePaymentMethod();
window.unzerCurrentAmount = cartData.totals.total_price;
updatePaymentMethodData(window.unzerCurrentPaymentMethod, cartData);
}
-}, 'wc/store/cart');
-
-
-//
-// const paymentMethodUpdateCallbacks = function (shortNameInSnakeCase) {
-// const settings = window.wc.wcSettings.getSetting('unzer_' + shortNameInSnakeCase + '_data', {})
-// console.log(shortNameInSnakeCase, settings);
-// const {checkoutStore} = window.wc.wcBlocksData;
-// console.log('checkoutStore', checkoutStore);
-// const paymentComponent = document.getElementById(settings.paymentComponentId);
-// if (paymentComponent) {
-// console.log('PPPCCCCC', paymentComponent);
-// }
-//
-//
-// }
-//
-// //we actually don't need this any more, but keep it in case a use case pops up
-// const unzerIsPaymentMethodAllowed = (shortNameInSnakeCase, arg) => {
-// console.log(arg);
-// paymentMethodUpdateCallbacks(shortNameInSnakeCase);
-// // console.log(shortNameInSnakeCase);
-// // console.trace();
-// // const settings = window.wc.wcSettings.getSetting('unzer_' + shortNameInSnakeCase + '_data', {})
-// // const currency = arg.cart.cartTotals.currency_code;
-// // const country = arg.billingAddress.country;
-// // if(settings.allowedCountries){
-// // if(!settings.allowedCountries.includes(country)){
-// // return false;
-// // }
-// // }
-// // if(settings.allowedCurrencies){
-// // if(!settings.allowedCurrencies.includes(currency)){
-// // return false;
-// // }
-// // }
-// return true;
-// };
-//
-// const callbackCollection = {};
-// for (const simpleMethod of simpleMethods) {
-// callbackCollection['unzer_' + simpleMethod] = (arg) => {
-// return unzerIsPaymentMethodAllowed(simpleMethod, arg);
-// }
-// }
-// console.log(callbackCollection);
-// registerPaymentMethodExtensionCallbacks('unzer-payments', callbackCollection);
\ No newline at end of file
+
+}
+
+subscribe(unzerCheckForPaymentMethodChanges, 'wc/store/cart');
\ No newline at end of file
diff --git a/assets/src/util/on-payment-setup-factory.jsx b/assets/src/util/on-payment-setup-factory.jsx
index 970d8cc..7b1bc47 100644
--- a/assets/src/util/on-payment-setup-factory.jsx
+++ b/assets/src/util/on-payment-setup-factory.jsx
@@ -6,6 +6,25 @@ export default function onPaymentSetupFactory(paymentComponentId, paymentTypeIdF
if(!unzerPaymentComponent) {
console.error('unzer payment component does not exist: ' + paymentComponentId);
}
+
+ if(unzerPaymentComponent.woocommercePaymentTypeId){
+ const paymentMethodData = {};
+ paymentMethodData['unzer_nonce'] = settings.nonce;
+ paymentMethodData[paymentTypeIdFieldName] = unzerPaymentComponent.woocommercePaymentTypeId;
+ const returnValue = {
+ type: emitResponse?.responseTypes?.SUCCESS,
+ meta: {
+ paymentMethodData
+ }
+ };
+ console.log(
+ 'return previously generated type id (button payment methods)',
+ returnValue
+ );
+
+ return returnValue;
+ }
+
const response = await unzerPaymentComponent.submit();
if (response.submitResponse) {
if (response.submitResponse.success === true) {
@@ -19,29 +38,24 @@ export default function onPaymentSetupFactory(paymentComponentId, paymentTypeIdF
paymentMethodData
}
};
- console.log(
- 'submit response: ',
- response.submitResponse,
- returnValue
- );
return returnValue;
} else {
return {
type: emitResponse?.responseTypes?.ERROR,
- message: 'GENERAL ERROR 1'
+ message: response.submitResponse.message || 'General Error'
}
}
} else {
return {
type: emitResponse?.responseTypes?.ERROR,
- message: 'GENERAL ERROR 2'
+ message: 'General Error 002'
}
}
- } catch (err) {
+ } catch (error) {
return {
type: emitResponse?.responseTypes?.ERROR,
- message: 'GENERAL ERROR 3'
+ message: error.message || error.name || 'General Error 003'
}
}
diff --git a/assets/src/util/register-simple-method.jsx b/assets/src/util/register-simple-method.jsx
index a5881c6..6619e28 100644
--- a/assets/src/util/register-simple-method.jsx
+++ b/assets/src/util/register-simple-method.jsx
@@ -8,11 +8,7 @@ export default function unzerRegisterSimpleMethod(nameInSnakeCase) {
const gatewayDescription = settings?.description || ''
const PaymentContent = () => {
- return (
-
- {gatewayDescription &&
{gatewayDescription}
}
-
- )
+ return gatewayDescription ? {gatewayDescription}
: null;
}
unzerRegisterMethod(gatewayName, gatewayTitle, );
}
diff --git a/assets/src/util/simple-methods.jsx b/assets/src/util/simple-methods.jsx
index d8683b9..bd8867b 100644
--- a/assets/src/util/simple-methods.jsx
+++ b/assets/src/util/simple-methods.jsx
@@ -6,6 +6,7 @@ export default [
'klarna',
'postfinance_card',
'postfinance_efinance',
+ 'paypal',
'prepayment',
'przelewy24',
'twint',
diff --git a/html/admin/webhooks.php b/html/admin/webhooks.php
index 142ad7a..8ce4bf4 100755
--- a/html/admin/webhooks.php
+++ b/html/admin/webhooks.php
@@ -9,7 +9,7 @@
$slug = isset( $slug ) ? $slug : '';
$ajaxUrl = WC()->api_request_url( AdminController::WEBHOOK_MANAGEMENT_ROUTE_SLUG );
?>
-
+
Webhooks
diff --git a/includes/Main.php b/includes/Main.php
index a2a6d3d..97fc635 100755
--- a/includes/Main.php
+++ b/includes/Main.php
@@ -99,7 +99,7 @@ public function registerEvents(): void {
add_action( 'woocommerce_update_options_payment_gateways_unzer_apple_pay_v2', array( $this, 'savePaymentMethodSettingsApplePayV2' ) );
add_action( 'woocommerce_update_options_checkout_unzer_general', array( $this, 'saveGeneralSettings' ) );
add_action( 'admin_notices', array( new DashboardService(), 'showNotifications' ) );
- // add_action( 'woocommerce_blocks_loaded', array( $this, 'addCheckoutBlocks' ) );
+ add_action( 'woocommerce_blocks_loaded', array( $this, 'addCheckoutBlocks' ) );
add_action( 'before_woocommerce_pay_form', array( $this, 'orderPayPaymentMethod' ), 20, 4 );
add_action(
'admin_enqueue_scripts',
diff --git a/includes/controllers/AdminController.php b/includes/controllers/AdminController.php
index ca5e850..184c23d 100644
--- a/includes/controllers/AdminController.php
+++ b/includes/controllers/AdminController.php
@@ -143,9 +143,10 @@ public function doCharge() {
public function webhookManagement() {
try {
- $slug = Util::getNonceCheckedPostValue( 'slug' );
- $action = Util::getNonceCheckedPostValue( 'action' );
- $service = new WebhookManagementService( $slug );
+ $slug = Util::getNonceCheckedPostValue( 'slug' );
+ $action = Util::getNonceCheckedPostValue( 'action' );
+ $paymentMethod = Util::getNonceCheckedPostValue( 'unzer_payment_method' );
+ $service = new WebhookManagementService( $slug, $paymentMethod );
if ( empty( $action ) ) {
$this->renderJson(
array(
diff --git a/includes/gateways/AbstractGateway.php b/includes/gateways/AbstractGateway.php
index ce460bd..c2e8743 100644
--- a/includes/gateways/AbstractGateway.php
+++ b/includes/gateways/AbstractGateway.php
@@ -326,20 +326,38 @@ public function admin_options() {
echo '
';
}
+ public function generate_unzer_additional_key_info_html( $key, $data ) {
+ return '
+
+ |
+
+ ' . esc_html__( 'In the section below you may enter additional key pairs. If you leave fields empty, the main key pair will be used by default.' ) . '
+
+ |
+
+ ';
+ }
+
public function generate_key_check_html( $key, $data ) {
$slug = $data['slug'];
$title = $data['title'] ?? '';
+
+ if ( empty( $this->get_option( 'private_key_' . $slug ) ) || empty( $this->get_option( 'public_key_' . $slug ) ) ) {
+ return '';
+ }
+
wp_enqueue_script( 'unzer_admin_key_management_js', UNZER_PLUGIN_URL . '/assets/js/admin_key_management.js', array(), UNZER_VERSION, array( 'in_footer' => false ) );
wp_enqueue_script( 'unzer_admin_webhook_management_js', UNZER_PLUGIN_URL . '/assets/js/admin_webhook_management.js', array(), UNZER_VERSION, array( 'in_footer' => false ) );
$webhookHtml = '';
- if ( $this->get_option( 'private_key_' . $slug ) && $this->get_option( 'public_key_' . $slug ) ) {
- ob_start();
- include UNZER_PLUGIN_PATH . 'html/admin/webhooks.php';
- $webhookHtml = ob_get_contents();
- ob_end_clean();
- }
+
+ ob_start();
+ $paymentMethod = static::GATEWAY_ID;
+ include UNZER_PLUGIN_PATH . 'html/admin/webhooks.php';
+ $webhookHtml = ob_get_contents();
+ ob_end_clean();
+
$ajaxUrl = WC()->api_request_url( AdminController::KEY_VALIDATION_ROUTE_SLUG );
return '
@@ -446,11 +464,11 @@ function ( $tag, $handle, $src ) {
10,
3
);
- wp_enqueue_script( 'unzer_ui_v2_js', 'https://static.test.unzer.com/v2/ui-components/index.js', array(), UNZER_VERSION, array( 'in_footer' => true ) ); // https://static-v2.unzer.com/v2/ui-components/index.js
+ wp_enqueue_script( 'unzer_ui_v2_js', 'https://static-v2.unzer.com/v2/ui-components/index.js', array(), UNZER_VERSION, array( 'in_footer' => true ) ); // https://static-v2.unzer.com/v2/ui-components/index.js
wp_enqueue_style( 'woocommerce_unzer_css', UNZER_PLUGIN_URL . '/assets/css/checkout.css', array(), UNZER_VERSION );
if ( ( $this instanceof GooglePay ) && empty( $this->get_description() ) ) {
- wp_add_inline_style( 'woocommerce_unzer_css', '.payment_box.payment_method_unzer_google_pay{display:none !important;}' );
+ wp_add_inline_style( 'woocommerce_unzer_css', '.payment_box.payment_method_unzer_google_pay{display:none !important;}' );
} elseif ( ( $this instanceof ApplePayV2 ) && empty( $this->get_description() ) ) {
wp_add_inline_style( 'woocommerce_unzer_css', '.payment_box.payment_method_unzer_apple_pay_v2{display:none !important;}' );
}
@@ -480,23 +498,7 @@ function ( $tag, $handle, $src ) {
'store_country' => strtoupper( substr( get_option( 'woocommerce_default_country' ), 0, 2 ) ),
'is_order_pay' => self::isOrderPay() ? 'true' : 'false',
'currency' => get_woocommerce_currency(),
- 'google_pay_options' => array(
- 'gatewayMerchantId' => $googlePayGateway->get_option( 'channel_id' ),
- 'merchantInfo' => array(
- 'merchantName' => $googlePayGateway->get_option( 'merchant_name' ),
- 'merchantId' => $googlePayGateway->get_option( 'merchant_id' ),
- ),
- 'transactionInfo' => array(
- 'countryCode' => $googlePayGateway->get_option( 'country_code' ),
- ),
- 'buttonOptions' => array(
- 'buttonColor' => $googlePayGateway->get_option( 'button_color' ),
- 'buttonSizeMode' => $googlePayGateway->get_option( 'button_size_mode' ),
- ),
- 'allowCreditCards' => $googlePayGateway->get_option( 'credit_cards_allowed' ) === 'yes',
- 'allowPrepaidCards' => $googlePayGateway->get_option( 'prepaid_cards_allowed' ) === 'yes',
- 'allowedCardNetworks' => (array) $googlePayGateway->get_option( 'card_networks' ),
- ),
+ 'google_pay_options' => $googlePayGateway->getPublicOptions(),
)
);
wp_localize_script(
diff --git a/includes/gateways/Blocks/AbstractBlock.php b/includes/gateways/Blocks/AbstractBlock.php
index dc8981a..b7b96c0 100644
--- a/includes/gateways/Blocks/AbstractBlock.php
+++ b/includes/gateways/Blocks/AbstractBlock.php
@@ -60,7 +60,10 @@ public function get_payment_method_data() {
'publicKey' => $gateway->get_public_key(),
'locale' => get_locale(),
'nonce' => Util::getNonce(),
+ 'storeName' => get_bloginfo( 'name' ),
+ 'storeCountry' => strtoupper( substr( get_option( 'woocommerce_default_country' ), 0, 2 ) ),
'paymentComponentId' => str_replace( '_', '-', static::GATEWAY_ID ) . '-payment-component',
+ 'checkoutComponentId' => str_replace( '_', '-', static::GATEWAY_ID ) . '-checkout-component',
'getCustomerDataUrl' => WC()->api_request_url( CheckoutController::GET_UNZER_CUSTOMER_SLUG ),
);
}
@@ -92,6 +95,10 @@ public function get_payment_method_script_handles() {
return array( $this->get_identifier() . '-block-checkout' );
}
+ public function get_payment_method_script_handles_for_admin() {
+ return array();
+ }
+
public function initialize() {
if ( ! $this->should_enqueue_assets() || is_admin() ) {
@@ -112,8 +119,9 @@ function ( $tag, $handle, $src ) {
10,
3
);
- wp_enqueue_script( 'unzer_ui_v2_js', 'https://static.test.unzer.com/v2/ui-components/index.js', array(), UNZER_VERSION, array( 'in_footer' => true ) ); // https://static-v2.unzer.com/v2/ui-components/index.js
+ wp_enqueue_script( 'unzer_ui_v2_js', 'https://static-v2.unzer.com/v2/ui-components/index.js', array(), UNZER_VERSION, array( 'in_footer' => true ) ); // https://static-v2.unzer.com/v2/ui-components/index.js
wp_register_script( 'unzer_global-block-checkout', UNZER_PLUGIN_URL . '/assets/build/unzer_global.js', array( 'wc-blocks-registry' ), UNZER_VERSION, array( 'in_footer' => true ) );
+ wp_enqueue_style( 'woocommerce_unzer_block_checkout_css', UNZER_PLUGIN_URL . '/assets/css/block-checkout.css', array(), UNZER_VERSION );
wp_enqueue_script( 'unzer_global-block-checkout' );
$this->settings = array(
'title' => $this->get_setting( 'title' ),
diff --git a/includes/gateways/Blocks/GooglePayBlock.php b/includes/gateways/Blocks/GooglePayBlock.php
index 8f98b56..d81cfb0 100644
--- a/includes/gateways/Blocks/GooglePayBlock.php
+++ b/includes/gateways/Blocks/GooglePayBlock.php
@@ -11,7 +11,15 @@
class GooglePayBlock extends AbstractBlock {
+
public const GATEWAY_ID = GooglePay::GATEWAY_ID;
public const GATEWAY_CLASS = GooglePay::class;
protected $name = self::GATEWAY_ID;
+
+ public function get_payment_method_data() {
+ $gatewayClass = self::GATEWAY_CLASS;
+ return parent::get_payment_method_data() + array(
+ 'options' => ( new $gatewayClass() )->getPublicOptions(),
+ );
+ }
}
diff --git a/includes/gateways/Blocks/PaypalBlock.php b/includes/gateways/Blocks/PaypalBlock.php
index 3db3c3e..f496c10 100644
--- a/includes/gateways/Blocks/PaypalBlock.php
+++ b/includes/gateways/Blocks/PaypalBlock.php
@@ -9,8 +9,6 @@
}
class PaypalBlock extends AbstractBlock {
-
-
public const GATEWAY_ID = Paypal::GATEWAY_ID;
public const GATEWAY_CLASS = Paypal::class;
protected $name = self::GATEWAY_ID;
diff --git a/includes/gateways/DirectDebitSecured.php b/includes/gateways/DirectDebitSecured.php
index 2dbbd84..f2bbc86 100644
--- a/includes/gateways/DirectDebitSecured.php
+++ b/includes/gateways/DirectDebitSecured.php
@@ -96,6 +96,9 @@ public function get_form_fields() {
'description' => __( 'This controls the description which the user sees during checkout.', 'unzer-payments' ),
'default' => '',
),
+ 'additional_key_info' => array(
+ 'type' => 'unzer_additional_key_info',
+ ),
'public_key_eur_b2c' => array(
'title' => __( 'Public Key EUR/B2C', 'unzer-payments' ),
'type' => 'text',
diff --git a/includes/gateways/GooglePay.php b/includes/gateways/GooglePay.php
index aad8762..a9ab1b6 100644
--- a/includes/gateways/GooglePay.php
+++ b/includes/gateways/GooglePay.php
@@ -37,6 +37,26 @@ public function admin_options() {
parent::admin_options();
}
+ public function getPublicOptions() {
+ return array(
+ 'gatewayMerchantId' => $this->get_option( 'channel_id' ),
+ 'merchantInfo' => array(
+ 'merchantName' => $this->get_option( 'merchant_name' ),
+ 'merchantId' => $this->get_option( 'merchant_id' ),
+ ),
+ 'transactionInfo' => array(
+ 'countryCode' => $this->get_option( 'country_code' ),
+ ),
+ 'buttonOptions' => array(
+ 'buttonColor' => $this->get_option( 'button_color' ),
+ 'buttonSizeMode' => $this->get_option( 'button_size_mode' ),
+ ),
+ 'allowCreditCards' => $this->get_option( 'credit_cards_allowed' ) === 'yes',
+ 'allowPrepaidCards' => $this->get_option( 'prepaid_cards_allowed' ) === 'yes',
+ 'allowedCardNetworks' => (array) $this->get_option( 'card_networks' ),
+ );
+ }
+
public function fetchAndSaveChannelId() {
if ( ! $this->get_private_key() ) {
$this->update_option( 'channel_id', '' );
diff --git a/includes/gateways/Installment.php b/includes/gateways/Installment.php
index b33d8af..43e1f3d 100644
--- a/includes/gateways/Installment.php
+++ b/includes/gateways/Installment.php
@@ -104,6 +104,9 @@ public function get_form_fields() {
'description' => __( 'This controls the description which the user sees during checkout.', 'unzer-payments' ),
'default' => '',
),
+ 'additional_key_info' => array(
+ 'type' => 'unzer_additional_key_info',
+ ),
'public_key_eur_b2c' => array(
'title' => __( 'Public Key EUR/B2C', 'unzer-payments' ),
'type' => 'text',
diff --git a/includes/gateways/Invoice.php b/includes/gateways/Invoice.php
index 5c19294..9e9c1df 100644
--- a/includes/gateways/Invoice.php
+++ b/includes/gateways/Invoice.php
@@ -65,6 +65,9 @@ public function get_form_fields() {
'description' => __( 'This controls the description which the user sees during checkout.', 'unzer-payments' ),
'default' => '',
),
+ 'additional_key_info' => array(
+ 'type' => 'unzer_additional_key_info',
+ ),
'public_key_eur_b2c' => array(
'title' => __( 'Public Key EUR/B2C', 'unzer-payments' ),
'type' => 'text',
diff --git a/includes/gateways/Paypal.php b/includes/gateways/Paypal.php
index c3d92a3..d94ad3c 100644
--- a/includes/gateways/Paypal.php
+++ b/includes/gateways/Paypal.php
@@ -81,7 +81,7 @@ public function get_form_fields() {
'default' => 'charge',
),
AbstractGateway::SETTINGS_KEY_SAVE_INSTRUMENTS => array(
- 'title' => __( 'Save PayPAl account for registered customers', 'unzer-payments' ),
+ 'title' => __( 'Save PayPal account for registered customers', 'unzer-payments' ),
'label' => __( ' ', 'unzer-payments' ),
'type' => 'select',
'description' => '',
diff --git a/includes/gateways/Wero.php b/includes/gateways/Wero.php
index 0ca317f..311aca3 100644
--- a/includes/gateways/Wero.php
+++ b/includes/gateways/Wero.php
@@ -33,25 +33,26 @@ public function get_form_fields() {
'wc_unzer_settings',
array(
- 'enabled' => array(
+ 'enabled' => array(
'title' => __( 'Enable/Disable', 'unzer-payments' ),
'label' => __( 'Enable Unzer Wero', 'unzer-payments' ),
'type' => 'checkbox',
'description' => '',
'default' => 'no',
),
- 'title' => array(
+ 'title' => array(
'title' => __( 'Title', 'unzer-payments' ),
'type' => 'text',
'description' => __( 'This controls the title which the user sees during checkout.', 'unzer-payments' ),
'default' => __( 'Wero', 'unzer-payments' ),
),
- 'description' => array(
+ 'description' => array(
'title' => __( 'Description', 'unzer-payments' ),
'type' => 'text',
'description' => __( 'This controls the description which the user sees during checkout.', 'unzer-payments' ),
'default' => '',
),
+ /*
'transaction_type' => array(
'title' => __( 'Charge or Authorize', 'unzer-payments' ),
'label' => '',
@@ -63,6 +64,7 @@ public function get_form_fields() {
),
'default' => 'charge',
),
+ */
)
);
}
@@ -71,11 +73,11 @@ public function process_payment( $order_id ) {
$return = array(
'result' => 'success',
);
- if ( $this->get_option( 'transaction_type' ) === AbstractGateway::TRANSACTION_TYPE_AUTHORIZE ) {
- $transaction = ( new PaymentService() )->performAuthorizationForOrder( $order_id, $this, $this->paymentTypeResource );
- } else {
- $transaction = ( new PaymentService() )->performChargeForOrder( $order_id, $this, $this->paymentTypeResource );
- }
+ // if ( $this->get_option( 'transaction_type' ) === AbstractGateway::TRANSACTION_TYPE_AUTHORIZE ) {
+ // $transaction = ( new PaymentService() )->performAuthorizationForOrder( $order_id, $this, $this->paymentTypeResource );
+ // } else {
+ $transaction = ( new PaymentService() )->performChargeForOrder( $order_id, $this, $this->paymentTypeResource );
+ // }
$this->before_payment_redirect( $order_id );
diff --git a/includes/services/WebhookManagementService.php b/includes/services/WebhookManagementService.php
index 0b51d08..d44f0de 100644
--- a/includes/services/WebhookManagementService.php
+++ b/includes/services/WebhookManagementService.php
@@ -4,6 +4,7 @@
use UnzerPayments\Controllers\WebhookController;
use UnzerPayments\Gateways\Invoice;
+use UnzerPayments\Main;
use UnzerSDK\Constants\WebhookEvents;
use UnzerSDK\Exceptions\UnzerApiException;
use UnzerSDK\Resources\Webhook;
@@ -16,11 +17,15 @@ class WebhookManagementService {
*/
private $unzerManager;
- public function __construct( $slug = null ) {
+ public function __construct( $slug = null, $paymentMethod = null ) {
$paymentService = new PaymentService();
if ( ! empty( $slug ) ) {
- $invoiceGateway = new Invoice();
- $privateKey = $invoiceGateway->get_option( 'private_key_' . $slug );
+
+ $gateway = Main::getInstance()->getPaymentGateway( (string) $paymentMethod );
+ if ( empty( $gateway ) ) {
+ throw new \Exception( 'No gateway found: ' . $paymentMethod );
+ }
+ $privateKey = $gateway->get_option( 'private_key_' . $slug );
if ( empty( $privateKey ) ) {
throw new \Exception( 'Private key not found' );
}
diff --git a/languages/unzer-payments-de_AT.mo b/languages/unzer-payments-de_AT.mo
index 2e55757..911c429 100644
Binary files a/languages/unzer-payments-de_AT.mo and b/languages/unzer-payments-de_AT.mo differ
diff --git a/languages/unzer-payments-de_AT.po b/languages/unzer-payments-de_AT.po
index 30c0ff5..5f0279c 100644
--- a/languages/unzer-payments-de_AT.po
+++ b/languages/unzer-payments-de_AT.po
@@ -697,7 +697,7 @@ msgid "PayPal"
msgstr "PayPal"
#: includes/gateways/Paypal.php:84
-msgid "Save PayPAl account for registered customers"
+msgid "Save PayPal account for registered customers"
msgstr "PayPal-Konto für registrierte Kunden speichern"
#: includes/gateways/Pis.php:35
diff --git a/languages/unzer-payments-de_DE.l10n.php b/languages/unzer-payments-de_DE.l10n.php
index 309fa02..336451c 100644
--- a/languages/unzer-payments-de_DE.l10n.php
+++ b/languages/unzer-payments-de_DE.l10n.php
@@ -150,7 +150,7 @@
'Direct Bank Transfer' => 'Direktüberweisung',
'Enable Unzer PayPal' => 'Aktivieren Sie Unzer PayPal',
'PayPal' => 'PayPal',
- 'Save PayPAl account for registered customers' => 'PayPal-Konto für registrierte Kunden speichern',
+ 'Save PayPal account for registered customers' => 'PayPal-Konto für registrierte Kunden speichern',
'Enable Unzer Bank Transfer' => 'Unzer Banküberweisung aktivieren',
'Bank Transfer' => 'Banküberweisung',
'Enable Unzer Post Finance Card' => 'Unzer Post Finance Card aktivieren',
diff --git a/languages/unzer-payments-de_DE.mo b/languages/unzer-payments-de_DE.mo
index 1792da4..ed3cd14 100755
Binary files a/languages/unzer-payments-de_DE.mo and b/languages/unzer-payments-de_DE.mo differ
diff --git a/languages/unzer-payments-de_DE.po b/languages/unzer-payments-de_DE.po
index 9c161d7..0deeed4 100755
--- a/languages/unzer-payments-de_DE.po
+++ b/languages/unzer-payments-de_DE.po
@@ -1,15 +1,15 @@
msgid ""
msgstr ""
"Project-Id-Version: Unzer Payments\n"
-"POT-Creation-Date: 2025-09-30 22:36+0200\n"
-"PO-Revision-Date: 2025-09-30 22:37+0200\n"
+"POT-Creation-Date: 2026-02-25 17:34+0100\n"
+"PO-Revision-Date: 2026-02-25 17:35+0100\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: de_DE\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 3.7\n"
+"X-Generator: Poedit 3.8\n"
"X-Poedit-Basepath: ..\n"
"X-Poedit-Flags-xgettext: --add-comments=translators:\n"
"X-Poedit-WPHeader: unzer-payments.php\n"
@@ -19,167 +19,102 @@ msgstr ""
"X-Poedit-SearchPath-0: .\n"
"X-Poedit-SearchPathExcluded-0: *.min.js\n"
"X-Poedit-SearchPathExcluded-1: vendor\n"
+"X-Poedit-SearchPathExcluded-2: node_modules\n"
#: html/admin/global-settings-start.php:10
msgid "General settings"
msgstr "Allgemeine Einstellungen"
#: html/admin/global-settings-start.php:29
-#: includes/gateways/AbstractGateway.php:317
+#: includes/Gateways/AbstractGateway.php:368
msgid "Keys are not valid"
msgstr "Schlüssel sind nicht gültig"
#: html/admin/global-settings-start.php:31
-#: includes/gateways/AbstractGateway.php:318
+#: includes/Gateways/AbstractGateway.php:369
msgid "Keys are valid"
msgstr "Schlüssel sind gültig"
-#: html/admin/transactions.php:34
-msgid "Payment Instructions"
-msgstr "Zahlungsanweisungen"
-
-#: html/admin/transactions.php:39
-msgid "Totals"
-msgstr "Gesamt"
-
-#: html/admin/transactions.php:46
-msgid "Detailed Transactions"
-msgstr "Detaillierte Transaktionen"
-
-#: html/admin/transactions.php:50
+#: html/admin/transactions.php:48
msgid "Time"
msgstr "Zeit"
-#: html/admin/transactions.php:51
+#: html/admin/transactions.php:49
msgid "Type"
msgstr "Typ"
-#: html/admin/transactions.php:53
+#: html/admin/transactions.php:51
msgid "Amount"
msgstr "Menge"
-#: html/admin/transactions.php:54
+#: html/admin/transactions.php:52
msgid "Status"
msgstr "Status"
-#: html/admin/transactions.php:63
-msgid "Show Debug Information"
-msgstr "Debug-Informationen anzeigen"
-
-#: html/admin/transactions.php:109
-msgid "Capture Amount"
-msgstr "Betrag einziehen"
+#: html/admin/transactions.php:59
+msgid "Debug"
+msgstr ""
-#: html/admin/transactions.php:114
-msgid "Total amount"
-msgstr "Gesamtbetrag"
+#: html/admin/transactions.php:103
+#, fuzzy
+#| msgid "Totals"
+msgid "Total"
+msgstr "Gesamt"
-#: html/admin/transactions.php:115
-msgid "Charged amount"
-msgstr "Eingezogener Betrag"
+#: html/admin/transactions.php:104
+#, fuzzy
+#| msgid "charge"
+msgid "Charged"
+msgstr "Belastung"
-#: html/admin/transactions.php:116
-msgid "Cancelled amount"
+#: html/admin/transactions.php:105
+#, fuzzy
+#| msgid "Cancelled amount"
+msgid "Cancelled"
msgstr "Erstatteter Betrag"
-#: html/admin/transactions.php:117
-msgid "Remaining amount"
+#: html/admin/transactions.php:106
+#, fuzzy
+#| msgid "Remaining amount"
+msgid "Remaining"
msgstr "Verbleibender Betrag"
-#: includes/Main.php:149 includes/Main.php:182
-msgid "Chargeback"
-msgstr "Chargeback"
-
-#: includes/Main.php:159 includes/Main.php:183
-msgid "Ready to Capture"
-msgstr "Bereit zum Zahlungseinzug"
-
-#: includes/Main.php:169 includes/Main.php:184
-msgid "Waiting for payment"
-msgstr "Warten auf Zahlung"
-
-#: includes/Main.php:253
-msgid "Unzer Transactions"
-msgstr "Unzer-Transaktionen"
-
-#: includes/Main.php:257
-msgid "Unzer API settings"
-msgstr "Unzer API-Einstellungen"
-
-#: includes/Main.php:276
-msgid "Public Key"
-msgstr "Öffentlicher Schlüssel"
-
-#: includes/Main.php:284
-msgid "Private Key"
-msgstr "Privater Schlüssel"
-
-#: includes/Main.php:292
-msgid "Order status for authorized payments"
-msgstr "Auftragsstatus für Aufträge mit autorisierter Zahlung"
-
-#: includes/Main.php:295
-msgid "This status is assigned for orders, that are authorized"
-msgstr "Dieser Status wird für autorisierte Aufträge vergeben"
-
-#: includes/Main.php:296 includes/Main.php:306
-#: includes/gateways/Prepayment.php:58
-msgid "[Use WooC default status]"
-msgstr "[WooC-Standardstatus verwenden]"
-
-#: includes/Main.php:302
-msgid "Order status for captured payments"
-msgstr "Auftragsstatus für Aufträge mit eingezogener Zahlung"
-
-#: includes/Main.php:305
-msgid "This status is assigned for orders, that are captured"
-msgstr ""
-"Dieser Status wird für Aufträge vergeben, deren Zahlung eingezogen wurde"
-
-#: includes/Main.php:312
-msgid "Order status for chargebacks"
-msgstr "Auftragsstatus für Aufträge mit Chargeback"
-
-#: includes/Main.php:315
-msgid "This status is assigned for orders with chargebacks"
-msgstr ""
-"Dieser Status wird für Aufträge vergeben, bei denen ein Chargeback "
-"stattgefunden hat"
-
-#: includes/Main.php:316
-msgid "[No status change]"
-msgstr "[Status nicht ändern]"
+#: html/admin/transactions.php:113
+#, fuzzy
+#| msgid "Capture Amount"
+msgid "Capture"
+msgstr "Betrag einziehen"
-#: includes/controllers/AccountController.php:58
+#: includes/Controllers/AccountController.php:52
msgid "Delete"
msgstr "Löschen"
-#: includes/controllers/AccountController.php:64
+#: includes/Controllers/AccountController.php:59
msgid "Your saved payment means"
msgstr "Ihre gespeicherten Zahlungsarten"
-#: includes/controllers/CheckoutController.php:35
-#: includes/controllers/CheckoutController.php:45
-#: includes/controllers/CheckoutController.php:83
+#: includes/Controllers/CheckoutController.php:48
+#: includes/Controllers/CheckoutController.php:59
+#: includes/Controllers/CheckoutController.php:100
msgid "Payment error"
msgstr "Zahlungsfehler"
-#: includes/controllers/CheckoutController.php:60
+#: includes/Controllers/CheckoutController.php:75
msgid "Payment cancelled"
msgstr "Zahlung storniert"
-#: includes/controllers/WebhookController.php:134
+#: includes/Controllers/WebhookController.php:134
msgid "Chargeback received"
msgstr "Chargeback"
-#: includes/gateways/AbstractGateway.php:104
+#: includes/Gateways/AbstractGateway.php:105
#, php-format
msgid "The Unzer API settings can be adjusted here"
msgstr ""
"Die Einstellungen der Unzer API können hier angepasst "
"werden"
-#: includes/gateways/AbstractGateway.php:106
+#: includes/Gateways/AbstractGateway.php:107
#, php-format
msgid ""
"To start using Unzer payment methods, please enter your credentials first. "
@@ -189,7 +124,7 @@ msgstr ""
"Anmeldedaten ein
API-"
"Einstellungen"
-#: includes/gateways/AbstractGateway.php:275
+#: includes/Gateways/AbstractGateway.php:309
msgid ""
"Turning off this feature will delete all stored payment instruments of your "
"customers. Change this setting back to \"yes\" if you want to keep your "
@@ -199,15 +134,23 @@ msgstr ""
"Zahlungsmittel Ihrer Kunden gelöscht. Ändern Sie diese Einstellung wieder "
"auf \"ja\", wenn Sie die Zahlungsmittel Ihrer Kunden behalten möchten."
-#: includes/gateways/AbstractGateway.php:282
+#: includes/Gateways/AbstractGateway.php:316
msgid "Select another Unzer payment method"
msgstr "Wählen Sie eine andere Unzer-Zahlungsmethode"
-#: includes/gateways/AbstractGateway.php:283
+#: includes/Gateways/AbstractGateway.php:317
msgid "Return to payments"
msgstr "Zurück zu den Zahlungen"
-#: includes/gateways/AbstractGateway.php:436
+#: includes/Gateways/AbstractGateway.php:334
+msgid ""
+"In the section below you may enter additional key pairs. If you leave fields "
+"empty, the main key pair will be used by default."
+msgstr ""
+"Im folgenden Abschnitt können Sie zusätzliche Schlüsselpaare eingeben. Wenn "
+"Sie Felder leer lassen, wird standardmäßig das Hauptschlüsselpaar verwendet."
+
+#: includes/Gateways/AbstractGateway.php:494
msgid ""
"An error occurred while processing your payment. Please try another payment "
"method."
@@ -215,122 +158,109 @@ msgstr ""
"Bei der Bearbeitung Ihrer Zahlung ist ein Fehler aufgetreten. Bitte "
"versuchen Sie eine andere Zahlungsmethode."
-#: includes/gateways/AbstractGateway.php:465
-msgid "Please enter your date of birth"
-msgstr "Bitte geben Sie Ihr Geburtsdatum ein"
-
-#: includes/gateways/AbstractGateway.php:466 includes/gateways/Invoice.php:215
-msgid "Please enter your company type"
-msgstr "Bitte geben Sie Ihren Unternehmenstyp ein"
-
-#: includes/gateways/AbstractGateway.php:467
+#: includes/Gateways/AbstractGateway.php:507
msgid "Please accept the SEPA mandate"
msgstr "Bitte akzeptieren Sie das SEPA Mandat"
-#: includes/gateways/Alipay.php:34 includes/gateways/ApplePayV2.php:60
-#: includes/gateways/Bancontact.php:34 includes/gateways/Card.php:70
-#: includes/gateways/DirectDebit.php:85
-#: includes/gateways/DirectDebitSecured.php:78 includes/gateways/Eps.php:35
-#: includes/gateways/Giropay.php:35 includes/gateways/GooglePay.php:94
-#: includes/gateways/Ideal.php:34 includes/gateways/Installment.php:83
-#: includes/gateways/Invoice.php:47 includes/gateways/Klarna.php:140
-#: includes/gateways/OpenBanking.php:65 includes/gateways/Paypal.php:51
-#: includes/gateways/Pis.php:32 includes/gateways/PostFinanceCard.php:32
-#: includes/gateways/PostFinanceEfinance.php:32
-#: includes/gateways/Prepayment.php:35 includes/gateways/Przelewy24.php:34
-#: includes/gateways/Sofort.php:32 includes/gateways/Twint.php:32
-#: includes/gateways/WeChatPay.php:34 includes/gateways/Wero.php:32
+#: includes/Gateways/Alipay.php:37 includes/Gateways/ApplePayV2.php:69
+#: includes/Gateways/Bancontact.php:36 includes/Gateways/Card.php:73
+#: includes/Gateways/DirectDebit.php:88
+#: includes/Gateways/DirectDebitSecured.php:81 includes/Gateways/Eps.php:37
+#: includes/Gateways/GooglePay.php:117 includes/Gateways/Ideal.php:36
+#: includes/Gateways/Installment.php:89 includes/Gateways/Invoice.php:50
+#: includes/Gateways/Klarna.php:143 includes/Gateways/OpenBanking.php:63
+#: includes/Gateways/Paypal.php:54 includes/Gateways/PostFinanceCard.php:35
+#: includes/Gateways/PostFinanceEfinance.php:35
+#: includes/Gateways/Prepayment.php:39 includes/Gateways/Przelewy24.php:36
+#: includes/Gateways/Twint.php:35 includes/Gateways/WeChatPay.php:36
+#: includes/Gateways/Wero.php:37
msgid "Enable/Disable"
msgstr "Aktivieren/Deaktivieren"
-#: includes/gateways/Alipay.php:35
+#: includes/Gateways/Alipay.php:38
msgid "Enable Unzer Alipay"
msgstr "Unzer Alipay aktivieren"
-#: includes/gateways/Alipay.php:41 includes/gateways/ApplePayV2.php:67
-#: includes/gateways/Bancontact.php:41 includes/gateways/Card.php:77
-#: includes/gateways/DirectDebit.php:92
-#: includes/gateways/DirectDebitSecured.php:85 includes/gateways/Eps.php:42
-#: includes/gateways/Giropay.php:42 includes/gateways/GooglePay.php:101
-#: includes/gateways/Ideal.php:41 includes/gateways/Installment.php:90
-#: includes/gateways/Invoice.php:54 includes/gateways/Klarna.php:147
-#: includes/gateways/OpenBanking.php:72 includes/gateways/Paypal.php:58
-#: includes/gateways/Pis.php:39 includes/gateways/PostFinanceCard.php:39
-#: includes/gateways/PostFinanceEfinance.php:39
-#: includes/gateways/Prepayment.php:42 includes/gateways/Przelewy24.php:41
-#: includes/gateways/Sofort.php:39 includes/gateways/Twint.php:39
-#: includes/gateways/WeChatPay.php:41 includes/gateways/Wero.php:39
+#: includes/Gateways/Alipay.php:44 includes/Gateways/ApplePayV2.php:76
+#: includes/Gateways/Bancontact.php:43 includes/Gateways/Card.php:80
+#: includes/Gateways/DirectDebit.php:95
+#: includes/Gateways/DirectDebitSecured.php:88 includes/Gateways/Eps.php:44
+#: includes/Gateways/GooglePay.php:124 includes/Gateways/Ideal.php:43
+#: includes/Gateways/Installment.php:96 includes/Gateways/Invoice.php:57
+#: includes/Gateways/Klarna.php:150 includes/Gateways/OpenBanking.php:70
+#: includes/Gateways/Paypal.php:61 includes/Gateways/PostFinanceCard.php:42
+#: includes/Gateways/PostFinanceEfinance.php:42
+#: includes/Gateways/Prepayment.php:46 includes/Gateways/Przelewy24.php:43
+#: includes/Gateways/Twint.php:42 includes/Gateways/WeChatPay.php:43
+#: includes/Gateways/Wero.php:44
msgid "Title"
msgstr "Titel"
-#: includes/gateways/Alipay.php:43 includes/gateways/ApplePayV2.php:69
-#: includes/gateways/Bancontact.php:43 includes/gateways/Card.php:79
-#: includes/gateways/DirectDebit.php:94
-#: includes/gateways/DirectDebitSecured.php:87 includes/gateways/Eps.php:44
-#: includes/gateways/Giropay.php:44 includes/gateways/GooglePay.php:103
-#: includes/gateways/Ideal.php:43 includes/gateways/Installment.php:92
-#: includes/gateways/Invoice.php:56 includes/gateways/Klarna.php:149
-#: includes/gateways/OpenBanking.php:74 includes/gateways/Paypal.php:60
-#: includes/gateways/Pis.php:41 includes/gateways/PostFinanceCard.php:41
-#: includes/gateways/PostFinanceEfinance.php:41
-#: includes/gateways/Prepayment.php:44 includes/gateways/Przelewy24.php:43
-#: includes/gateways/Sofort.php:41 includes/gateways/Twint.php:41
-#: includes/gateways/WeChatPay.php:43 includes/gateways/Wero.php:41
+#: includes/Gateways/Alipay.php:46 includes/Gateways/ApplePayV2.php:78
+#: includes/Gateways/Bancontact.php:45 includes/Gateways/Card.php:82
+#: includes/Gateways/DirectDebit.php:97
+#: includes/Gateways/DirectDebitSecured.php:90 includes/Gateways/Eps.php:46
+#: includes/Gateways/GooglePay.php:126 includes/Gateways/Ideal.php:45
+#: includes/Gateways/Installment.php:98 includes/Gateways/Invoice.php:59
+#: includes/Gateways/Klarna.php:152 includes/Gateways/OpenBanking.php:72
+#: includes/Gateways/Paypal.php:63 includes/Gateways/PostFinanceCard.php:44
+#: includes/Gateways/PostFinanceEfinance.php:44
+#: includes/Gateways/Prepayment.php:48 includes/Gateways/Przelewy24.php:45
+#: includes/Gateways/Twint.php:44 includes/Gateways/WeChatPay.php:45
+#: includes/Gateways/Wero.php:46
msgid "This controls the title which the user sees during checkout."
msgstr "Dies steuert den Titel, den der Kunde während des Zahlvorgangs sieht."
-#: includes/gateways/Alipay.php:44
+#: includes/Gateways/Alipay.php:47
msgid "Alipay"
msgstr "Alipay"
-#: includes/gateways/Alipay.php:47 includes/gateways/ApplePayV2.php:73
-#: includes/gateways/Bancontact.php:47 includes/gateways/Card.php:83
-#: includes/gateways/DirectDebit.php:98
-#: includes/gateways/DirectDebitSecured.php:91 includes/gateways/Eps.php:48
-#: includes/gateways/Giropay.php:48 includes/gateways/GooglePay.php:107
-#: includes/gateways/Ideal.php:47 includes/gateways/Installment.php:96
-#: includes/gateways/Invoice.php:60 includes/gateways/Klarna.php:153
-#: includes/gateways/OpenBanking.php:78 includes/gateways/Paypal.php:64
-#: includes/gateways/Pis.php:45 includes/gateways/PostFinanceCard.php:45
-#: includes/gateways/PostFinanceEfinance.php:45
-#: includes/gateways/Prepayment.php:48 includes/gateways/Przelewy24.php:47
-#: includes/gateways/Sofort.php:45 includes/gateways/Twint.php:45
-#: includes/gateways/WeChatPay.php:47 includes/gateways/Wero.php:45
+#: includes/Gateways/Alipay.php:50 includes/Gateways/ApplePayV2.php:82
+#: includes/Gateways/Bancontact.php:49 includes/Gateways/Card.php:86
+#: includes/Gateways/DirectDebit.php:101
+#: includes/Gateways/DirectDebitSecured.php:94 includes/Gateways/Eps.php:50
+#: includes/Gateways/GooglePay.php:130 includes/Gateways/Ideal.php:49
+#: includes/Gateways/Installment.php:102 includes/Gateways/Invoice.php:63
+#: includes/Gateways/Klarna.php:156 includes/Gateways/OpenBanking.php:76
+#: includes/Gateways/Paypal.php:67 includes/Gateways/PostFinanceCard.php:48
+#: includes/Gateways/PostFinanceEfinance.php:48
+#: includes/Gateways/Prepayment.php:52 includes/Gateways/Przelewy24.php:49
+#: includes/Gateways/Twint.php:48 includes/Gateways/WeChatPay.php:49
+#: includes/Gateways/Wero.php:50
msgid "Description"
msgstr "Beschreibung"
-#: includes/gateways/Alipay.php:49 includes/gateways/ApplePayV2.php:75
-#: includes/gateways/Bancontact.php:49 includes/gateways/Card.php:85
-#: includes/gateways/DirectDebit.php:100
-#: includes/gateways/DirectDebitSecured.php:93 includes/gateways/Eps.php:50
-#: includes/gateways/Giropay.php:50 includes/gateways/GooglePay.php:109
-#: includes/gateways/Ideal.php:49 includes/gateways/Installment.php:98
-#: includes/gateways/Invoice.php:62 includes/gateways/Klarna.php:155
-#: includes/gateways/OpenBanking.php:80 includes/gateways/Paypal.php:66
-#: includes/gateways/Pis.php:47 includes/gateways/PostFinanceCard.php:47
-#: includes/gateways/PostFinanceEfinance.php:47
-#: includes/gateways/Prepayment.php:50 includes/gateways/Przelewy24.php:49
-#: includes/gateways/Sofort.php:47 includes/gateways/Twint.php:47
-#: includes/gateways/WeChatPay.php:49 includes/gateways/Wero.php:47
+#: includes/Gateways/Alipay.php:52 includes/Gateways/ApplePayV2.php:84
+#: includes/Gateways/Bancontact.php:51 includes/Gateways/Card.php:88
+#: includes/Gateways/DirectDebit.php:103
+#: includes/Gateways/DirectDebitSecured.php:96 includes/Gateways/Eps.php:52
+#: includes/Gateways/GooglePay.php:132 includes/Gateways/Ideal.php:51
+#: includes/Gateways/Installment.php:104 includes/Gateways/Invoice.php:65
+#: includes/Gateways/Klarna.php:158 includes/Gateways/OpenBanking.php:78
+#: includes/Gateways/Paypal.php:69 includes/Gateways/PostFinanceCard.php:50
+#: includes/Gateways/PostFinanceEfinance.php:50
+#: includes/Gateways/Prepayment.php:54 includes/Gateways/Przelewy24.php:51
+#: includes/Gateways/Twint.php:50 includes/Gateways/WeChatPay.php:51
+#: includes/Gateways/Wero.php:52
msgid "This controls the description which the user sees during checkout."
msgstr ""
"Beschreibungstext, den Benutzer bei der Auswahl dieser Zahlungsart sehen."
-#: includes/gateways/ApplePayV2.php:61
+#: includes/Gateways/ApplePayV2.php:70
msgid "Enable Unzer Apple Pay"
msgstr "Aktivieren Sie Unzer Apple Pay"
-#: includes/gateways/ApplePayV2.php:70
+#: includes/Gateways/ApplePayV2.php:79
msgid "Apple Pay"
msgstr "Apple Pay"
-#: includes/gateways/ApplePayV2.php:79 includes/gateways/Card.php:89
-#: includes/gateways/GooglePay.php:113 includes/gateways/Paypal.php:70
+#: includes/Gateways/ApplePayV2.php:88 includes/Gateways/Card.php:92
+#: includes/Gateways/GooglePay.php:136 includes/Gateways/Paypal.php:73
msgid "Charge or Authorize"
msgstr "Belasten oder autorisieren"
-#: includes/gateways/ApplePayV2.php:82 includes/gateways/Card.php:92
-#: includes/gateways/GooglePay.php:116 includes/gateways/Paypal.php:73
+#: includes/Gateways/ApplePayV2.php:91 includes/Gateways/Card.php:95
+#: includes/Gateways/GooglePay.php:139 includes/Gateways/Paypal.php:76
msgid ""
"Choose \"authorize\", if you you want to charge the shopper at a later point "
"of time"
@@ -338,56 +268,56 @@ msgstr ""
"Wählen Sie \"autorisieren\", wenn Sie den Käufer zu einem späteren Zeitpunkt "
"belasten möchten"
-#: includes/gateways/ApplePayV2.php:84 includes/gateways/Card.php:94
-#: includes/gateways/GooglePay.php:118 includes/gateways/Paypal.php:75
+#: includes/Gateways/ApplePayV2.php:93 includes/Gateways/Card.php:97
+#: includes/Gateways/GooglePay.php:141 includes/Gateways/Paypal.php:78
msgid "authorize"
msgstr "Autorisieren"
-#: includes/gateways/ApplePayV2.php:85 includes/gateways/Card.php:95
-#: includes/gateways/GooglePay.php:119 includes/gateways/Paypal.php:76
+#: includes/Gateways/ApplePayV2.php:94 includes/Gateways/Card.php:98
+#: includes/Gateways/GooglePay.php:142 includes/Gateways/Paypal.php:79
msgid "charge"
msgstr "Belastung"
-#: includes/gateways/Bancontact.php:35
+#: includes/Gateways/Bancontact.php:37
msgid "Enable Unzer Bancontact"
msgstr "Unzer Bancontact aktivieren"
-#: includes/gateways/Bancontact.php:44
+#: includes/Gateways/Bancontact.php:46
msgid "Bancontact"
msgstr "Bancontact"
-#: includes/gateways/Card.php:71
+#: includes/Gateways/Card.php:74
msgid "Enable Unzer Card Payments"
msgstr "Unzer-Kartenzahlungen aktivieren"
-#: includes/gateways/Card.php:80
+#: includes/Gateways/Card.php:83
msgid "Credit Card"
msgstr "Kreditkarte"
-#: includes/gateways/Card.php:100
+#: includes/Gateways/Card.php:103
msgid "Save card for registered customers"
msgstr "Kreditkarten für registrierte Kunden speichern"
-#: includes/gateways/Card.php:101 includes/gateways/Card.php:112
-#: includes/gateways/DirectDebit.php:105 includes/gateways/Paypal.php:82
+#: includes/Gateways/Card.php:104 includes/Gateways/Card.php:115
+#: includes/Gateways/DirectDebit.php:108 includes/Gateways/Paypal.php:85
msgid " "
msgstr " "
-#: includes/gateways/Card.php:106 includes/gateways/Card.php:117
-#: includes/gateways/DirectDebit.php:110 includes/gateways/Paypal.php:87
+#: includes/Gateways/Card.php:109 includes/Gateways/Card.php:120
+#: includes/Gateways/DirectDebit.php:113 includes/Gateways/Paypal.php:90
msgid "No"
msgstr "Nein"
-#: includes/gateways/Card.php:107 includes/gateways/Card.php:118
-#: includes/gateways/DirectDebit.php:111 includes/gateways/Paypal.php:88
+#: includes/Gateways/Card.php:110 includes/Gateways/Card.php:121
+#: includes/Gateways/DirectDebit.php:114 includes/Gateways/Paypal.php:91
msgid "Yes"
msgstr "Ja"
-#: includes/gateways/Card.php:111
+#: includes/Gateways/Card.php:114
msgid "Offer Click To Pay"
msgstr "Click To Pay anbieten"
-#: includes/gateways/DirectDebit.php:37
+#: includes/Gateways/DirectDebit.php:40
msgid ""
"By signing this mandate form, you authorize %merchant% to send instructions "
"to your bank to debit your account and your bank to debit your account in "
@@ -416,50 +346,50 @@ msgstr ""
"oder Dritten auf Anforderung meinen Namen, Adresse und Geburtsdatum "
"vollständig mitzuteilen."
-#: includes/gateways/DirectDebit.php:45
+#: includes/Gateways/DirectDebit.php:48
msgid "Unzer SEPA Direct Debit"
msgstr "Unzer SEPA Lastschrift"
-#: includes/gateways/DirectDebit.php:86
+#: includes/Gateways/DirectDebit.php:89
msgid "Enable Unzer SEPA Direct Debit Payments"
msgstr "Unzer SEPA Lastschrift Zahlungen aktivieren"
-#: includes/gateways/DirectDebit.php:95
+#: includes/Gateways/DirectDebit.php:98
msgid "SEPA Direct Debit"
msgstr "SEPA Lastschrift"
-#: includes/gateways/DirectDebit.php:104
+#: includes/Gateways/DirectDebit.php:107
msgid "Save bank details for registered customers"
msgstr "Bankverbindung für registrierte Kunden speichern"
-#: includes/gateways/DirectDebitSecured.php:37
+#: includes/Gateways/DirectDebitSecured.php:41
msgid "Unzer Direct Debit"
msgstr "Unzer Lastschrift"
-#: includes/gateways/DirectDebitSecured.php:79
+#: includes/Gateways/DirectDebitSecured.php:82
msgid "Enable Unzer Direct Debit Payments"
msgstr "Unzer Lastschrift Zahlungen aktivieren"
-#: includes/gateways/DirectDebitSecured.php:88
+#: includes/Gateways/DirectDebitSecured.php:91
msgid "Direct Debit"
msgstr "Lastschrift"
-#: includes/gateways/DirectDebitSecured.php:97
-#: includes/gateways/Installment.php:102 includes/gateways/Invoice.php:66
+#: includes/Gateways/DirectDebitSecured.php:103
+#: includes/Gateways/Installment.php:111 includes/Gateways/Invoice.php:72
msgid "Public Key EUR/B2C"
msgstr "Öffentlicher Schlüssel EUR/B2C"
-#: includes/gateways/DirectDebitSecured.php:103
-#: includes/gateways/Installment.php:108 includes/gateways/Invoice.php:72
+#: includes/Gateways/DirectDebitSecured.php:109
+#: includes/Gateways/Installment.php:117 includes/Gateways/Invoice.php:78
msgid "Private Key EUR/B2C"
msgstr "Privater Schlüssel EUR/B2C"
-#: includes/gateways/DirectDebitSecured.php:109
-#: includes/gateways/Installment.php:114 includes/gateways/Invoice.php:78
+#: includes/Gateways/DirectDebitSecured.php:115
+#: includes/Gateways/Installment.php:123 includes/Gateways/Invoice.php:84
msgid "Key Check EUR/B2C"
msgstr "Schlüsselprüfung EUR/B2C"
-#: includes/gateways/DirectDebitSecured.php:174
+#: includes/Gateways/DirectDebitSecured.php:184
#, php-format
msgid ""
"An amount of %1$s will be deducted from your account using the descriptor "
@@ -468,127 +398,119 @@ msgstr ""
"Der Betrag in Höhe von %s wird mit der Referenz '%s' von Ihrem Konto in "
"Übereinstimmung mit dem SEPA-Mandat eingezogen werden"
-#: includes/gateways/Eps.php:36
+#: includes/Gateways/Eps.php:38
msgid "Enable Unzer EPS"
msgstr "Unzer EPS aktivieren"
-#: includes/gateways/Eps.php:45
+#: includes/Gateways/Eps.php:47
msgid "EPS"
msgstr "EPS"
-#: includes/gateways/Giropay.php:36
-msgid "Enable Unzer Giropay"
-msgstr "Unzer Giropay aktivieren"
-
-#: includes/gateways/Giropay.php:45
-msgid "Giropay"
-msgstr "Giropay"
-
-#: includes/gateways/GooglePay.php:95
+#: includes/Gateways/GooglePay.php:118
msgid "Enable Unzer Google Pay"
msgstr "Unzer Google Pay aktivieren"
-#: includes/gateways/GooglePay.php:104
+#: includes/Gateways/GooglePay.php:127
msgid "Google Pay"
msgstr "Google Pay"
-#: includes/gateways/GooglePay.php:124
+#: includes/Gateways/GooglePay.php:147
msgid "Gateway Merchant ID"
msgstr "Gateway Merchant ID"
-#: includes/gateways/GooglePay.php:130
+#: includes/Gateways/GooglePay.php:153
msgid "Merchant ID"
msgstr "Merchant ID"
-#: includes/gateways/GooglePay.php:136
+#: includes/Gateways/GooglePay.php:159
msgid "Merchant Name"
msgstr "Merchant Name"
-#: includes/gateways/GooglePay.php:142
+#: includes/Gateways/GooglePay.php:165
msgid "Country Code"
msgstr "Länder-Code"
-#: includes/gateways/GooglePay.php:145
+#: includes/Gateways/GooglePay.php:168
msgid "Country code of the acquirer"
msgstr "Land des Acquirers"
-#: includes/gateways/GooglePay.php:147
+#: includes/Gateways/GooglePay.php:170
msgid "DK (default)"
msgstr "DK (Standard)"
-#: includes/gateways/GooglePay.php:154
+#: includes/Gateways/GooglePay.php:177
msgid "Allow Credit Cards"
msgstr "Kreditkarten zulassen"
-#: includes/gateways/GooglePay.php:161
+#: includes/Gateways/GooglePay.php:184
msgid "Allow Prepaid Cards"
msgstr "Prepaid Karten zulassen"
-#: includes/gateways/GooglePay.php:168
+#: includes/Gateways/GooglePay.php:191
msgid "Allowed Card Networks"
msgstr "Zugelassene Kreditkarten-Anbieter"
-#: includes/gateways/GooglePay.php:179
+#: includes/Gateways/GooglePay.php:202
msgid "Button Color"
msgstr "Farbe des Buttons"
-#: includes/gateways/GooglePay.php:184
+#: includes/Gateways/GooglePay.php:207
msgid "Google's default"
msgstr "Standard"
-#: includes/gateways/GooglePay.php:185
+#: includes/Gateways/GooglePay.php:208
msgid "Black"
msgstr "Schwarz"
-#: includes/gateways/GooglePay.php:186
+#: includes/Gateways/GooglePay.php:209
msgid "White"
msgstr "Weiß"
-#: includes/gateways/GooglePay.php:191
+#: includes/Gateways/GooglePay.php:214
msgid "Button Size Mode"
msgstr "Größe des Buttons"
-#: includes/gateways/GooglePay.php:196
+#: includes/Gateways/GooglePay.php:219
msgid "Full Width"
msgstr "Volle Breite"
-#: includes/gateways/GooglePay.php:197
+#: includes/Gateways/GooglePay.php:220
msgid "Static"
msgstr "Statisch (kleiner)"
-#: includes/gateways/Ideal.php:35
+#: includes/Gateways/Ideal.php:37
msgid "Enable Unzer iDEAL"
msgstr "Aktivieren Sie Unzer iDEAL"
-#: includes/gateways/Ideal.php:44
+#: includes/Gateways/Ideal.php:46
msgid "iDEAL"
msgstr "iDEAL"
-#: includes/gateways/Installment.php:37
+#: includes/Gateways/Installment.php:40
msgid "Unzer Installment"
msgstr "Unzer Ratenzahlung"
-#: includes/gateways/Installment.php:84
+#: includes/Gateways/Installment.php:90
msgid "Enable Unzer Installment"
msgstr "Unzer Ratenkauf aktivieren"
-#: includes/gateways/Installment.php:93
+#: includes/Gateways/Installment.php:99
msgid "Installment"
msgstr "Ratenkauf"
-#: includes/gateways/Installment.php:121 includes/gateways/Invoice.php:104
+#: includes/Gateways/Installment.php:130 includes/Gateways/Invoice.php:110
msgid "Public Key CHF/B2C"
msgstr "Öffentlicher Schlüssel CHF/B2C"
-#: includes/gateways/Installment.php:127 includes/gateways/Invoice.php:110
+#: includes/Gateways/Installment.php:136 includes/Gateways/Invoice.php:116
msgid "Private Key CHF/B2C"
msgstr "Privater Schlüssel CHF/B2C"
-#: includes/gateways/Installment.php:133 includes/gateways/Invoice.php:116
+#: includes/Gateways/Installment.php:142 includes/Gateways/Invoice.php:122
msgid "Key Check CHF/B2C"
msgstr "Schlüsselprüfung CHF/B2C"
-#: includes/gateways/Installment.php:197
+#: includes/Gateways/Installment.php:210
#, php-format
msgid ""
"Payment details:
Holder: %s
IBAN: %s
BIC: %s
Inhaber: %s
IBAN: %s
BIC: %s
Deskriptor :
%s"
-#: includes/gateways/Invoice.php:38
+#: includes/Gateways/Invoice.php:41
msgid "Unzer Invoice"
msgstr "Unzer Rechnung"
-#: includes/gateways/Invoice.php:48
+#: includes/Gateways/Invoice.php:51
msgid "Enable Unzer Invoice"
msgstr "Unzer Rechnung aktivieren"
-#: includes/gateways/Invoice.php:57
+#: includes/Gateways/Invoice.php:60
msgid "Invoice"
msgstr "Rechnungskauf"
-#: includes/gateways/Invoice.php:85
+#: includes/Gateways/Invoice.php:91
msgid "Public Key EUR/B2B"
msgstr "Öffentlicher Schlüssel EUR/B2B"
-#: includes/gateways/Invoice.php:91
+#: includes/Gateways/Invoice.php:97
msgid "Private Key EUR/B2B"
msgstr "Privater Schlüssel EUR/B2B"
-#: includes/gateways/Invoice.php:97
+#: includes/Gateways/Invoice.php:103
msgid "Key Check EUR/B2B"
msgstr "Schlüsselprüfung EUR/B2B"
-#: includes/gateways/Invoice.php:123
+#: includes/Gateways/Invoice.php:129
msgid "Public Key CHF/B2B"
msgstr "Öffentlicher Schlüssel CHF/B2B"
-#: includes/gateways/Invoice.php:129
+#: includes/Gateways/Invoice.php:135
msgid "Private Key CHF/B2B"
msgstr "Privater Schlüssel CHF/B2B"
-#: includes/gateways/Invoice.php:135
+#: includes/Gateways/Invoice.php:141
msgid "Key Check CHF/B2B"
msgstr "Schlüsselprüfung CHF/B2B"
-#: includes/gateways/Invoice.php:158
-msgid "Type of company"
-msgstr "Art des Unternehmens"
-
-#: includes/gateways/Invoice.php:161
-msgid "Association"
-msgstr "Gesellschaft"
-
-#: includes/gateways/Invoice.php:162
-msgid "Authority"
-msgstr "Behörde"
-
-#: includes/gateways/Invoice.php:163
-msgid "Company"
-msgstr "Firma"
-
-#: includes/gateways/Invoice.php:164
-msgid "Sole"
-msgstr "Einzelunternehmen"
-
-#: includes/gateways/Invoice.php:165
-msgid "Other"
-msgstr "Sonstiges"
-
-#: includes/gateways/Invoice.php:269 includes/gateways/Prepayment.php:89
+#: includes/Gateways/Invoice.php:250 includes/Gateways/Prepayment.php:93
#, php-format
msgid ""
"Please transfer the amount of %s to the following account:
Inhaber: %s
IBAN: %s
BIC: %s
Bitte verwenden Sie nur "
"diese Identifikationsnummer als Bezeichnung
%s"
-#: includes/gateways/Klarna.php:141
+#: includes/Gateways/Klarna.php:144
msgid "Enable Unzer Klarna"
msgstr "Unzer Klarna aktivieren"
-#: includes/gateways/Klarna.php:150
+#: includes/Gateways/Klarna.php:153
msgid "Klarna"
msgstr "Klarna"
-#: includes/gateways/OpenBanking.php:66
+#: includes/Gateways/OpenBanking.php:64
msgid "Enable Unzer Direct Bank Transfer"
msgstr "Unzer Direktüberweisung aktivieren"
-#: includes/gateways/OpenBanking.php:75
+#: includes/Gateways/OpenBanking.php:73
msgid "Direct Bank Transfer"
msgstr "Direktüberweisung"
-#: includes/gateways/Paypal.php:52
+#: includes/Gateways/Paypal.php:55
msgid "Enable Unzer PayPal"
msgstr "Aktivieren Sie Unzer PayPal"
-#: includes/gateways/Paypal.php:61
+#: includes/Gateways/Paypal.php:64
msgid "PayPal"
msgstr "PayPal"
-#: includes/gateways/Paypal.php:81
-msgid "Save PayPAl account for registered customers"
+#: includes/Gateways/Paypal.php:84
+#, fuzzy
+#| msgid "Save PayPAl account for registered customers"
+msgid "Save PayPal account for registered customers"
msgstr "PayPal-Konto für registrierte Kunden speichern"
-#: includes/gateways/Pis.php:33
-msgid "Enable Unzer Bank Transfer"
-msgstr "Unzer Banküberweisung aktivieren"
-
-#: includes/gateways/Pis.php:42
-msgid "Bank Transfer"
-msgstr "Banküberweisung"
-
-#: includes/gateways/PostFinanceCard.php:33
+#: includes/Gateways/PostFinanceCard.php:36
msgid "Enable Unzer Post Finance Card"
msgstr "Unzer Post Finance Card aktivieren"
-#: includes/gateways/PostFinanceCard.php:42
+#: includes/Gateways/PostFinanceCard.php:45
msgid "Post Finance Card"
msgstr "Post Finance Card"
-#: includes/gateways/PostFinanceEfinance.php:33
+#: includes/Gateways/PostFinanceEfinance.php:36
msgid "Enable Unzer Post Finance eFinance"
msgstr "Unzer Post Finance eFinance aktivieren"
-#: includes/gateways/PostFinanceEfinance.php:42
+#: includes/Gateways/PostFinanceEfinance.php:45
msgid "Post Finance eFinance"
msgstr "Post Finance eFinance"
-#: includes/gateways/Prepayment.php:36
+#: includes/Gateways/Prepayment.php:40
msgid "Enable Unzer Prepayment"
msgstr "Unzer Vorauszahlung aktivieren"
-#: includes/gateways/Prepayment.php:45
+#: includes/Gateways/Prepayment.php:49
msgid "Prepayment"
msgstr "Vorauszahlung"
-#: includes/gateways/Prepayment.php:54
+#: includes/Gateways/Prepayment.php:58
msgid "Order status"
msgstr "Bestellstatus"
-#: includes/gateways/Prepayment.php:57
+#: includes/Gateways/Prepayment.php:61
msgid "This status is assigned to all orders created with this payment method"
msgstr ""
"Dieser Status wird allen Bestellungen zugewiesen, die mit dieser "
"Zahlungsmethode erstellt werden"
-#: includes/gateways/Przelewy24.php:35
+#: includes/Gateways/Prepayment.php:62 includes/Main.php:302
+#: includes/Main.php:312
+msgid "[Use WooC default status]"
+msgstr "[WooC-Standardstatus verwenden]"
+
+#: includes/Gateways/Przelewy24.php:37
msgid "Enable Unzer Przelewy24"
msgstr "Unzer Przelewy24 aktivieren"
-#: includes/gateways/Przelewy24.php:44
+#: includes/Gateways/Przelewy24.php:46
msgid "Przelewy24"
msgstr "Przelewy24"
-#: includes/gateways/Sofort.php:33
-msgid "Enable Unzer Sofort"
-msgstr "Unzer Sofort Aktivieren"
-
-#: includes/gateways/Sofort.php:42
-msgid "Sofort"
-msgstr "Sofort"
-
-#: includes/gateways/Twint.php:33
+#: includes/Gateways/Twint.php:36
msgid "Enable Unzer TWINT"
msgstr "Unzer TWINT aktivieren"
-#: includes/gateways/Twint.php:42
+#: includes/Gateways/Twint.php:45
msgid "TWINT"
msgstr "TWINT"
-#: includes/gateways/WeChatPay.php:35
+#: includes/Gateways/WeChatPay.php:37
msgid "Enable Unzer WeChat Pay"
msgstr "Aktivieren Sie Unzer WeChat Pay"
-#: includes/gateways/WeChatPay.php:44
+#: includes/Gateways/WeChatPay.php:46
msgid "WeChat Pay"
msgstr "WeChat Bezahlen"
-#: includes/gateways/Wero.php:33
+#: includes/Gateways/Wero.php:38
msgid "Enable Unzer Wero"
msgstr "Unzer Wero aktivieren"
-#: includes/gateways/Wero.php:42
+#: includes/Gateways/Wero.php:47
msgid "Wero"
msgstr "Wero"
-#: includes/services/DashboardService.php:32
+#: includes/Main.php:154 includes/Main.php:187
+msgid "Chargeback"
+msgstr "Chargeback"
+
+#: includes/Main.php:164 includes/Main.php:188
+msgid "Ready to Capture"
+msgstr "Bereit zum Zahlungseinzug"
+
+#: includes/Main.php:174 includes/Main.php:189
+msgid "Waiting for payment"
+msgstr "Warten auf Zahlung"
+
+#: includes/Main.php:259
+msgid "Unzer Transactions"
+msgstr "Unzer-Transaktionen"
+
+#: includes/Main.php:263
+msgid "Unzer API settings"
+msgstr "Unzer API-Einstellungen"
+
+#: includes/Main.php:282
+msgid "Public Key"
+msgstr "Öffentlicher Schlüssel"
+
+#: includes/Main.php:290
+msgid "Private Key"
+msgstr "Privater Schlüssel"
+
+#: includes/Main.php:298
+msgid "Order status for authorized payments"
+msgstr "Auftragsstatus für Aufträge mit autorisierter Zahlung"
+
+#: includes/Main.php:301
+msgid "This status is assigned for orders, that are authorized"
+msgstr "Dieser Status wird für autorisierte Aufträge vergeben"
+
+#: includes/Main.php:308
+msgid "Order status for captured payments"
+msgstr "Auftragsstatus für Aufträge mit eingezogener Zahlung"
+
+#: includes/Main.php:311
+msgid "This status is assigned for orders, that are captured"
+msgstr ""
+"Dieser Status wird für Aufträge vergeben, deren Zahlung eingezogen wurde"
+
+#: includes/Main.php:318
+msgid "Order status for chargebacks"
+msgstr "Auftragsstatus für Aufträge mit Chargeback"
+
+#: includes/Main.php:321
+msgid "This status is assigned for orders with chargebacks"
+msgstr ""
+"Dieser Status wird für Aufträge vergeben, bei denen ein Chargeback "
+"stattgefunden hat"
+
+#: includes/Main.php:322
+msgid "[No status change]"
+msgstr "[Status nicht ändern]"
+
+#: includes/Services/DashboardService.php:32
#, php-format
msgid ""
"A chargeback has been received. Please check the payment details for order %s"
@@ -786,19 +734,19 @@ msgstr ""
"Es hat ein Chargeback bei Bestellung %s stattgefunden. Bitte überprüfen Sie "
"diesen Fall."
-#: includes/services/DashboardService.php:35
+#: includes/Services/DashboardService.php:35
msgid "Could not create apple-developer-merchantid-domain-association file"
msgstr "DIe Apple Domain Datei konnte nicht erstellt werden"
-#: includes/services/DashboardService.php:40
+#: includes/Services/DashboardService.php:40
msgid "Dismiss this notification"
msgstr "Ausblenden"
-#: includes/services/OrderService.php:348
+#: includes/Services/OrderService.php:288
msgid "Payment complete event failed."
msgstr "Abschluss der Zahlung ist fehlgeschlagen."
-#: includes/services/PaymentService.php:151
+#: includes/Services/PaymentService.php:166
msgid ""
"Installment payment is only available for shipping and billing address with "
"the same name"
@@ -806,48 +754,43 @@ msgstr ""
"Ratenzahlung ist nur möglich, wenn Liefer- und Rechnungsadresse denselben "
"Namen haben"
-#: includes/services/PaymentService.php:191
+#: includes/Services/PaymentService.php:206
msgid "Unzer Payment ID: "
msgstr "Unzer Payment ID: "
-#: includes/services/PaymentService.php:304
+#: includes/Services/PaymentService.php:319
#, php-format
msgid "Unable to do refund: Maximum amount for single refund is %s."
msgstr ""
"Erstattung nicht möglich: Maximaler Betrag für eine einzelne Erstattung ist "
"%s."
-#: includes/services/PaymentService.php:305
+#: includes/Services/PaymentService.php:320
#, php-format
msgid "However, you may refund in up to %s smaller chunks."
msgstr "Es ist jedoch möglich bis zu %s einzelne Erstattungen vorzunehmen."
-#: includes/services/PaymentService.php:306
+#: includes/Services/PaymentService.php:321
msgid "Original error message: "
msgstr "Ursprüngliche Fehlermeldung: "
-#: includes/services/PaymentService.php:335
+#: includes/Services/PaymentService.php:350
msgid "Refund not possible"
msgstr "Rückerstattung nicht möglich"
-#: includes/services/PaymentService.php:340
-msgid "Reversals prior to capturing are only allowed for the full amount"
-msgstr ""
-"Stornierungen vor Zahlungseinzug sind nur in Höhe des vollen Betrags möglich"
-
-#: includes/services/PaymentService.php:345
+#: includes/Services/PaymentService.php:357
msgid "Reversal not possible"
msgstr "Stornierung nicht möglich"
-#: includes/traits/SavePaymentInstrumentTrait.php:24
+#: includes/Traits/SavePaymentInstrumentTrait.php:24
msgid "Save this for my next purchase"
msgstr "Für meinen nächsten Einkauf speichern"
-#: includes/traits/SavePaymentInstrumentTrait.php:38
+#: includes/Traits/SavePaymentInstrumentTrait.php:38
msgid "Use another one"
msgstr "Andere"
-#: unzer-payments.php:53
+#: unzer-payments.php:62
msgid "Unzer requires WooCommerce to be installed and active."
msgstr "WooCommerce muss installiert und aktiv sein."
@@ -867,6 +810,68 @@ msgstr "Unzer"
msgid "https://www.unzer.com"
msgstr "https://www.unzer.com"
+#~ msgid "Payment Instructions"
+#~ msgstr "Zahlungsanweisungen"
+
+#~ msgid "Detailed Transactions"
+#~ msgstr "Detaillierte Transaktionen"
+
+#~ msgid "Show Debug Information"
+#~ msgstr "Debug-Informationen anzeigen"
+
+#~ msgid "Total amount"
+#~ msgstr "Gesamtbetrag"
+
+#~ msgid "Charged amount"
+#~ msgstr "Eingezogener Betrag"
+
+#~ msgid "Please enter your date of birth"
+#~ msgstr "Bitte geben Sie Ihr Geburtsdatum ein"
+
+#~ msgid "Please enter your company type"
+#~ msgstr "Bitte geben Sie Ihren Unternehmenstyp ein"
+
+#~ msgid "Enable Unzer Giropay"
+#~ msgstr "Unzer Giropay aktivieren"
+
+#~ msgid "Giropay"
+#~ msgstr "Giropay"
+
+#~ msgid "Type of company"
+#~ msgstr "Art des Unternehmens"
+
+#~ msgid "Association"
+#~ msgstr "Gesellschaft"
+
+#~ msgid "Authority"
+#~ msgstr "Behörde"
+
+#~ msgid "Company"
+#~ msgstr "Firma"
+
+#~ msgid "Sole"
+#~ msgstr "Einzelunternehmen"
+
+#~ msgid "Other"
+#~ msgstr "Sonstiges"
+
+#~ msgid "Enable Unzer Bank Transfer"
+#~ msgstr "Unzer Banküberweisung aktivieren"
+
+#~ msgid "Bank Transfer"
+#~ msgstr "Banküberweisung"
+
+#~ msgid "Enable Unzer Sofort"
+#~ msgstr "Unzer Sofort Aktivieren"
+
+#~ msgid "Sofort"
+#~ msgstr "Sofort"
+
+#~ msgid "Reversals prior to capturing are only allowed for the full amount"
+#~ msgstr ""
+#~ "Stornierungen vor Zahlungseinzug sind nur in Höhe des vollen Betrags "
+#~ "möglich"
+
#~ msgid "Apple Pay certificate settings"
#~ msgstr "Einstellungen für Apple Pay-Zertifikate"
diff --git a/languages/unzer-payments-de_DE_formal.mo b/languages/unzer-payments-de_DE_formal.mo
index 6a608a7..e102abf 100644
Binary files a/languages/unzer-payments-de_DE_formal.mo and b/languages/unzer-payments-de_DE_formal.mo differ
diff --git a/languages/unzer-payments-de_DE_formal.po b/languages/unzer-payments-de_DE_formal.po
index 5438f59..3ae303d 100644
--- a/languages/unzer-payments-de_DE_formal.po
+++ b/languages/unzer-payments-de_DE_formal.po
@@ -697,7 +697,7 @@ msgid "PayPal"
msgstr "PayPal"
#: includes/gateways/Paypal.php:84
-msgid "Save PayPAl account for registered customers"
+msgid "Save PayPal account for registered customers"
msgstr "PayPal-Konto für registrierte Kunden speichern"
#: includes/gateways/Pis.php:35
diff --git a/package.json b/package.json
index a7021cf..843ce6c 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "unzer-payments",
- "version": "2.0.0",
+ "version": "2.1.0",
"description": "",
"main": "index.js",
"scripts": {
diff --git a/readme.txt b/readme.txt
index 790042b..68caac5 100755
--- a/readme.txt
+++ b/readme.txt
@@ -3,7 +3,7 @@ Contributors: Unzer
Tags: payments, woocommerce
Requires at least: 4.5
Tested up to: 6.9
-Stable tag: 2.0.1
+Stable tag: 2.1.0
License: Apache-2.0
License URI: http://www.apache.org/licenses/LICENSE-2.0
Author URI: https://unzer.com
@@ -13,8 +13,7 @@ Use Unzer plugin for WooCommerce to provide an easy-to-install and use payment g
## Description ##
-* Version 2.0.0 is a breaking change - remember to test and create backup before updating your LIVE environment.
-* Migration from WooCommerce Classic Checkout to Checkout Block will follow with version 2.1.0
+* Version 2.0.0 was a breaking change - remember to test and create backup before updating your LIVE environment.
* Easily accept digital payments in your online store with Unzer Plugins.
* Unzer Payments is a 3rd party payment gateway plugin, https://docs.unzer.com/plugins/woocommerce and https://unzer.com/
* Unzer Payments can use external JavaScripts for certain payment methods, Apple Pay https://applepay.cdn-apple.com/jsapi/v1/apple-pay-sdk.js, Google Pay https://pay.google.com/gp/p/js/pay.js, Unzer paylater payment methods https://h.online-metrix.net/fp/tags.js.
@@ -60,6 +59,17 @@ Unzer is one of the leading payment companies in Europe. Over 70,000 retailers t
## Changelog ##
+# 2.1.0 #
+### This is a major release - remember to test and create backup before updating your LIVE environment.
+* New: Block code is now fully supported
+* New: One key pair logic implemented
+* New: Payment method list for new installs, has new design
+* New: Wero is set to direct charge for better support from external payment systems
+* Fix: Customer saved payment methods can be deleted
+* Fix: Apple Pay is now supported in non-Safari browsers
+* Fix: Apple Pay did not always return to order page
+* Fix: Typos, UI improvements etc.
+
# 2.0.1 #
* Bugfix dependency Germanized plugin
@@ -186,4 +196,3 @@ Unzer is one of the leading payment companies in Europe. Over 70,000 retailers t
# 1.0.0 #
* Release
-
diff --git a/unzer-payments.php b/unzer-payments.php
index e09f857..3a9df8f 100755
--- a/unzer-payments.php
+++ b/unzer-payments.php
@@ -5,7 +5,7 @@
* Description: Official Unzer Plugin
* Author: Unzer
* Author URI: https://www.unzer.com
- * Version: 2.0.1
+ * Version: 2.1.0
* License: Apache-2.0
* Requires at least: 4.5
* Tested up to: 6.9
@@ -21,7 +21,7 @@
/**
* Required minimums and constants
*/
-define( 'UNZER_VERSION', '2.0.1' );
+define( 'UNZER_VERSION', '2.1.0' );
define( 'UNZER_PLUGIN_TYPE_STRING', 'Unzer Payments' );
define( 'UNZER_PLUGIN_URL', untrailingslashit( plugins_url( basename( plugin_dir_path( __FILE__ ) ), basename( __FILE__ ) ) ) );
define( 'UNZER_PLUGIN_PATH', __DIR__ . '/' );
@@ -43,6 +43,15 @@ function () {
}
);
+add_action(
+ 'before_woocommerce_init',
+ function () {
+ if ( class_exists( '\Automattic\WooCommerce\Utilities\FeaturesUtil' ) ) {
+ \Automattic\WooCommerce\Utilities\FeaturesUtil::declare_compatibility( 'cart_checkout_blocks', __FILE__, true );
+ }
+ }
+);
+
add_action(
'plugins_loaded',
function () {
@@ -80,4 +89,3 @@ function ( $class ) {
$unzer->init();
}
);
-