summaryrefslogtreecommitdiff
path: root/views
diff options
context:
space:
mode:
authorDaniel Schmitzer <noreply@maennchen1.de>2024-08-22 08:29:52 +0000
committerDaniel Schmitzer <noreply@maennchen1.de>2024-08-22 08:29:52 +0000
commit523aa968834490bb881ec56a4085370c5d6d4cdc (patch)
tree31a7118dc0d9b18ae867635155658aa22a5eac58 /views
parentba1c711c28ea40dae2dc8e8cb0ecc9684d13b71b (diff)
- Neues Klarna Modul rein
git-svn-id: https://[internal]/wordpress/plugins/wpsg4@8426 0d5edaf7-2b12-4e95-93f4-047927463d4b
Diffstat (limited to 'views')
-rw-r--r--views/mods/mod_klarna/gfx/klarna.svg1
-rw-r--r--views/mods/mod_klarna/gfx/klarna_rechnung.pngbin0 -> 11288 bytes
-rw-r--r--views/mods/mod_klarna/gfx/logo_100x25.pngbin0 -> 2135 bytes
-rw-r--r--views/mods/mod_klarna/order_done.phtml42
-rw-r--r--views/mods/mod_klarna/order_view_afterpayment.phtml31
-rw-r--r--views/mods/mod_klarna/pay.phtml114
-rw-r--r--views/mods/mod_klarna/settings_edit.phtml58
7 files changed, 246 insertions, 0 deletions
diff --git a/views/mods/mod_klarna/gfx/klarna.svg b/views/mods/mod_klarna/gfx/klarna.svg
new file mode 100644
index 0000000..e0ceb03
--- /dev/null
+++ b/views/mods/mod_klarna/gfx/klarna.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="100" height="40.4494" viewBox="0 0 100 40.4494"><defs><style>.cls-1{fill:#ffb3c7;}</style></defs><g id="Lager_2" data-name="Lager 2"><g id="Layer_1" data-name="Layer 1"><rect class="cls-1" width="100" height="40.4494" rx="11.7384"/><path d="M80.0772,17.7235a6.194,6.194,0,1,0,0,10.2373v.75h3.5145V16.9727H80.0772Zm-3.1964,8.1388a3.0243,3.0243,0,1,1,3.1849-3.02A3.1059,3.1059,0,0,1,76.8808,25.8623Z"/><rect x="28.2027" y="11.7416" width="3.678" height="16.9694"/><path d="M64.1542,16.6569a4.2694,4.2694,0,0,0-3.62,1.6383V16.9733h-3.5V28.711h3.5421V22.5424a2.4754,2.4754,0,0,1,2.6383-2.6591c1.5447,0,2.4325.9228,2.4325,2.6348V28.711h3.5107V21.2464C69.1577,18.5146,66.9857,16.6569,64.1542,16.6569Z"/><path d="M43,17.7235a6.194,6.194,0,1,0,0,10.2373v.75h3.5145V16.9727H43Zm-3.1965,8.1388a3.0243,3.0243,0,1,1,3.1845-3.02A3.1058,3.1058,0,0,1,39.8034,25.8623Z"/><path d="M51.9513,18.5017V16.9728H48.353V28.7111h3.606v-5.48c0-1.8491,2.0042-2.843,3.3949-2.843.014,0,.0276.0014.0417.0015V16.9735A4.3821,4.3821,0,0,0,51.9513,18.5017Z"/><path d="M87.323,24.5476a2.2059,2.2059,0,1,0,2.206,2.2059A2.2057,2.2057,0,0,0,87.323,24.5476Z"/><path d="M25.6675,11.7384H21.8558a9.7488,9.7488,0,0,1-3.9412,7.8678l-1.51,1.131,5.8513,7.9792h4.8106l-5.3837-7.342A13.5049,13.5049,0,0,0,25.6675,11.7384Z"/><rect x="12.1204" y="11.7384" width="3.8185" height="16.9773"/></g></g></svg> \ No newline at end of file
diff --git a/views/mods/mod_klarna/gfx/klarna_rechnung.png b/views/mods/mod_klarna/gfx/klarna_rechnung.png
new file mode 100644
index 0000000..70f3963
--- /dev/null
+++ b/views/mods/mod_klarna/gfx/klarna_rechnung.png
Binary files differ
diff --git a/views/mods/mod_klarna/gfx/logo_100x25.png b/views/mods/mod_klarna/gfx/logo_100x25.png
new file mode 100644
index 0000000..d3a9476
--- /dev/null
+++ b/views/mods/mod_klarna/gfx/logo_100x25.png
Binary files differ
diff --git a/views/mods/mod_klarna/order_done.phtml b/views/mods/mod_klarna/order_done.phtml
new file mode 100644
index 0000000..7385448
--- /dev/null
+++ b/views/mods/mod_klarna/order_done.phtml
@@ -0,0 +1,42 @@
+<?php
+
+ declare(strict_types=1);
+
+ /**
+ * @author: daniel
+ * @date: 04.03.24
+ * @time: 13:39
+ */
+
+ namespace wpsgKlarna;
+
+ $view = $this->view['wpsg_mod_klarna'];
+
+?>
+
+<div class="order_done_wpsg_mod_klarna <?php echo ($view['state']??''); ?>">
+
+ <?php if (($view['state']??'') === 'PAYED_DONE') { ?>
+
+ <p><?php echo __('Betrag wurde mit Klarna bezahlt.', 'wpsgKlarna'); ?></p>
+
+ <?php } else if (($view['state']??'') === 'PAYED') { ?>
+
+ <p><?php echo __('Betrag wurde bereits mit Klarna bezahlt.', 'wpsgKlarna'); ?></p>
+
+ <?php } else if (($view['state']??'') === 'TOPAY') { ?>
+
+ <div id="wpsg_mod_klarna_widget"></div>
+ <input type="button" class="button" id="klarna_payment_button" value="<?php echo __('Jetzt mit Klarna bezahlen.', 'wpsgKlarna'); ?>" />
+
+ <?php
+
+ $this->view['wpsg_mod_klarna']['button_id'] = 'klarna_payment_button';
+
+ echo $this->render(dirname(__FILE__).'/pay.phtml');
+
+ ?>
+
+ <?php } ?>
+
+</div>
diff --git a/views/mods/mod_klarna/order_view_afterpayment.phtml b/views/mods/mod_klarna/order_view_afterpayment.phtml
new file mode 100644
index 0000000..032bf7e
--- /dev/null
+++ b/views/mods/mod_klarna/order_view_afterpayment.phtml
@@ -0,0 +1,31 @@
+<?php
+
+ declare(strict_types=1);
+
+ /**
+ * @author: daniel
+ * @date: 04.03.24
+ * @time: 16:38
+ */
+
+ namespace wpsgKlarna;
+
+ $oOrder = \wpsg_order::getInstance(intval($this->view['data']['id']));
+
+ $client_token = $oOrder->getMeta('wpsg_mod_klarna_client_token', false, '');
+ $session_id = $oOrder->getMeta('wpsg_mod_klarna_session_id', false, '');
+ $authorization_token = $oOrder->getMeta('wpsg_mod_klarna_authorization_token', false, '');
+ $klarna_order_id = $oOrder->getMeta('wpsg_mod_klarna_order_id', false, '');
+ $capture_id = $oOrder->getMeta('wpsg_mod_klarna_capture_id', false, '');
+
+?>
+
+<br />
+
+<?php if ($client_token !== '') { echo wpsg_drawForm_Input('', __('Klarna ClientToken', 'wpsg'), $client_token, ['readonly' => true]); } ?>
+<?php if ($session_id !== '') { echo wpsg_drawForm_Input('', __('Klarna SessionID', 'wpsg'), $session_id, ['readonly' => true]); } ?>
+<?php if ($authorization_token !== '') { echo wpsg_drawForm_Input('', __('Klarna AuthorizationToken', 'wpsg'), $authorization_token, ['readonly' => true]); } ?>
+<?php if ($klarna_order_id !== '') { echo wpsg_drawForm_Input('', __('Klarna OrderId', 'wpsg'), $klarna_order_id, ['readonly' => true]); } ?>
+<?php if ($capture_id !== '') { echo wpsg_drawForm_Input('', __('Klarna CaptureId', 'wpsg'), $capture_id, ['readonly' => true]); } ?>
+
+
diff --git a/views/mods/mod_klarna/pay.phtml b/views/mods/mod_klarna/pay.phtml
new file mode 100644
index 0000000..79661d6
--- /dev/null
+++ b/views/mods/mod_klarna/pay.phtml
@@ -0,0 +1,114 @@
+<?php
+
+ declare(strict_types=1);
+
+ /**
+ * @author: daniel
+ * @date: 05.03.24
+ * @time: 07:20
+ */
+
+ namespace wpsgKlarna;
+
+ $view = $this->view['wpsg_mod_klarna'];
+
+ /** @var \wpsg_order $oOrder */
+ $oOrder = $view['oOrder'];
+
+ $authorize_arg = [
+ 'billing_address' => [
+ 'given_name' => $oOrder->getInvoiceFirstName(),
+ 'family_name' => $oOrder->getInvoiceName(),
+ 'email' => $oOrder->getCustomer()->getEMail(),
+ 'street_address' => $oOrder->getInvoiceStreet(),
+ 'postal_code' => $oOrder->getInvoiceZip(),
+ 'city' => $oOrder->getInvoiceCity(),
+ ]
+ ];
+
+?>
+
+<script>
+
+ window.klarnaAsyncCallback = () => {
+
+ const el_pppl_loading_blocker = document.getElementById('pppl_loading_blocker');
+
+ Klarna.Payments.init({
+ client_token: '<?php echo $view['client_token']; ?>'
+ });
+
+ Klarna.Payments.load({
+ container: '#wpsg_mod_klarna_widget'
+ }, {
+
+ }, function (res) {
+
+ console.log(res);
+
+ });
+
+ document.getElementById('<?php echo $view['button_id']; ?>').addEventListener('click', (event) => {
+
+ event.preventDefault();
+
+ if (el_pppl_loading_blocker) el_pppl_loading_blocker.style.display = 'block';
+
+ Klarna.Payments.authorize(
+ {}, {},
+ function(res) {
+
+ console.log(res);
+
+ if (res.authorization_token) {
+
+ try {
+
+ fetch('<?php echo $view['url_setAuthToken']; ?>', {
+ method: 'POST',
+ headers: {
+ "Content-Type": "application/json"
+ },
+ body: JSON.stringify({
+ 'authorization_token': res.authorization_token
+ })
+ }).then(response => {
+
+ return response.json();
+
+ }).then(data => {
+
+ if (data.success) {
+
+ location.href = data.href;
+
+ } else throw Error();
+
+ }).catch(e => {
+
+ if (el_pppl_loading_blocker) el_pppl_loading_blocker.style.display = 'none';
+
+ });
+
+ } catch (error) {
+
+ if (el_pppl_loading_blocker) el_pppl_loading_blocker.style.display = 'none';
+
+ }
+
+ } else {
+
+ if (el_pppl_loading_blocker) el_pppl_loading_blocker.style.display = 'none';
+
+ }
+
+ }
+ );
+
+ });
+
+ };
+
+</script>
+
+<script src="https://x.klarnacdn.net/kp/lib/v1/api.js" async></script>
diff --git a/views/mods/mod_klarna/settings_edit.phtml b/views/mods/mod_klarna/settings_edit.phtml
new file mode 100644
index 0000000..d622a10
--- /dev/null
+++ b/views/mods/mod_klarna/settings_edit.phtml
@@ -0,0 +1,58 @@
+<?php
+
+ declare(strict_types=1);
+
+ /**
+ * @author: daniel
+ * @date: 04.03.24
+ * @time: 11:56
+ */
+
+ namespace wpsgKlarna;
+
+?>
+
+<?php echo wpsg_drawForm_Checkbox('wpsg_mod_klarna_active', __('Zahlungsart für neue Bestellungen aktiv', 'wpsg'), $this->get_option('wpsg_mod_klarna_active'), ['help' => 'wpsg_mod_klarna_active']); ?>
+<?php echo wpsg_drawForm_Checkbox('wpsg_mod_klarna_admin_active', __('Zahlungsart nur für Admins aktiv', 'wpsgPayone'), $this->get_option('wpsg_mod_klarna_admin_active'), ['help' => 'wpsg_mod_klarna_admin_active']); ?>
+
+<?php echo wpsg_drawForm_Input('wpsg_mod_klarna_api_user', __('API Benutzername', 'wpsg'), $this->get_option('wpsg_mod_klarna_api_user'), ['help' => 'wpsg_mod_klarna_api_user']); ?>
+<?php echo wpsg_drawForm_Input('wpsg_mod_klarna_api_password', __('API Passwort', 'wpsg'), $this->get_option('wpsg_mod_klarna_api_password'), ['help' => 'wpsg_mod_klarna_api_password']); ?>
+
+<?php echo wpsg_drawForm_Checkbox('wpsg_mod_klarna_sandbox', __('Sandbox Modus', 'wpsg'), $this->get_option('wpsg_mod_klarna_sandbox'), ['help' => 'wpsg_mod_klarna_sandbox']); ?>
+
+<div id="wpsg_mod_klarna_sandbox_layer">
+ <?php echo wpsg_drawForm_Input('wpsg_mod_klarna_sandbox_user', __('(Sandbox) API Benutzername', 'wpsg'), $this->get_option('wpsg_mod_klarna_sandbox_user'), ['help' => 'wpsg_mod_klarna_sandbox_user']); ?>
+ <?php echo wpsg_drawForm_Input('wpsg_mod_klarna_sandbox_password', __('(Sandbox) API Passwort', 'wpsg'), $this->get_option('wpsg_mod_klarna_sandbox_password'), ['help' => 'wpsg_mod_klarna_sandbox_password']); ?>
+</div>
+
+<?php echo wpsg_drawForm_Checkbox('wpsg_mod_klarna_debug', __('API Anfragen im Bestellprotokoll protokollieren', 'wpsg'), $this->get_option('wpsg_mod_klarna_debug'), ['help' => 'wpsg_mod_klarna_debug']); ?>
+
+<br />
+
+<?php echo wpsg_drawForm_Checkbox('wpsg_mod_klarna_checkout', __('Zahlungen im Checkout vorauthorisieren', 'wpsg'), $this->get_option('wpsg_mod_klarna_checkout'), array('help' => 'wpsg_mod_klarna_checkout')); ?>
+
+<br />
+
+<script>
+
+ const el_wpsg_mod_klarna_sandbox = document.getElementById('wpsg_mod_klarna_sandbox');
+ const el_wpsg_mod_klarna_sandbox_layer = document.getElementById('wpsg_mod_klarna_sandbox_layer');
+
+ el_wpsg_mod_klarna_sandbox.addEventListener('change', (event) => {
+
+ if (event.target.checked) el_wpsg_mod_klarna_sandbox_layer.style.display = 'block';
+ else el_wpsg_mod_klarna_sandbox_layer.style.display = 'none';
+
+ });
+
+ el_wpsg_mod_klarna_sandbox.dispatchEvent(new Event('change'));
+
+
+</script>
+
+<br />
+
+<?php echo wpsg_drawForm_Input('wpsg_mod_klarna_fee', __('Gebühr', 'wpsg'), wpsg_ff($this->get_option('wpsg_mod_klarna_fee'), true), array('help' => 'wpsg_mod_klarna_fee','unit' => $this->get_option('wpsg_currency').' / %')); ?>
+<?php echo wpsg_drawForm_Select('wpsg_mod_klarna_tax_key', __('Mehrwertsteuersatz', 'wpsg'), wpsg_tax_groups(), $this->get_option('wpsg_mod_klarna_tax_key'), array('help' => 'wpsg_mod_klarna_tax_key')); ?>
+<?php echo wpsg_drawForm_Checkbox('wpsg_mod_klarna_notaxcountry', __('Keine MwSt. wenn Land steuerfrei', 'wpsg'), $this->get_option('wpsg_mod_klarna_notaxcountry'), array('help' => 'wpsg_mod_klarna_notaxcountry')); ?>
+<?php echo wpsg_drawForm_Textarea('wpsg_mod_klarna_hint', __('Hinweistext', 'wpsg'), $this->get_option('wpsg_mod_klarna_hint'), array('help' => 'wpsg_mod_klarna_hint')); ?>