summaryrefslogtreecommitdiff
path: root/views/mods/mod_paypal/settings_edit.phtml
diff options
context:
space:
mode:
authorjlbeer <noreply@maennchen1.de>2026-09-25 17:05:32 +0200
committerjlbeer <noreply@maennchen1.de>2026-09-25 17:05:32 +0200
commitabfd45b167a9deff2de2633212e28fe0b336c63d (patch)
tree02a260a680be29cb0daa1bbc13a964ef2028c447 /views/mods/mod_paypal/settings_edit.phtml
parentfc461e1afd3dcce2ddb39c0f3da5fd7cd342100a (diff)
parentbe200df7d3e9b0fb65043627b35037eaf0046e6b (diff)
Merge remote-tracking branch 'origin/main'
Diffstat (limited to 'views/mods/mod_paypal/settings_edit.phtml')
-rw-r--r--views/mods/mod_paypal/settings_edit.phtml194
1 files changed, 124 insertions, 70 deletions
diff --git a/views/mods/mod_paypal/settings_edit.phtml b/views/mods/mod_paypal/settings_edit.phtml
index a366dff..daedb77 100644
--- a/views/mods/mod_paypal/settings_edit.phtml
+++ b/views/mods/mod_paypal/settings_edit.phtml
@@ -1,77 +1,131 @@
-<?php
+<?php
/**
* Templatedatei für die Einstellungen des PayPal Moduls
*/
+ if (!defined('ABSPATH')) exit;
+
+ $arView = $this->view['wpsg_mod_paypal'];
+ $arStatus = (array)($arView['arStatus']??[]);
+ $bSandbox = (bool)$arView['bSandbox'];
+
+ $arStornoStatus = (array)$this->get_option('wpsg_mod_paypal_stornostate');
+ $strDeveloperURL = 'https://developer.paypal.com/dashboard/applications/'.(($bSandbox)?'sandbox':'live');
+
+ // Das gespeicherte Prüfergebnis gilt nur für den aktuell eingestellten Modus
+ $bChecked = (isset($arStatus['time']) && (bool)($arStatus['sandbox']??false) === $bSandbox);
+
+ $strBadge = '<span class="label label-%s" style="font-size:12px;">%s</span>';
+
+ if ($bSandbox) {
+
+ $strMode = sprintf($strBadge, 'warning', esc_html__('Sandbox (Testbetrieb)', 'wpsg'));
+
+ } else {
+
+ $strMode = sprintf($strBadge, 'success', esc_html__('Live', 'wpsg'));
+
+ }
+
+ if (!$arView['bCredentials']) {
+
+ $strConnection = sprintf($strBadge, 'default', esc_html__('Keine Zugangsdaten hinterlegt', 'wpsg'));
+
+ } else if (!$bChecked) {
+
+ $strConnection = sprintf($strBadge, 'default', esc_html__('Noch nicht geprüft, bitte speichern', 'wpsg'));
+
+ } else if ($arStatus['connected'] === true) {
+
+ $strConnection = sprintf($strBadge, 'success', esc_html__('Verbindung erfolgreich', 'wpsg'));
+
+ } else {
+
+ $strConnection = sprintf($strBadge, 'danger', esc_html__('Anmeldung fehlgeschlagen', 'wpsg'));
+
+ if ((string)($arStatus['message']??'') !== '') $strConnection .= '<br /><small class="text-danger">'.esc_html($arStatus['message']).'</small>';
+
+ }
+
+ if ($bChecked && $arStatus['connected'] === true) {
+
+ $strWebHook = sprintf($strBadge, (($arStatus['webhook'] === true)?'success':'warning'), (($arStatus['webhook'] === true)?esc_html__('Angemeldet', 'wpsg'):esc_html__('Nicht angemeldet', 'wpsg')));
+
+ } else {
+
+ $strWebHook = sprintf($strBadge, 'default', esc_html__('Unbekannt', 'wpsg'));
+
+ }
+
?>
-<?php echo wpsg_drawForm_Input('wpsg_mod_paypal_bezeichnung', __('Bezeichnung', 'wpsg'), $this->get_option('wpsg_mod_paypal_bezeichnung'), array('help' => 'wpsg_shippay_name')); ?>
-<?php echo wpsg_drawForm_Checkbox('wpsg_mod_paypal_aktiv', __('Aktiv', 'wpsg'), $this->get_option('wpsg_mod_paypal_aktiv'), array('help' => 'wpsg_shippay_activ')); ?>
-<?php echo wpsg_drawForm_Textarea('wpsg_mod_paypal_hint', __('Hinweistext', 'wpsg'), $this->get_option('wpsg_mod_paypal_hint'), array('help' => 'wpsg_shippay_hint')); ?>
-
-<br />
-
-<?php echo wpsg_drawForm_Input('wpsg_mod_paypal_clientid', __('Client ID', 'wpsg'), $this->get_option('wpsg_mod_paypal_clientid'), array('hint' => wpsg_translate(__('Erhalten Sie im <a target="_blank" href="#1#">PayPal Developer Interface</a>.', 'wpsg'), 'https://developer.paypal.com/'), 'help' => 'wpsg_mod_paypal_clientid')); ?>
-<?php echo wpsg_drawForm_Input('wpsg_mod_paypal_secret', __('Secret', 'wpsg'), $this->get_option('wpsg_mod_paypal_secret'), array('hint' => wpsg_translate(__('Erhalten Sie im <a target="_blank" href="#1#">PayPal Developer Interface</a>.', 'wpsg'), 'https://developer.paypal.com/'), 'help' => 'wpsg_mod_paypal_secret')); ?>
-
-<div class="wpsg_form_field ">
- <div class="wpsg_form_left">
- <label for=""><?php echo __('Stornierung bei Statuswechsel', 'wpsg'); ?>:</label>
- </div>
- <div class="wpsg_form_right">
- <a href="#" class="wpsg_mod_paypal_stornostate"><?php echo __('Bearbeiten', 'wpsg'); ?></a>
- </div>
- <div class="wpsg_clear"></div>
-</div>
-<div class="wpsg_mod_paypal_stornostate_layer" style="display:none;">
-
- <?php foreach ($this->arStatus as $status_id => $status_label) { $arStornoStatus = (array)$this->get_option('wpsg_mod_paypal_stornostate'); ?>
- <?php echo wpsg_drawForm_Checkbox('wpsg_mod_paypal_stornostate['.$status_id.']', __($status_label, 'wpsg'), $arStornoStatus[$status_id], array('labelright' => true)); ?>
- <?php } ?>
-
- <br />
-
-</div>
-
-<?php echo wpsg_drawForm_Input('', __('WebHook URL', 'wpsg'), $this->getUrl(wpsg_ShopController::URL_BASKET, 'wpsg_mod_paypal', 'webHook', array(), true), array('readonly' => true, 'help' => 'wpsg_mod_paypal_webhook_url')); ?>
-<?php echo wpsg_drawForm_Checkbox('wpsg_mod_paypal_createwebhook', __('Beim speichern versuchen den WebHook anzumelden.', 'wpsg'), 0, array('labelright' => true, 'noDoubleDot' => true, 'help' => 'wpsg_mod_paypal_createwebhook')); ?>
-
-<script type="text/javascript">/* <![CDATA[ */
-
- jQuery(document).ready(function() {
-
- jQuery('.wpsg_mod_paypal_stornostate').bind('click', function() {
-
- jQuery('.wpsg_mod_paypal_stornostate_layer').toggle();
-
- if (jQuery('.wpsg_mod_paypal_stornostate_layer').is(':visible')) jQuery(this).html('<?php echo __('Ausblenden', 'wpsg'); ?>');
- else jQuery(this).html('<?php echo __('Bearbeiten', 'wpsg'); ?>');
-
- return false;
-
- } );
-
- } );
-
-/* ]]> */</script>
-
-<br />
-
-<?php echo wpsg_drawForm_Checkbox('wpsg_mod_paypal_sandbox', __('Sandbox Modus', 'wpsg'), $this->get_option('wpsg_mod_paypal_sandbox'), array('help' => 'wpsg_mod_paypal_sandbox')); ?>
-<?php echo wpsg_drawForm_Input('wpsg_mod_paypal_subject', __('Betreff der Überweisung', 'wpsg'), $this->get_option('wpsg_mod_paypal_subject'), array('help' => 'wpsg_mod_paypal_subject')); ?>
-<?php echo wpsg_drawForm_Input('wpsg_mod_paypal_invoicenumber', __('Formatierung InvoiceNumber', 'wpsg'), $this->get_option('wpsg_mod_paypal_invoicenumber'), array('help' => 'wpsg_mod_paypal_invoicenumber')); ?>
-
-<br />
-
-<?php echo wpsg_drawForm_Input('wpsg_mod_paypal_gebuehr', __('Gebühr/Rabatt', 'wpsg'), wpsg_ff($this->get_option('wpsg_mod_paypal_gebuehr'), true), array('help' => 'wpsg_shippay_gebuehr', 'unit' => $this->get_option('wpsg_currency').' / %')); ?>
-<?php echo wpsg_drawForm_Select('wpsg_mod_paypal_mwst', __('Mehrwertsteuersatz', 'wpsg'), wpsg_tax_groups(), $this->get_option('wpsg_mod_paypal_mwst'), array('help' => 'wpsg_shippay_mwst')); ?>
-<?php echo wpsg_drawForm_Checkbox('wpsg_mod_paypal_mwstland', __('Keine MwSt. wenn Land steuerfrei', 'wpsg'), $this->get_option('wpsg_mod_paypal_mwstland'), array('help' => 'wpsg_shippay_mwstland')); ?>
-
-<br />
-
-<?php echo wpsg_drawForm_Input('wpsg_mod_paypal_currency', __('Währungscode (Standard: EUR)', 'wpsg'), $this->get_option('wpsg_mod_paypal_currency'), array('help' => 'wpsg_mod_paypal_currency')); ?>
-<?php echo wpsg_drawForm_Select('wpsg_mod_paypal_language', __('Sprache im PayPal Interface', 'wpsg'), array('DE' => __('Deutsch', 'wpsg'), 'US' => __('Englisch', 'wpsg'), 'FR' => __('Französisch', 'wpsg')), $this->get_option('wpsg_mod_paypal_language'), array('help' => 'wpsg_mod_paypal_language')); ?>
-<?php echo wpsg_drawForm_Checkbox('wpsg_mod_paypal_autostart', __('Zahlung sofort starten', 'wpsg'), $this->get_option('wpsg_mod_paypal_autostart'), array('help' => 'wpsg_shippay_paystart')); ?>
-<?php echo wpsg_drawForm_Select('wpsg_page_mod_paypal_success', __('Erfolgsseite', 'wpsg'), $this->view['pages'], $this->get_option('wpsg_page_mod_paypal_success'), array('help' => 'wpsg_page_mod_paypal_success')); ?>
-<?php echo wpsg_drawForm_Select('wpsg_page_mod_paypal_error', __('Fehlerseite', 'wpsg'), $this->view['pages'], $this->get_option('wpsg_page_mod_paypal_error'), array('help' => 'wpsg_page_mod_paypal_error')); ?>
+<?php wpsg_drawForm_AdminboxStart(__('Verbindung zu PayPal', 'wpsg'), 'wpsg_mod_paypal_status'); ?>
+
+ <?php echo wpsg_drawForm_Text(__('Umgebung', 'wpsg'), $strMode); ?>
+ <?php echo wpsg_drawForm_Text(__('Zugangsdaten', 'wpsg'), $strConnection); ?>
+ <?php echo wpsg_drawForm_Text(__('WebHook', 'wpsg'), $strWebHook); ?>
+
+ <?php if ($bChecked) { ?>
+
+ <?php echo wpsg_drawForm_Text(__('Zuletzt geprüft', 'wpsg'), esc_html(wpsg_formatTimestamp($arStatus['time']))); ?>
+
+ <?php } ?>
+
+ <?php if ($bChecked && $arStatus['connected'] === true && $arStatus['webhook'] !== true) { ?>
+
+ <div class="wpsg_hinweis"><?php echo esc_html__('Der WebHook ist bei PayPal noch nicht angemeldet. Aktivieren Sie unten "WebHook beim Speichern anmelden" und speichern Sie die Einstellungen.', 'wpsg'); ?></div>
+
+ <?php } ?>
+
+<?php wpsg_drawForm_AdminboxEnd(); ?>
+
+<?php wpsg_drawForm_AdminboxStart(__('Zahlungsart im Shop', 'wpsg'), 'wpsg_mod_paypal_payment'); ?>
+
+ <?php echo wpsg_drawForm_Input('wpsg_mod_paypal_bezeichnung', __('Bezeichnung', 'wpsg'), $this->get_option('wpsg_mod_paypal_bezeichnung'), ['help' => 'wpsg_shippay_name']); ?>
+ <?php echo wpsg_drawForm_Checkbox('wpsg_mod_paypal_aktiv', __('Aktiv', 'wpsg'), $this->get_option('wpsg_mod_paypal_aktiv'), ['help' => 'wpsg_shippay_activ']); ?>
+ <?php echo wpsg_drawForm_Textarea('wpsg_mod_paypal_hint', __('Hinweistext', 'wpsg'), $this->get_option('wpsg_mod_paypal_hint'), ['help' => 'wpsg_shippay_hint']); ?>
+ <?php echo wpsg_drawForm_Input('wpsg_mod_paypal_gebuehr', __('Gebühr/Rabatt', 'wpsg'), wpsg_ff($this->get_option('wpsg_mod_paypal_gebuehr'), true), ['help' => 'wpsg_shippay_gebuehr', 'unit' => $this->get_option('wpsg_currency').' / %']); ?>
+ <?php echo wpsg_drawForm_Select('wpsg_mod_paypal_mwst', __('Mehrwertsteuersatz', 'wpsg'), wpsg_tax_groups(), $this->get_option('wpsg_mod_paypal_mwst'), ['help' => 'wpsg_shippay_mwst']); ?>
+ <?php echo wpsg_drawForm_Checkbox('wpsg_mod_paypal_mwstland', __('Keine MwSt. wenn Land steuerfrei', 'wpsg'), $this->get_option('wpsg_mod_paypal_mwstland'), ['help' => 'wpsg_shippay_mwstland']); ?>
+
+<?php wpsg_drawForm_AdminboxEnd(); ?>
+
+<?php wpsg_drawForm_AdminboxStart(__('Zugangsdaten', 'wpsg'), 'wpsg_mod_paypal_credentials'); ?>
+
+ <?php echo wpsg_drawForm_Checkbox('wpsg_mod_paypal_sandbox', __('Sandbox Modus', 'wpsg'), $this->get_option('wpsg_mod_paypal_sandbox'), ['help' => 'wpsg_mod_paypal_sandbox', 'hint' => esc_html__('Im Sandbox Modus werden keine echten Zahlungen ausgeführt. Sandbox und Live haben eigene Zugangsdaten.', 'wpsg')]); ?>
+ <?php echo wpsg_drawForm_Input('wpsg_mod_paypal_clientid', __('Client ID', 'wpsg'), $this->get_option('wpsg_mod_paypal_clientid'), ['help' => 'wpsg_mod_paypal_clientid']); ?>
+ <?php echo wpsg_drawForm_Input('wpsg_mod_paypal_secret', __('Secret', 'wpsg'), $this->get_option('wpsg_mod_paypal_secret'), ['help' => 'wpsg_mod_paypal_secret', 'hint' => wpsg_translate(__('Client ID und Secret erhalten Sie im <a target="_blank" href="#1#">PayPal Developer Dashboard</a> unter "Apps & Credentials".', 'wpsg'), esc_url($strDeveloperURL))]); ?>
+
+<?php wpsg_drawForm_AdminboxEnd(); ?>
+
+<?php wpsg_drawForm_AdminboxStart(__('WebHook', 'wpsg'), 'wpsg_mod_paypal_webhook'); ?>
+
+ <?php echo wpsg_drawForm_Input('', __('WebHook URL', 'wpsg'), $arView['webhookURL'], ['readonly' => true, 'help' => 'wpsg_mod_paypal_webhook_url', 'hint' => esc_html__('Über den WebHook meldet PayPal den Zahlungseingang an den Shop. Die URL muss per HTTPS von außen erreichbar sein.', 'wpsg')]); ?>
+ <?php echo wpsg_drawForm_Checkbox('wpsg_mod_paypal_createwebhook', __('WebHook beim Speichern anmelden', 'wpsg'), 0, ['help' => 'wpsg_mod_paypal_createwebhook']); ?>
+
+<?php wpsg_drawForm_AdminboxEnd(); ?>
+
+<?php wpsg_drawForm_AdminboxStart(__('Zahlungsablauf', 'wpsg'), 'wpsg_mod_paypal_process'); ?>
+
+ <?php echo wpsg_drawForm_Input('wpsg_mod_paypal_subject', __('Betreff der Überweisung', 'wpsg'), $this->get_option('wpsg_mod_paypal_subject'), ['help' => 'wpsg_mod_paypal_subject']); ?>
+ <?php echo wpsg_drawForm_Input('wpsg_mod_paypal_invoicenumber', __('Formatierung InvoiceNumber', 'wpsg'), $this->get_option('wpsg_mod_paypal_invoicenumber'), ['help' => 'wpsg_mod_paypal_invoicenumber']); ?>
+ <?php echo wpsg_drawForm_Input('wpsg_mod_paypal_currency', __('Währungscode (Standard: EUR)', 'wpsg'), $this->get_option('wpsg_mod_paypal_currency'), ['help' => 'wpsg_mod_paypal_currency']); ?>
+ <?php echo wpsg_drawForm_Select('wpsg_mod_paypal_language', __('Sprache im PayPal Interface', 'wpsg'), ['DE' => __('Deutsch', 'wpsg'), 'US' => __('Englisch', 'wpsg'), 'FR' => __('Französisch', 'wpsg')], $this->get_option('wpsg_mod_paypal_language'), ['help' => 'wpsg_mod_paypal_language']); ?>
+ <?php echo wpsg_drawForm_Checkbox('wpsg_mod_paypal_autostart', __('Zahlung sofort starten', 'wpsg'), $this->get_option('wpsg_mod_paypal_autostart'), ['help' => 'wpsg_shippay_paystart']); ?>
+ <?php echo wpsg_drawForm_Select('wpsg_page_mod_paypal_success', __('Erfolgsseite', 'wpsg'), $this->view['pages'], $this->get_option('wpsg_page_mod_paypal_success'), ['help' => 'wpsg_page_mod_paypal_success']); ?>
+ <?php echo wpsg_drawForm_Select('wpsg_page_mod_paypal_error', __('Fehlerseite', 'wpsg'), $this->view['pages'], $this->get_option('wpsg_page_mod_paypal_error'), ['help' => 'wpsg_page_mod_paypal_error']); ?>
+
+<?php wpsg_drawForm_AdminboxEnd(); ?>
+
+<?php wpsg_drawForm_AdminboxStart(__('Stornierung bei Statuswechsel', 'wpsg'), 'wpsg_mod_paypal_storno'); ?>
+
+ <p class="text-muted"><?php echo esc_html__('Wechselt eine mit PayPal bezahlte Bestellung in einen der markierten Status, wird der Betrag automatisch über PayPal erstattet.', 'wpsg'); ?></p>
+
+ <?php foreach ($this->arStatus as $status_id => $status_label) { ?>
+
+ <?php echo wpsg_drawForm_Checkbox('wpsg_mod_paypal_stornostate['.$status_id.']', __($status_label, 'wpsg'), ($arStornoStatus[$status_id]??'0')); ?>
+
+ <?php } ?>
+
+<?php wpsg_drawForm_AdminboxEnd(); ?>