feat(cms): Platzhalter [#zahlarten] in Textboxen -- Liste der aktiven Zahlarten der Kundengruppe aus der Kassen-Logik (Seite Bezahlarten nicht mehr von Hand); Mollie-Aktivschalter in shipping_area auf gruppenspezifisch (2), sonst saehen Haendler Mollie
This commit is contained in:
@@ -392,6 +392,12 @@ class website_dyncontent {
|
||||
$var_data = array();
|
||||
$var_data['[#HIDDEN_TEXT_START]'] = '<span class="text_box_hidden_text">';
|
||||
$var_data['[#HIDDEN_TEXT_END]'] = ' </span> <a class="text_box_link_show_text" href="#">mehr>></a><a class="text_box_link_hide_text" href="#"><<weniger</a>';
|
||||
// 27.09.2026 -- [#zahlarten]: Liste der aktiven Zahlarten der Kundengruppe (Tom: die
|
||||
// CMS-Seite "Bezahlarten" soll nicht mehr von Hand gepflegt werden, sondern dem
|
||||
// Aktiv-Schalter im Backend folgen).
|
||||
if (strpos($block->content, '[#zahlarten]') !== false) {
|
||||
$var_data['[#zahlarten]'] = $this->zahlarten_liste();
|
||||
}
|
||||
$block->content = strtr($block->content, $var_data);
|
||||
|
||||
|
||||
@@ -401,6 +407,46 @@ class website_dyncontent {
|
||||
return $this->layout_object->_fetch('content_box_textbox.tpl');
|
||||
}
|
||||
|
||||
/**
|
||||
* Zahlarten, die der Besucher in der Kasse bekaeme -- dieselbe Quelle wie die Kasse
|
||||
* (Payment_method::getMethodsForGroup: payment_methods.active, shipping_area.active_<key>,
|
||||
* Kundengruppen-Freischaltung). Besucher (Gruppe 100) sehen die Gast-Zahlarten, weil sie
|
||||
* als Gast bestellen; Haendler ihr B2B-Versandgebiet. Bankeinzug/Rechnung nur, wenn der
|
||||
* angemeldete Kunde dafuer freigeschaltet ist (wie in content_cash_desk_neu.tpl).
|
||||
*/
|
||||
private function zahlarten_liste() {
|
||||
try {
|
||||
include_once './core/payment_method.class.php';
|
||||
$group = (int)$this->base_object->customer_group->id;
|
||||
if ($group <= 0 || $group == 100) {
|
||||
$group = 103; // Gast
|
||||
}
|
||||
$area = ($group == 101) ? 30 : 1; // Deutschland-B2B / Deutschland-B2C
|
||||
$pm_object = new Payment_method($this->base_object);
|
||||
$all = $pm_object->getMethodsForGroup($group, -1, $area);
|
||||
$customer = $this->base_object->customer;
|
||||
$list = array();
|
||||
foreach ((array)$all as $pm) {
|
||||
if (!isset($pm->activeType) || $pm->activeType <= 0) {
|
||||
continue;
|
||||
}
|
||||
if ($pm->helperjoinkey == 'be' && empty($customer->direct_debit_active)) {
|
||||
continue;
|
||||
}
|
||||
if ($pm->helperjoinkey == 'r' && empty($customer->rechnung_active)) {
|
||||
continue;
|
||||
}
|
||||
$list[] = $pm;
|
||||
}
|
||||
$this->layout_object->assign('zahlarten', $list);
|
||||
$this->layout_object->assign('zahlarten_gruppe', $group);
|
||||
return $this->layout_object->_fetch('content_box_zahlarten.tpl');
|
||||
} catch (Throwable $e) {
|
||||
error_log('zahlarten_liste: '.$e->getMessage());
|
||||
return '';
|
||||
}
|
||||
}
|
||||
|
||||
private function banner($structure_id, $block) {
|
||||
$config = array();
|
||||
eval($block->configuration);
|
||||
|
||||
Reference in New Issue
Block a user