From ca777f23de50318f6cc40ba0b0346b5c3a74b8bc Mon Sep 17 00:00:00 2001 From: Kevin Adametz Date: Fri, 3 Jul 2026 15:35:26 +0000 Subject: [PATCH] Web-Inhalte auf echten Funktionsstand: FAQ, Hilfe, Veroeffentlichen - FAQ komplett neu: B2B-Hinweis, echte Datei-Limits (Bilder 16 MB, Anhaenge inkl. Office/ZIP 25 MB), Video-Einbettungs-Behauptung raus, Stripe/Rechnung als Zahlungswege, Kuendigungs- und API-Antworten mit echten Zielen, kein Export-/Farben-/Wizard-Versprechen mehr - Hilfe-Center: tote '#'-Links durch echte Ziele ersetzt (Registrieren, Kuendigungsseite, Konto-Login), Support-Kontakt als mailto, erfundene Geschaeftszeiten entfernt - Veroeffentlichen: Fantasie-Preismodell ('ab 89 EUR', Credits je Veroeffentlichung, Cross-Publishing separat) durch echte Konditionen ersetzt (Einzel-PM + Tarife aus DB/config via VeroeffentlichenPageData); Magic-Link-Registrierungs-Claim korrigiert Co-Authored-By: Claude Fable 5 --- app/Services/Web/VeroeffentlichenPageData.php | 7 +++ resources/views/web/faq.blade.php | 59 +++++++++++-------- resources/views/web/hilfe.blade.php | 45 +++++++------- .../views/web/veroeffentlichen.blade.php | 37 +++++++----- 4 files changed, 90 insertions(+), 58 deletions(-) diff --git a/app/Services/Web/VeroeffentlichenPageData.php b/app/Services/Web/VeroeffentlichenPageData.php index f975ec33..2bcdaac7 100644 --- a/app/Services/Web/VeroeffentlichenPageData.php +++ b/app/Services/Web/VeroeffentlichenPageData.php @@ -4,6 +4,7 @@ namespace App\Services\Web; use App\Enums\PressReleaseStatus; use App\Models\Company; +use App\Models\Plan; use App\Models\PressRelease; use App\Scopes\PortalScope; use App\Support\EditorialClock; @@ -75,6 +76,10 @@ class VeroeffentlichenPageData ->pluck('name') ->all(); + // Preis-Anker aus denselben Quellen wie die Preisseite (PreisePageData), + // damit die Marketingseite nie von den echten Konditionen abweicht. + $cheapestPlan = Plan::query()->active()->orderBy('monthly_price_cents')->first(); + return [ 'referenceNow' => $referenceNow, 'archiveTotal' => $archiveTotal, @@ -84,6 +89,8 @@ class VeroeffentlichenPageData 'exampleRelease' => $exampleRelease, 'activeNewsroomNames' => $activeNewsroomNames, 'activeNewsroomsTotal' => $activeNewsroomsTotal, + 'singlePmPriceCents' => (int) config('billing.single_pm_price_cents'), + 'cheapestPlan' => $cheapestPlan, ]; } } diff --git a/resources/views/web/faq.blade.php b/resources/views/web/faq.blade.php index 43e0599f..1a9ececf 100644 --- a/resources/views/web/faq.blade.php +++ b/resources/views/web/faq.blade.php @@ -1,41 +1,53 @@ @extends('web.layouts.web-master') @section('title', 'Häufig gestellte Fragen (FAQ)') -@section('meta_description', 'Antworten auf die wichtigsten Fragen rund um das Veröffentlichen von Pressemitteilungen, Account, Abrechnung und Newsroom.') +@section('meta_description', 'Antworten auf die wichtigsten Fragen rund um das Veröffentlichen von Pressemitteilungen, Konto, Abrechnung und Newsroom.') @php - // FAQ-Inhalte als Datenstruktur (DRY). Vor Go-Live ggf. mit dem Support - // abstimmen; bei Bedarf später in lang/*/faq.php auslagern. + // Host-aware Kontaktadresse: Hub (pressekonto) vs. Spokes. Betreiber- + // Postfach als Fallback, bis CONTACT_EMAIL_* gesetzt sind (R2.1). + $host = request()->getHost(); + $faqBrandKey = str_contains($host, 'pressekonto') + ? 'pressekonto' + : (str_contains($host, 'presseecho') ? 'presseecho' : 'businessportal24'); + $faqContactEmail = config('domains.domains.'.$faqBrandKey.'.brand.contact_email') ?? 'info@businessportal24.com'; + + // FAQ-Inhalte als Datenstruktur (DRY). Antworten dürfen kontrolliertes + // HTML enthalten (nur eigene Literale, keine Nutzereingaben). $faqCategories = [ [ 'title' => 'Erste Schritte', 'items' => [ - ['q' => 'Wie veröffentliche ich meine erste Pressemitteilung?', 'a' => 'Nach der Registrierung klicken Sie auf „Veröffentlichen" in der Hauptnavigation. Folgen Sie dem 5-Schritte-Wizard: Metadaten eingeben, Content erstellen, Medien hochladen, Kontaktdaten hinterlegen und Vorschau prüfen. Bei Fragen steht unser Support-Team zur Verfügung.'], - ['q' => 'Muss ich mich registrieren, um Pressemitteilungen zu lesen?', 'a' => 'Nein, alle veröffentlichten Pressemitteilungen sind frei zugänglich. Eine Registrierung ist nur erforderlich, wenn Sie selbst Inhalte veröffentlichen oder einen Newsroom erstellen möchten.'], - ['q' => 'Wie lange dauert die Freischaltung meiner Pressemitteilung?', 'a' => 'In der Regel werden Pressemitteilungen innerhalb weniger Stunden redaktionell geprüft und freigeschaltet. Höhere Tarife profitieren von einer beschleunigten Prüfung.'], + ['q' => 'Wie veröffentliche ich meine erste Pressemitteilung?', 'a' => 'Registrieren Sie sich im zentralen Publisher-Bereich (pressekonto), legen Sie Ihr Firmenprofil an und verfassen Sie die Mitteilung im Editor — mit Text, Bildern, Anhängen und Pressekontakt. Nach dem Einreichen durchläuft sie unsere Inhaltsprüfung und erscheint anschließend auf presseecho.de und businessportal24.com.'], + ['q' => 'An wen richtet sich das Angebot?', 'a' => 'Ausschließlich an Unternehmen, Selbstständige und Agenturen. Die Veröffentlichung erfolgt stets über ein Firmenprofil — ein Angebot für Verbraucher ist es nicht.'], + ['q' => 'Muss ich mich registrieren, um Pressemitteilungen zu lesen?', 'a' => 'Nein, alle veröffentlichten Pressemitteilungen sind frei zugänglich. Eine Registrierung ist nur erforderlich, wenn Sie selbst veröffentlichen möchten.'], + ['q' => 'Wie lange dauert die Freischaltung meiner Pressemitteilung?', 'a' => 'Die Inhaltsprüfung ist werktags in der Regel am selben Tag abgeschlossen. Nach der Freigabe geht die Mitteilung sofort online — oder automatisch zu Ihrem geplanten Wunschtermin.'], ], ], [ - 'title' => 'Account & Abrechnung', + 'title' => 'Konto & Abrechnung', 'items' => [ - ['q' => 'Wie ändere ich meinen Tarif?', 'a' => 'In Ihrem Bereich unter „Buchungen & Add-ons" können Sie jederzeit upgraden oder downgraden. Upgrades gelten sofort, Downgrades zum nächsten Abrechnungszeitraum.'], - ['q' => 'Welche Zahlungsmethoden werden akzeptiert?', 'a' => 'Wir akzeptieren Kreditkarten (Visa, Mastercard, American Express) sowie SEPA-Lastschrift. Die Abrechnung erfolgt sicher über unseren Zahlungsdienstleister; Bestandskunden können weiter per Rechnung zahlen.'], - ['q' => 'Kann ich mein Konto löschen?', 'a' => 'Ja, Sie können Ihr Konto jederzeit in den Einstellungen löschen. Beachten Sie, dass bereits veröffentlichte Pressemitteilungen aus SEO-Gründen online bleiben, aber nicht mehr Ihrem Account zugeordnet sind.'], + ['q' => 'Wie ändere ich meinen Tarif?', 'a' => 'In Ihrem Konto unter „Buchungen & Add-ons" können Sie jederzeit upgraden oder downgraden. Upgrades gelten sofort, Downgrades zum nächsten Abrechnungszeitraum.'], + ['q' => 'Welche Zahlungsmethoden werden akzeptiert?', 'a' => 'Die Abrechnung läuft sicher über Stripe — etwa per Kreditkarte oder SEPA-Lastschrift. Bestandskunden mit laufender Vereinbarung zahlen weiterhin per Rechnung.'], + ['q' => 'Kann ich meinen Tarif kündigen?', 'a' => 'Ja, alle Tarife sind monatlich kündbar — direkt im Konto oder ohne Anmeldung über die Kündigungsseite. Bei jährlicher Zahlweise läuft der bereits bezahlte Zeitraum bis zum Ende der zwölf Monate.'], + ['q' => 'Kann ich mein Konto löschen?', 'a' => 'Ja, jederzeit in den Einstellungen Ihres Kontos. Bereits veröffentlichte Pressemitteilungen bleiben im Archiv online, werden aber nicht mehr Ihrem Konto zugeordnet.'], ], ], [ - 'title' => 'Pressemitteilungen & Content', + 'title' => 'Pressemitteilungen & Inhalte', 'items' => [ - ['q' => 'Welche Dateiformate werden für Medien unterstützt?', 'a' => 'Bilder: JPG, PNG, WebP (max. 10 MB). Dokumente: PDF (max. 25 MB). Videos können über YouTube-/Vimeo-Einbettung hinzugefügt werden.'], - ['q' => 'Kann ich eine Pressemitteilung nach Veröffentlichung bearbeiten?', 'a' => 'Inhaltliche Korrekturen und Updates sind über den jeweiligen Magic-Link möglich. Umfang und Konditionen richten sich nach dem gewählten Tarif.'], - ['q' => 'Wie optimiere ich meine Pressemitteilung für SEO?', 'a' => 'Nutzen Sie aussagekräftige Headlines, integrieren Sie relevante Keywords natürlich, hinterlegen Sie Alt-Texte für Bilder und strukturieren Sie den Text mit Zwischenüberschriften.'], + ['q' => 'Welche Dateiformate werden unterstützt?', 'a' => 'Bilder: JPG, PNG, WebP (max. 16 MB). Anhänge: PDF, Word, Excel, PowerPoint, ZIP und TXT (max. 25 MB je Datei).'], + ['q' => 'Kann ich eine Pressemitteilung nach Veröffentlichung korrigieren?', 'a' => 'Ja — wir korrigieren statt zu löschen: Die URL Ihrer Mitteilung bleibt erhalten, Verweise und Verlinkungen bestehen weiter. Wenden Sie sich mit Korrekturwünschen an unseren Support.'], + ['q' => 'Wie optimiere ich meine Pressemitteilung für SEO?', 'a' => 'Nutzen Sie aussagekräftige Headlines, integrieren Sie relevante Keywords natürlich, hinterlegen Sie Bildtitel und strukturieren Sie den Text mit Zwischenüberschriften.'], + ['q' => 'Was passiert, wenn eine Mitteilung abgelehnt wird?', 'a' => 'Sie erhalten die Ablehnung mit Begründung und können die Mitteilung überarbeiten und erneut einreichen. Ein abgelehnter Beitrag verbraucht kein Kontingent.'], ], ], [ - 'title' => 'Newsroom & Features', + 'title' => 'Newsroom & Funktionen', 'items' => [ - ['q' => 'Was ist ein Newsroom und wie erstelle ich einen?', 'a' => 'Ein Newsroom ist Ihre dedizierte Unternehmensseite, auf der alle Ihre Pressemitteilungen gebündelt werden. Je nach Tarif lässt er sich mit Logo, Farben und zusätzlichen Informationen individualisieren.'], - ['q' => 'Wie funktionieren die Analytics?', 'a' => 'Sie erhalten Statistiken zu Aufrufen, Klicks und Reichweite Ihrer Meldungen. Die Daten werden laufend aktualisiert und lassen sich exportieren.'], + ['q' => 'Was ist ein Newsroom?', 'a' => 'Ihre Unternehmensseite auf beiden Portalen, auf der alle Ihre Pressemitteilungen gebündelt sind — mit Logo, Kurzprofil und Pressekontakten.'], + ['q' => 'Welche Statistiken sehe ich?', 'a' => 'Die Aufrufe jeder Mitteilung über beide Portale hinweg, direkt in Ihrem Konto. Die Zahlen werden laufend aktualisiert.'], + ['q' => 'Gibt es eine API?', 'a' => 'Ja — eine Token-basierte REST-API zum Einreichen von Mitteilungen, Statusabfragen und Bild-Upload. Details finden Sie auf der API-Seite; Ihre Tokens erstellen Sie direkt im Konto, sobald eine aktive Buchung vorliegt.'], ], ], ]; @@ -45,7 +57,7 @@
@@ -62,8 +74,8 @@ -
- {{ $item['a'] }} +
+ {!! $item['a'] !!}
@endforeach @@ -76,12 +88,13 @@

Frage nicht gefunden?

- Unser Support-Team hilft Ihnen gerne weiter – per E-Mail oder über das Kontaktformular. + Unser Support-Team hilft Ihnen gerne weiter – per E-Mail an + {{ $faqContactEmail }}.

- - Kontakt aufnehmen + Support anschreiben diff --git a/resources/views/web/hilfe.blade.php b/resources/views/web/hilfe.blade.php index 836701e2..df26d38a 100644 --- a/resources/views/web/hilfe.blade.php +++ b/resources/views/web/hilfe.blade.php @@ -4,43 +4,48 @@ @section('meta_description', 'Hilfe-Center: Antworten, Anleitungen und direkter Kontakt zum Support-Team.') @php - // Hilfe-Themen mit Links auf vorhandene Ziele. „#" markiert Inhalte, die - // noch entstehen (Anleitungen/Tutorials) — vor Go-Live verlinken. + $publisherUrl = rtrim((string) config('domains.domain_portal_url', config('app.url')), '/'); + + // Host-aware Kontaktadresse (Betreiber-Postfach als Fallback, R2.1). + $helpHost = request()->getHost(); + $helpBrandKey = str_contains($helpHost, 'pressekonto') + ? 'pressekonto' + : (str_contains($helpHost, 'presseecho') ? 'presseecho' : 'businessportal24'); + $helpContactEmail = config('domains.domains.'.$helpBrandKey.'.brand.contact_email') ?? 'info@businessportal24.com'; + + // Hilfe-Themen mit Links auf vorhandene Ziele. $helpTopics = [ [ 'title' => 'Erste Schritte', 'links' => [ - ['label' => 'Account erstellen', 'href' => '#'], + ['label' => 'Konto erstellen', 'href' => $publisherUrl.'/register'], ['label' => 'Erste Pressemitteilung veröffentlichen', 'href' => route('veroeffentlichen')], - ['label' => 'Newsroom einrichten', 'href' => route('newsrooms')], - ['label' => 'Profil vervollständigen', 'href' => '#'], + ['label' => 'Newsrooms entdecken', 'href' => route('newsrooms')], + ['label' => 'Häufige Fragen zum Einstieg', 'href' => route('faq')], ], ], [ 'title' => 'Pressemitteilungen', 'links' => [ - ['label' => 'PM erstellen und formatieren', 'href' => '#'], - ['label' => 'Medien hochladen', 'href' => '#'], - ['label' => 'SEO-Optimierung', 'href' => '#'], - ['label' => 'PM bearbeiten / löschen', 'href' => '#'], + ['label' => 'Dateiformate und Größen', 'href' => route('faq')], + ['label' => 'SEO-Optimierung', 'href' => route('faq')], + ['label' => 'Korrekturen nach Veröffentlichung', 'href' => route('faq')], ], ], [ - 'title' => 'Account & Abrechnung', + 'title' => 'Konto & Abrechnung', 'links' => [ ['label' => 'Tarif wechseln', 'href' => route('preise')], - ['label' => 'Zahlungsmethoden', 'href' => route('preise')], - ['label' => 'Rechnungen herunterladen', 'href' => '#'], - ['label' => 'Account kündigen', 'href' => '#'], + ['label' => 'Rechnungen im Konto abrufen', 'href' => $publisherUrl.'/login'], + ['label' => 'Vertrag kündigen', 'href' => route('kuendigung')], ], ], [ - 'title' => 'Erweiterte Features', + 'title' => 'Erweiterte Funktionen', 'links' => [ ['label' => 'API-Integration', 'href' => route('api')], - ['label' => 'Analytics nutzen', 'href' => '#'], - ['label' => 'Newsroom anpassen', 'href' => route('newsrooms')], - ['label' => 'Team-Management', 'href' => '#'], + ['label' => 'Statistiken zu Aufrufen', 'href' => route('faq')], + ['label' => 'Newsroom pflegen', 'href' => $publisherUrl.'/login'], ], ], ]; @@ -48,7 +53,7 @@ $quickLinks = [ ['label' => 'FAQ', 'desc' => 'Häufig gestellte Fragen', 'href' => route('faq')], ['label' => 'Veröffentlichen', 'desc' => 'In wenigen Schritten zur Meldung', 'href' => route('veroeffentlichen')], - ['label' => 'Kontakt', 'desc' => 'Direkter Draht zum Support', 'href' => route('kontakt')], + ['label' => 'Kontakt', 'desc' => 'Direkter Draht zum Support', 'href' => 'mailto:'.$helpContactEmail], ]; @endphp @@ -98,10 +103,10 @@

Benötigen Sie weitere Hilfe?

-

Unser Support-Team ist Mo–Fr von 9–18 Uhr für Sie da.

+

Unser Support-Team antwortet werktags per E-Mail.

- Support kontaktieren diff --git a/resources/views/web/veroeffentlichen.blade.php b/resources/views/web/veroeffentlichen.blade.php index 1f0c4d6d..14757853 100644 --- a/resources/views/web/veroeffentlichen.blade.php +++ b/resources/views/web/veroeffentlichen.blade.php @@ -11,6 +11,10 @@ $newsroomNames = $activeNewsroomNames ?? []; $newsroomTotalLabel = max(0, (int) ($activeNewsroomsTotal ?? 0) - count($newsroomNames)); + $fmtEuro = static fn (int $cents): string => number_format($cents / 100, $cents % 100 === 0 ? 0 : 2, ',', '.'); + $singlePmLabel = $fmtEuro((int) ($singlePmPriceCents ?? 1900)); + $cheapestPlanPriceLabel = ($cheapestPlan ?? null) ? $fmtEuro((int) $cheapestPlan->monthly_price_cents) : null; + $example = $exampleRelease ?? null; $exampleCategory = $example?->category?->translations?->first()?->name; $exampleCompany = $example?->company?->name; @@ -225,7 +229,7 @@
@foreach ([ - ['n' => '01', 'meta' => '≈ 2 Minuten', 't' => 'Konto anlegen', 'd' => 'Mit E-Mail-Adresse. Kein Passwort nötig — Login per Magic-Link. Konto und Abrechnung liegen im zentralen Publisher-Bereich.'], + ['n' => '01', 'meta' => '≈ 2 Minuten', 't' => 'Konto anlegen', 'd' => 'Mit E-Mail und Passwort oder Google-Konto. Konto und Abrechnung liegen im zentralen Publisher-Bereich — ein Konto für beide Portale.'], ['n' => '02', 'meta' => 'werktags · innerhalb 24 h', 't' => 'Mitteilung einreichen', 'd' => 'Text, Bild, Ansprechpartner. Eine automatische Qualitätsprüfung läuft parallel zu einer kurzen redaktionellen Sichtung.'], ['n' => '03', 'meta' => 'permanent · indexiert', 't' => 'Veröffentlichung', 'd' => 'Nach Freigabe online und im Archiv. Bei Bedarf jederzeit korrigierbar — die URL bleibt stabil, Verweise bestehen weiter.'], ] as $step) @@ -241,7 +245,8 @@

- Die Veröffentlichung erfolgt über den zentralen Publisher-Bereich. Cross-Publishing nach presseecho.de ist optional verfügbar. + Die Veröffentlichung erfolgt über den zentralen Publisher-Bereich und erscheint ohne Mehrkosten + auf beiden Portalen — presseecho.de und businessportal24.com.

@@ -328,27 +333,29 @@
Logik

- Sie kaufen Credits, die für Veröffentlichungen eingesetzt werden. Keine Mindestlaufzeit, keine versteckten Gebühren. + Einzeln ohne Abo veröffentlichen oder im Monats-Tarif — Inhaltsprüfung und beide Portale sind immer enthalten.

    -
  • Credits verfallen nicht.
  • -
  • Korrekturen sind kostenfrei.
  • -
  • Mengenrabatte ab dem zweiten Paket.
  • +
  • Beide Portale ohne Mehrkosten.
  • +
  • Abgelehnte Mitteilungen kosten kein Kontingent.
  • +
  • Alle Tarife monatlich kündbar.
Anker
-
Eine Veröffentlichung
-
ab 89 €
-
netto · zzgl. USt. · Mengenrabatte verfügbar.
+
Eine Veröffentlichung ohne Abo
+
{{ $singlePmLabel }} €
+
netto · zzgl. USt. · voller Leistungsumfang.
-
Beispiel-Pakete: 5er ab 79 € / Mitteilung · 25er ab 64 € / Mitteilung.
+ @if ($cheapestPlanPriceLabel) +
Regelmäßig veröffentlichen: Tarife ab {{ $cheapestPlanPriceLabel }} € / Monat mit {{ $cheapestPlan->press_release_quota }} Mitteilungen.
+ @endif
Vollständige Übersicht
-

Pakete, Cross-Publishing nach presseecho.de, Agentur-Konditionen und Rechnungseinstellungen finden Sie in der Preisübersicht.

+

Alle Tarife, Extra-Kontingente, Boost-Platzierungen und Agentur-Konditionen finden Sie in der Preisübersicht.

Zur Preisübersicht @@ -375,16 +382,16 @@

Sie finden hier keine Antwort?

-
Redaktion direkt anschreiben -
Mo–Fr · 09:00–17:00 Uhr (MEZ)
+ Redaktion direkt anschreiben +
Antwort werktags per E-Mail
@foreach ([ ['q' => 'Wie schnell wird meine Mitteilung veröffentlicht?', 'a' => 'Werktags üblicherweise innerhalb von 24 Stunden nach Einreichung. Bei zeitkritischen Mitteilungen ist eine Vorab-Absprache möglich.'], ['q' => 'Bleibt meine Mitteilung dauerhaft online?', 'a' => 'Ja. Mitteilungen werden nicht gelöscht. Korrekturen sind jederzeit möglich — die URL bleibt erhalten.'], - ['q' => 'Kann ich auch auf presseecho.de veröffentlichen?', 'a' => 'Ja, über den zentralen Publisher-Bereich. Cross-Publishing ist optional verfügbar und wird separat abgerechnet.'], - ['q' => 'Brauche ich ein Abo?', 'a' => 'Nein. Sie kaufen Credits nach Bedarf, ohne Vertragsbindung. Nicht eingesetzte Credits verfallen nicht.'], + ['q' => 'Kann ich auch auf presseecho.de veröffentlichen?', 'a' => 'Ja — jede Mitteilung erscheint automatisch auf beiden Portalen, presseecho.de und businessportal24.com, ohne Mehrkosten und ohne doppelte Eingabe.'], + ['q' => 'Brauche ich ein Abo?', 'a' => 'Nein. Eine Einzel-Pressemitteilung buchen Sie ohne Abo zum Festpreis; für regelmäßige Veröffentlichungen lohnen sich die monatlich kündbaren Tarife.'], ['q' => 'Was passiert bei einem Fehler in der Mitteilung?', 'a' => 'Korrektur statt Löschung: Inhalte werden aktualisiert, die URL bleibt erhalten, Verlinkungen und Verweise bestehen weiter.'], ] as $i => $faq)