diff options
| author | daniel <noreply@maennchen1.de> | 2026-09-17 10:47:22 +0200 |
|---|---|---|
| committer | daniel <noreply@maennchen1.de> | 2026-09-17 10:47:22 +0200 |
| commit | b6fa7e0ff9988363fbf300bc0a67e1bd7f52d4b7 (patch) | |
| tree | 0f839f4ee286915e2a9737fbadfff63c77d63c59 | |
| parent | 32c0b971707d90d4c2643b58a81170b8b5065fa9 (diff) | |
Mollie
| -rw-r--r-- | views/mods/mod_mollie/gfx/mollie.svg | 4 | ||||
| -rw-r--r-- | views/mods/mod_mollie/order_done.phtml | 48 | ||||
| -rw-r--r-- | views/mods/mod_mollie/order_view_afterpayment.phtml | 26 | ||||
| -rw-r--r-- | views/mods/mod_mollie/settings_edit.phtml | 88 |
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> |
