Aurel Dragut
Aktives Mitglied
Hallo,
Ich möchte diese Bewertungserinnerungen schicken, aber nur an die Kunden die ein Checkbox (bei Bestellabschluss) checken werden. Leider etwas stimmt nicht mit den E-Mails...
Kann mir jemand sagen, was fehlt oder falsch ist? Dankeschön...
Ich möchte diese Bewertungserinnerungen schicken, aber nur an die Kunden die ein Checkbox (bei Bestellabschluss) checken werden. Leider etwas stimmt nicht mit den E-Mails...
Kann mir jemand sagen, was fehlt oder falsch ist? Dankeschön...
Code:
<?php declare(strict_types=1);
namespace JTL\Catalog;
use JTL\Checkout\Bestellung;
use JTL\Customer\Customer;
use JTL\Mail\Mail\Mail;
use JTL\Mail\Mailer;
use JTL\Shop;
use Psr\Container\ContainerExceptionInterface;
use Psr\Container\NotFoundExceptionInterface;
use stdClass;
use const MAILTEMPLATE_BEWERTUNGERINNERUNG;
require_once 'includes/globalinclude.php';
$sql = "SELECT tbestellung.kBestellung FROM tcheckbox
INNER JOIN tcheckboxlogging ON tcheckboxlogging.kCheckBox = tcheckbox.kCheckBox
INNER JOIN tbestellung ON tbestellung.kBestellung = tcheckboxlogging.kBestellung
WHERE tcheckbox.cname = 'Bewertungserinnerung' AND tcheckboxlogging.bChecked = 1 AND tbestellung.dBewertungErinnerung IS NULL";
$orders = Shop::Container()->getDB()->getObjects($sql);
try {
$mailer = Shop::Container()->get(Mailer::class);
$mail = new Mail();
foreach ($orders as $orderData) {
$order = new Bestellung((int)$orderData->kBestellung);
$order->fuelleBestellung(false);
$customer = new Customer($order->kKunde ?? 0);
$obj = new stdClass();
$obj->tkunde = $customer;
$obj->tbestellung = $order;
$mailer->send($mail->createFromTemplateID(MAILTEMPLATE_BEWERTUNGERINNERUNG, $obj));
}
} catch (NotFoundExceptionInterface|ContainerExceptionInterface $e) {
echo $e->getMessage();
}