Admin-Bereich "Newsletter-Listen" (Plan dev/_tickets/entwicklungsplan- newsletter-listen.md): Berater und Kunden nach Filtern zusammenstellen, als Liste speichern und wieder laden, Export als XLSX/CSV. Jeder Export wird protokolliert (newsletter_list_exports). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
158 lines
5.6 KiB
PHP
158 lines
5.6 KiB
PHP
<?php
|
|
|
|
return [
|
|
'title' => 'Newsletter lists',
|
|
'intro' => 'Build a recipient list from customers and consultants, review it and export it for rapidmail. Deleted, anonymised, fake and test records are always excluded; duplicate e-mail addresses are removed automatically.',
|
|
'filter' => [
|
|
'source' => 'Source',
|
|
'language' => 'Language',
|
|
'country' => 'Country',
|
|
'optin' => 'Newsletter opt-in',
|
|
'purchase' => 'Purchase status',
|
|
'member' => 'Assigned consultant / sponsor',
|
|
'created_from' => 'Created from',
|
|
'created_to' => 'Created until',
|
|
'company' => 'Company',
|
|
'consultant_status' => 'Consultant status',
|
|
'level' => 'Career level',
|
|
'include_admins' => 'Include admin accounts',
|
|
'all' => 'all',
|
|
'none_member' => 'without assignment',
|
|
'consultant_section' => 'Consultant filters',
|
|
'refresh' => 'Refresh preview',
|
|
'reset' => 'Reset filters',
|
|
],
|
|
'source_option' => [
|
|
'customers' => 'Customers',
|
|
'consultants' => 'Consultants',
|
|
'both' => 'Customers and consultants',
|
|
],
|
|
'source' => [
|
|
'customer' => 'Customer',
|
|
'consultant' => 'Consultant',
|
|
],
|
|
'optin_option' => [
|
|
'all' => 'all (opt-in is exported as a column)',
|
|
'subscribed' => 'only with opt-in',
|
|
'unsubscribed' => 'only without opt-in',
|
|
],
|
|
'optin_value' => [
|
|
'yes' => 'yes',
|
|
'no' => 'no',
|
|
'contract' => 'contract',
|
|
],
|
|
'purchase_option' => [
|
|
'all' => 'all',
|
|
'has_buyed' => 'has purchased',
|
|
'none' => 'never purchased',
|
|
'months_3' => 'purchased in the last 3 months',
|
|
'months_6' => 'purchased in the last 6 months',
|
|
'months_12' => 'purchased in the last 12 months',
|
|
'active_abo' => 'has an active subscription',
|
|
],
|
|
'company_option' => [
|
|
'all' => 'all',
|
|
'with' => 'only with company',
|
|
'without' => 'only without company',
|
|
],
|
|
'consultant_status_option' => [
|
|
'active' => 'active only',
|
|
'inactive' => 'inactive only',
|
|
'all' => 'all',
|
|
],
|
|
'status_value' => [
|
|
'active' => 'active',
|
|
'inactive' => 'inactive',
|
|
],
|
|
'stats' => [
|
|
'total' => 'unique addresses',
|
|
'customers' => 'customers',
|
|
'consultants' => 'consultants',
|
|
'duplicates' => 'duplicates removed',
|
|
'invalid' => 'invalid addresses',
|
|
'loading' => 'Calculating list …',
|
|
],
|
|
'hint' => [
|
|
'optin_all' => 'The list also contains customers without newsletter opt-in. The "Newsletter" column marks the status per address.',
|
|
'consultants_contract' => 'Consultants have no separate opt-in; the legal basis is the consultant contract ("Newsletter" column = contract).',
|
|
],
|
|
'export' => [
|
|
'email' => 'Email address',
|
|
'firstname' => 'First name',
|
|
'lastname' => 'Last name',
|
|
'salutation_label' => 'Salutation',
|
|
'street' => 'Street',
|
|
'zipcode' => 'Postcode',
|
|
'city' => 'City',
|
|
'company' => 'Company',
|
|
'consultant' => 'Consultant',
|
|
'country' => 'Country',
|
|
'language' => 'Language',
|
|
'source_label' => 'Source',
|
|
'number' => 'Number',
|
|
'consultant_number' => 'Consultant no.',
|
|
'optin_label' => 'Newsletter',
|
|
'status_label' => 'Status',
|
|
'created_at' => 'Created',
|
|
'button_xlsx' => 'Export XLSX',
|
|
'button_csv' => 'Export CSV',
|
|
'template_only' => 'Export only the 9 template columns',
|
|
],
|
|
'table' => [
|
|
'email' => 'E-mail',
|
|
'name' => 'Name',
|
|
'salutation' => 'Salutation',
|
|
'zipcode' => 'Postcode',
|
|
'city' => 'City',
|
|
'country' => 'Country',
|
|
'language' => 'Language',
|
|
'consultant' => 'Consultant / sponsor',
|
|
'source' => 'Source',
|
|
'optin' => 'Newsletter',
|
|
'status' => 'Status',
|
|
'created' => 'Created',
|
|
],
|
|
'saved' => [
|
|
'title' => 'Saved lists',
|
|
'current' => 'Loaded list',
|
|
'name' => 'Name',
|
|
'name_placeholder' => 'e.g. Newsletter DE customers',
|
|
'save_new' => 'Save as new list',
|
|
'save_changes' => 'Save changes to this list',
|
|
'summary' => 'Filters',
|
|
'source' => 'Source',
|
|
'last_export' => 'Last export',
|
|
'last_count' => 'Addresses',
|
|
'created_by' => 'Created by',
|
|
'created_at' => 'Created',
|
|
'actions' => 'Actions',
|
|
'load' => 'Load filters',
|
|
'delete' => 'Delete',
|
|
'confirm_delete' => 'Really delete this list? The export log is kept.',
|
|
'stored' => 'List saved.',
|
|
'updated' => 'List updated.',
|
|
'deleted' => 'List deleted.',
|
|
'intro' => 'Saved filter combinations. "Load filters" puts the list into the preview; the export uses the stored filters.',
|
|
],
|
|
'exports' => [
|
|
'title' => 'Export log',
|
|
'intro' => 'Every download is recorded with user, time, filters and number of addresses.',
|
|
'date' => 'Date',
|
|
'user' => 'User',
|
|
'list' => 'List',
|
|
'adhoc' => 'without saved list',
|
|
'summary' => 'Filters',
|
|
'format' => 'Format',
|
|
'rows' => 'Addresses',
|
|
'filename' => 'File',
|
|
],
|
|
'validation' => [
|
|
'source' => 'Invalid source.',
|
|
'option' => 'Invalid filter value.',
|
|
'member' => 'Invalid consultant selection.',
|
|
'date' => 'Invalid date.',
|
|
'name' => 'Please enter a name (max. 120 characters).',
|
|
'list' => 'List not found.',
|
|
'date_range' => 'The end date must not be before the start date.',
|
|
],
|
|
];
|