Neu Bewertungserinnerung abhängig von Checkbox

Aurel Dragut

Aktives Mitglied
3. März 2021
42
1
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...

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();
}
 

Aurel Dragut

Aktives Mitglied
3. März 2021
42
1
Das Problem war, dass die E-Mail-Vorlage aktiv bleiben muss... aber 'Bewertungserinnerung nutzen' als Nie festgesetzt.
 

Ähnliche Themen