Deploy to Production (witstore.wende.it) / deploy (push) Successful in 7s
- E-Mail-Templates: DB-gespeicherte HTML-Templates mit {{placeholder}}-System,
Admin-UI zum Bearbeiten von Betreff und Body, alle 4 Mailables aktualisiert
- Seiten-Layouts: 4 Layouts für CMS-Seiten (Standard, Sidebar, Volle Breite, Landing),
Layout-Auswahl im Admin-Formular
- Shop-Themes: 5 Farbthemen via CSS-Variablen, Picker in Einstellungen
- Deployment: EmailTemplateSeeder wird automatisch beim Deploy ausgeführt
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
49 lines
1.4 KiB
PHP
49 lines
1.4 KiB
PHP
<?php
|
||
|
||
namespace App\Mail;
|
||
|
||
use App\Models\EmailTemplate;
|
||
use App\Models\Order;
|
||
use App\Models\Setting;
|
||
use Illuminate\Bus\Queueable;
|
||
use Illuminate\Mail\Mailable;
|
||
use Illuminate\Queue\SerializesModels;
|
||
|
||
class OrderShippedMail extends Mailable
|
||
{
|
||
use Queueable, SerializesModels;
|
||
|
||
public function __construct(public Order $order) {}
|
||
|
||
public function build()
|
||
{
|
||
$order = $this->order;
|
||
$template = EmailTemplate::getByKey('order_shipped');
|
||
|
||
if (!$template) {
|
||
return $this
|
||
->subject('Ihre Bestellung wurde versendet – ' . $order->order_number)
|
||
->view('emails.order_shipped');
|
||
}
|
||
|
||
$trackingInfo = $order->tracking_code
|
||
? '<div style="background:#f0fdf4;padding:16px;border-radius:8px;border:1px solid #86efac;margin:16px 0">'
|
||
. '<strong>Sendungsverfolgung:</strong><br>'
|
||
. 'Tracking-Nummer: <strong>' . e($order->tracking_code) . '</strong>'
|
||
. '</div>'
|
||
: '';
|
||
|
||
$data = [
|
||
'order_number' => $order->order_number,
|
||
'tracking_code' => $order->tracking_code ?? '',
|
||
'tracking_info' => $trackingInfo,
|
||
'shop_name' => Setting::get('shop_name'),
|
||
'shop_email' => Setting::get('shop_email'),
|
||
];
|
||
|
||
return $this
|
||
->subject($template->renderSubject($data))
|
||
->html($template->renderBody($data));
|
||
}
|
||
}
|