summaryrefslogtreecommitdiff
path: root/views
diff options
context:
space:
mode:
authordaniel <noreply@maennchen1.de>2026-09-17 10:47:22 +0200
committerdaniel <noreply@maennchen1.de>2026-09-17 10:47:22 +0200
commitb6fa7e0ff9988363fbf300bc0a67e1bd7f52d4b7 (patch)
tree0f839f4ee286915e2a9737fbadfff63c77d63c59 /views
parent32c0b971707d90d4c2643b58a81170b8b5065fa9 (diff)
Mollie
Diffstat (limited to 'views')
-rw-r--r--views/mods/mod_mollie/gfx/mollie.svg4
-rw-r--r--views/mods/mod_mollie/order_done.phtml48
-rw-r--r--views/mods/mod_mollie/order_view_afterpayment.phtml26
-rw-r--r--views/mods/mod_mollie/settings_edit.phtml88
4 files changed, 166 insertions, 0 deletions
diff --git a/views/mods/mod_mollie/gfx/mollie.svg b/views/mods/mod_mollie/gfx/mollie.svg
new file mode 100644
index 0000000..a0c7e28
--- /dev/null
+++ b/views/mods/mod_mollie/gfx/mollie.svg
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="100" height="25" viewBox="0 0 100 25" role="img" aria-label="Mollie">
+ <rect x="0" y="0" width="100" height="25" rx="4" ry="4" fill="#ffffff" stroke="#d9dce3" stroke-width="1" />
+ <text x="50" y="17" fill="#0d1b3e" font-family="Helvetica, Arial, sans-serif" font-size="12" font-weight="bold" letter-spacing="0.3" text-anchor="middle">mollie</text>
+</svg>
diff --git a/views/mods/mod_mollie/order_done.phtml b/views/mods/mod_mollie/order_done.phtml
new file mode 100644
index 0000000..3e27bf2
--- /dev/null
+++ b/views/mods/mod_mollie/order_done.phtml
@@ -0,0 +1,48 @@
+<?php
+
+ /**
+ * Template für die Bestellabschlussseite mit Mollie
+ */
+
+ $mollie = $this->view['wpsg_mod_mollie'];
+
+?>
+<div class="wpsg_mod_mollie">
+
+ <?php if ($mollie['state'] === 'PAID') { ?>
+
+ <p><?php echo esc_html__('Ihre Zahlung ist bei uns eingegangen. Vielen Dank!', 'wpsg'); ?></p>
+
+ <?php } else if ($mollie['state'] === 'PENDING') { ?>
+
+ <p><?php echo esc_html__('Ihre Zahlung wird noch verarbeitet. Sobald die Bestätigung bei uns eingeht, erhalten Sie eine E-Mail.', 'wpsg'); ?></p>
+
+ <?php } else if ($mollie['state'] === 'TOPAY') { ?>
+
+ <p><?php echo wpsg_translate(esc_html__('Sie bezahlen Ihre Bestellung mit der Nummer #1# in Höhe von #2#.', 'wpsg'), esc_html($this->view['order']['onr']), wpsg_ff($mollie['amount'], $this->get_option('wpsg_currency'))); ?></p>
+
+ <p><a class="wpsg_button wpsg_mod_mollie_button" href="<?php echo esc_url($mollie['checkout_url']); ?>"><?php echo esc_html__('Jetzt bezahlen', 'wpsg'); ?></a></p>
+
+ <p><?php echo esc_html__('Sie werden in wenigen Sekunden automatisch zur Bezahlseite weitergeleitet.', 'wpsg'); ?></p>
+
+ <script type="text/javascript">/* <![CDATA[ */
+
+ window.setTimeout(function() {
+
+ window.location.href = '<?php echo wpsg_jsquoteescape($mollie['checkout_url']); ?>';
+
+ }, 3000);
+
+ /* ]]> */</script>
+
+ <?php } else { ?>
+
+ <p><?php echo esc_html__('Die Zahlung konnte nicht gestartet werden. Bitte wenden Sie sich an den Betreiber des Shops.', 'wpsg'); ?></p>
+
+ <?php if (wpsg_isSizedString($mollie['error']) && $this->get_option('wpsg_mod_mollie_debug') === '1') { ?>
+ <p class="wpsg_error"><?php echo esc_html($mollie['error']); ?></p>
+ <?php } ?>
+
+ <?php } ?>
+
+</div>
diff --git a/views/mods/mod_mollie/order_view_afterpayment.phtml b/views/mods/mod_mollie/order_view_afterpayment.phtml
new file mode 100644
index 0000000..71177ab
--- /dev/null
+++ b/views/mods/mod_mollie/order_view_afterpayment.phtml
@@ -0,0 +1,26 @@
+<?php
+
+ /**
+ * Zeigt die Mollie Daten einer Bestellung in der Bestellansicht im Backend
+ */
+
+ $oOrder = $this->view['wpsg_mod_mollie']['oOrder'];
+
+ $payment_id = $oOrder->getMeta('wpsg_mod_mollie_payment_id', false, '');
+ $payment_status = $oOrder->getMeta('wpsg_mod_mollie_status', false, '');
+ $payment_method = $oOrder->getMeta('wpsg_mod_mollie_method', false, '');
+
+?>
+<br />
+
+<?php if (wpsg_isSizedString($payment_id)) { ?>
+<?php echo wpsg_drawForm_Input('', __('Mollie Zahlungs ID', 'wpsg'), $payment_id, ['readonly' => true]); ?>
+<?php } ?>
+
+<?php if (wpsg_isSizedString($payment_status)) { ?>
+<?php echo wpsg_drawForm_Input('', __('Mollie Status', 'wpsg'), $payment_status, ['readonly' => true]); ?>
+<?php } ?>
+
+<?php if (wpsg_isSizedString($payment_method)) { ?>
+<?php echo wpsg_drawForm_Input('', __('Bei Mollie genutzte Methode', 'wpsg'), $payment_method, ['readonly' => true]); ?>
+<?php } ?>
diff --git a/views/mods/mod_mollie/settings_edit.phtml b/views/mods/mod_mollie/settings_edit.phtml
new file mode 100644
index 0000000..01b0f8e
--- /dev/null
+++ b/views/mods/mod_mollie/settings_edit.phtml
@@ -0,0 +1,88 @@
+<?php
+
+ /**
+ * Template für die Einstellungen des Mollie Moduls
+ */
+
+ $view = $this->view['wpsg_mod_mollie'];
+
+?>
+<?php echo wpsg_drawForm_Checkbox('wpsg_mod_mollie_testmode', __('Testmodus', 'wpsg'), $this->get_option('wpsg_mod_mollie_testmode'), ['hint' => __('Im Testmodus wird der Test-API-Schlüssel verwendet. Mollie unterscheidet Test- und Livebetrieb allein über den Schlüssel.', 'wpsg')]); ?>
+<?php echo wpsg_drawForm_Input('wpsg_mod_mollie_apikey_test', __('API-Schlüssel (Test)', 'wpsg'), $this->get_option('wpsg_mod_mollie_apikey_test'), ['hint' => __('Beginnt mit test_', 'wpsg')]); ?>
+<?php echo wpsg_drawForm_Input('wpsg_mod_mollie_apikey_live', __('API-Schlüssel (Live)', 'wpsg'), $this->get_option('wpsg_mod_mollie_apikey_live'), ['hint' => __('Beginnt mit live_', 'wpsg')]); ?>
+<?php echo wpsg_drawForm_Input('', __('Webhook URL', 'wpsg'), $view['webhookURL'], ['readonly' => true, 'hint' => __('Mollie ruft diese URL bei jeder Statusänderung auf. Sie wird bei jeder Zahlung automatisch mitgesendet und muss von außen erreichbar sein.', 'wpsg')]); ?>
+
+<br />
+
+<?php echo wpsg_drawForm_Input('wpsg_mod_mollie_currency', __('Währung', 'wpsg'), $this->get_option('wpsg_mod_mollie_currency'), ['hint' => __('ISO-4217-Code, z.B. EUR', 'wpsg')]); ?>
+<?php echo wpsg_drawForm_Select('wpsg_mod_mollie_locale', __('Sprache der Bezahlseite', 'wpsg'), [
+ 'auto' => __('Automatisch (Sprache von WordPress)', 'wpsg'),
+ 'de_DE' => __('Deutsch (Deutschland)', 'wpsg'),
+ 'de_AT' => __('Deutsch (Österreich)', 'wpsg'),
+ 'de_CH' => __('Deutsch (Schweiz)', 'wpsg'),
+ 'en_GB' => __('Englisch (Großbritannien)', 'wpsg'),
+ 'en_US' => __('Englisch (USA)', 'wpsg'),
+ 'nl_NL' => __('Niederländisch', 'wpsg'),
+ 'fr_FR' => __('Französisch', 'wpsg'),
+ 'it_IT' => __('Italienisch', 'wpsg'),
+ 'es_ES' => __('Spanisch', 'wpsg'),
+ 'pl_PL' => __('Polnisch', 'wpsg')
+], $this->get_option('wpsg_mod_mollie_locale')); ?>
+<?php echo wpsg_drawForm_Input('wpsg_mod_mollie_description', __('Beschreibung der Zahlung', 'wpsg'), $this->get_option('wpsg_mod_mollie_description'), ['hint' => __('Erscheint auf dem Kontoauszug des Kunden, maximal 255 Zeichen. Platzhalter wie %order_id% oder %kunde_id% sind möglich.', 'wpsg')]); ?>
+<?php echo wpsg_drawForm_Checkbox('wpsg_mod_mollie_notaxcountry', __('Keine MwSt. auf die Gebühr, wenn Land steuerfrei', 'wpsg'), $this->get_option('wpsg_mod_mollie_notaxcountry'), ['help' => 'wpsg_shippay_mwstland']); ?>
+
+<br />
+
+<?php echo wpsg_drawForm_Select('wpsg_mod_mollie_successPage', __('Seite nach erfolgreicher Zahlung', 'wpsg'), $view['arPages'], $this->get_option('wpsg_mod_mollie_successPage')); ?>
+<?php echo wpsg_drawForm_Select('wpsg_mod_mollie_errorPage', __('Seite nach fehlgeschlagener Zahlung', 'wpsg'), $view['arPages'], $this->get_option('wpsg_mod_mollie_errorPage')); ?>
+
+<br />
+
+<?php echo wpsg_drawForm_Checkbox('wpsg_mod_mollie_debug', __('Debugmodus', 'wpsg'), $this->get_option('wpsg_mod_mollie_debug'), ['hint' => __('Schreibt die Kommunikation mit Mollie in das Bestellprotokoll.', 'wpsg')]); ?>
+
+<br />
+
+<?php if (!$view['hasApiKey']) { ?>
+<div class="wpsg_hinweis"><?php echo esc_html__('Es ist kein gültiger API-Schlüssel für die aktive Umgebung hinterlegt. Speichern Sie zuerst den Schlüssel, danach werden hier die bei Mollie freigeschalteten Zahlungsmethoden angezeigt.', 'wpsg'); ?></div>
+<?php } else if (!wpsg_isSizedArray($view['arMollieMethods'])) { ?>
+<div class="wpsg_hinweis"><?php echo esc_html__('Mollie hat keine freigeschalteten Zahlungsmethoden gemeldet. Prüfen Sie den API-Schlüssel und die Freischaltung im Mollie Dashboard.', 'wpsg'); ?></div>
+<?php } ?>
+
+<br />
+
+<?php foreach ($view['arMethods'] as $index => $arMethod) { ?>
+
+ <?php
+
+ $key_active = 'wpsg_mod_mollie_m'.$index.'_active';
+ $bActive = ($this->get_option($key_active) === '1');
+
+ $method_id = (string)$arMethod['id'];
+ $method_min = (string)($view['arMollieMethods'][$method_id]['min'] ?? '');
+
+ // Methoden, die Mollie für dieses Konto nicht freigeschaltet hat, werden gekennzeichnet
+ $bAtMollie = (($method_id === '') || array_key_exists($method_id, (array)$view['arMollieMethods']));
+
+ $title = $arMethod['name'];
+
+ if (!$bAtMollie) $title .= ' <span style="color:#a00;">('.esc_html__('bei Mollie nicht freigeschaltet', 'wpsg').')</span>';
+
+ ?>
+
+ <?php echo wpsg_drawForm_AdminboxStart($title, 'wpsg_mod_mollie_m'.$index, ['collapsable' => true, 'collapsed' => !$bActive]); ?>
+
+ <?php echo wpsg_drawForm_Checkbox($key_active, __('Zahlungsart aktiv', 'wpsg'), $this->get_option($key_active)); ?>
+ <?php echo wpsg_drawForm_Input('wpsg_mod_mollie_m'.$index.'_name', __('Bezeichnung', 'wpsg'), $this->get_option('wpsg_mod_mollie_m'.$index.'_name'), ['placeholder' => $arMethod['name']]); ?>
+ <?php echo wpsg_drawForm_Textarea('wpsg_mod_mollie_m'.$index.'_hint', __('Hinweistext', 'wpsg'), $this->get_option('wpsg_mod_mollie_m'.$index.'_hint')); ?>
+ <?php echo wpsg_drawForm_Input('wpsg_mod_mollie_m'.$index.'_fee', __('Gebühr/Rabatt', 'wpsg'), wpsg_ff($this->get_option('wpsg_mod_mollie_m'.$index.'_fee'), true), ['unit' => $this->get_option('wpsg_currency').' / %', 'help' => 'wpsg_shippay_gebuehr']); ?>
+ <?php echo wpsg_drawForm_Select('wpsg_mod_mollie_m'.$index.'_tax_key', __('Mehrwertsteuersatz', 'wpsg'), wpsg_tax_groups(), $this->get_option('wpsg_mod_mollie_m'.$index.'_tax_key')); ?>
+
+ <?php if ($method_min !== '') { ?>
+ <div class="wpsg_hinweis"><?php echo wpsg_translate(esc_html__('Mollie erlaubt diese Methode ab #1#.', 'wpsg'), esc_html($method_min).' '.esc_html($this->get_option('wpsg_mod_mollie_currency'))); ?></div>
+ <?php } ?>
+
+ <?php echo wpsg_drawForm_AdminboxEnd(); ?>
+
+<?php } ?>
+
+<div class="wpsg_hinweis"><?php echo esc_html__('Welche Methoden Ihnen zur Verfügung stehen, entscheidet Ihr Mollie Dashboard. Logos und Betragsgrenzen werden bei jedem Speichern neu von Mollie gelesen.', 'wpsg'); ?></div>