Add HTML email template for new customer welcome email and integrate into email class

This commit is contained in:
Jeppe Bundgaard
2026-02-17 11:43:14 +01:00
parent 0a582951a0
commit 3e76bdccc2
2 changed files with 140 additions and 20 deletions
+20 -20
View File
@@ -10,6 +10,7 @@ require_once WD . '/modules/email/templates/email_template_stripe_invoice.php';
require_once WD . '/modules/email/templates/email_template_booking_confirmation.php';
require_once WD . '/modules/email/templates/email_template_booking_notification.php';
require_once WD . '/modules/email/templates/email_template_wash_certificate.php';
require_once WD . '/modules/email/templates/email_template_new_customer.php';
use AllowDynamicProperties;
use email\email_c;
@@ -20,6 +21,7 @@ use email\templates\email_template_head;
use email\templates\email_template_header;
use email\templates\email_template_stripe_invoice;
use email\templates\email_template_wash_certificate;
use email\templates\email_template_new_customer;
use Exception;
use interfaces\email_i;
use JsonException;
@@ -458,33 +460,31 @@ use Psr\Http\Client\ClientExceptionInterface;
throw new Exception('Customer not found with customer number: ' . $customer_number);
}
$password_reset_link = $customer->generatePasswordResetLink();
/**
* Tillykke med din nye kredit konto!
*
* Du kan nu vaske i alle vores afdelinger.
* Vedhæftet finder du en liste over vores afdelinger, som kan viderebringes til dine chauffører.
*
* Opsæt din adgangskode her: $password_reset_link
*
* Vi har oprettet en kredit konto til dig, med følgende informationer:
*
* Virksomhed: AT Kloakservice ApS
* Tlf: 77302200
* CVR: 40650717
*/
$company_name = $customer->getCustomerName((int)$customer->customer_number->value());
$phone = $customer->getCustomerEcocomicData()->economic_customer->mobilePhone;
$cvr = $customer->economic_customer->corporateIdentificationNumber;
// Craft the email message
$message = "Tillykke med din nye kredit konto!\n\nDu kan nu vaske i alle vores afdelinger.\nVedhæftet finder du en liste over vores afdelinger, som kan viderebringes til dine chauffører.\n\nOpsæt din adgangskode her: $password_reset_link\n\nVi har oprettet en kredit konto til dig, med følgende informationer:\n\nVirksomhed: $company_name\nTlf: $phone\nCVR: $cvr";
// Send the email
// Generate HTML email using the new customer template
$html = self::generateHtmlHeader();
$html .= (new email_template_new_customer(
(int)$customer->customer_number->value(),
$password_reset_link,
))->generate_html();
$html .= self::generateHtmlFooter();
// Prepare attachment (departments flyer)
$this->attachments = [
[
'https://www.truckwash.dk/wp-content/uploads/2024/10/Truck-Wash_Flyer_A5.pdf',
'Truck Wash Afdelinger.pdf'
]
];
$this->sendEmail($email, $company_name, 'Velkommen til Truck Wash', nl2br($message), null, $this->attachments);
// Send the email via MailerSend
$this->sendEmailMailerSend(
$email,
$company_name,
'Velkommen til Truck Wash',
'',
$html,
null,
$this->attachments
);
}
@@ -0,0 +1,120 @@
<?php
namespace email\templates;
use email\helpers\email_template;
class email_template_new_customer
{
use email_template;
protected int $customer_number;
protected string $password_reset_link;
public function __construct(
int $customer_number,
string $password_reset_link,
)
{
$this->customer_number = $customer_number;
$this->password_reset_link = $password_reset_link;
}
public function generate_text(): string
{
$lines = [];
$lines[] = 'Velkommen!';
$lines[] = 'Tak for din registrering af virksomhed (CVR) som kunde hos Truck Wash.';
$lines[] = 'Du kan nu vaske i alle vores afdelinger, find din nærmeste på truckwash.dk';
$lines[] = '';
$lines[] = 'Som ny kunde af Truck Wash får du adgang til en række unikke fordele:';
$lines[] = '- Et landsdækkende netværk af vaskehaller';
$lines[] = '- En kundeportal, hvor du kan håndtere alle aspekter af dine vaskebehov';
$lines[] = '- En samlet faktura for alle dine vaske på tværs af landet';
$lines[] = '- Et standardiseret vaskecertifikat for gennemførte vaske';
$lines[] = '- En bookingportal, hvor du nemt kan booke vaske på tværs af landet';
$lines[] = '- En mulighed for at vaske 24/7, idet vi har døgnåbent på de fleste lokationer';
$lines[] = '';
$lines[] = 'Dit login til kundeportalen er:';
$lines[] = 'Brugernavn: ' . $this->customer_number;
$lines[] = 'Kode: Ikke opsat';
$lines[] = 'Færdiggør kontoopsætning: ' . $this->password_reset_link;
$lines[] = '';
$lines[] = 'Vi ser frem til at modtage dine køretøjer ude i vaskebanerne.';
$lines[] = 'Har du spørgsmål, så kontakt os endelig.';
$lines[] = '';
$lines[] = 'Med venlig hilsen,';
$lines[] = 'Truck Wash';
return implode("\n", $lines);
}
public function generate_html(): string
{
ob_start();
# Start of the html
?>
<!-- New customer welcome template -->
<div class="email-template">
<!-- Title / Welcome -->
<p style="color: #000; font-size: 24px; line-height: 1.5; margin: 0 0 24px 0;"><strong>Velkommen!</strong></p>
<!-- Intro -->
<p style="color: #000; font-size: 16px; line-height: 1.5; margin: 0 0 18px 0;">
Tak for din registrering af virksomhed (CVR) som kunde hos Truck Wash.
</p>
<!-- Info -->
<p style="color: #000; font-size: 16px; line-height: 1.5; margin: 0 0 18px 0;">
Du kan nu vaske i alle vores afdelinger, find din nærmeste på
<a href="https://www.truckwash.dk" style="color:#001244; text-decoration:none;">truckwash.dk</a>
</p>
<!-- Benefits header -->
<p style="color: #000; font-size: 16px; line-height: 1.5; margin: 0;">
Som ny kunde af Truck Wash får du adgang til en række unikke fordele:
</p>
<!-- Benefits list -->
<ul style="color: #000; font-size: 16px; line-height: 1.5; margin: 8px 0 24px 20px; padding: 0;">
<li>Et landsdækkende netværk af vaskehaller</li>
<li>En kundeportal, hvor du kan håndtere alle aspekter af dine vaskebehov</li>
<li>En samlet faktura for alle dine vaske på tværs af landet</li>
<li>Et standardiseret vaskecertifikat for gennemførte vaske</li>
<li>En bookingportal, hvor du nemt kan booke vaske på tværs af landet</li>
<li>En mulighed for at vaske 24/7, idet vi har døgnåbent på de fleste lokationer</li>
</ul>
<!-- Credentials -->
<p style="color: #000; font-size: 16px; line-height: 1.5; margin: 0;">
Dit login til kundeportalen er:<br>
<strong>Brugernavn:</strong> <?= $this->customer_number ?><br>
<strong>Kode:</strong> Ikke opsat
</p>
<!-- CTA Button -->
<div style="margin: 24px 0 32px 0; text-align: center;">
<a href="<?= htmlspecialchars($this->password_reset_link) ?>"
style="background-color:#477fae; color:#fff; padding:12px 18px; text-decoration:none; border-radius:12px; font-size:16px; display:inline-block;">
Færdiggør kontoopsætning
</a>
</div>
<!-- Closing -->
<p style="color: #000; font-size: 16px; line-height: 1.5; margin: 0;">
Vi ser frem til at modtage dine køretøjer ude i vaskebanerne.<br>
Har du spørgsmål, så kontakt os endelig.
</p>
<!-- Regards -->
<p style="color: #000; font-size: 16px; line-height: 1.5; margin: 16px 0 0 0;">
Med venlig hilsen,<br>
Truck Wash
</p>
</div>
<?php
# End of the html
return ob_get_clean();
}
}