简体   繁体   中英

override the content of cakePHP3 emails

I have built a cakePHP3 application and I'm looking for some advice concerning the following situation. An e-mail configuration is setup as follows, to send a mail whenever a new order has been created.

public function orderCreated($order, array $attachments = [])
    {
        $email = $this
            ->locale($order->customer->language)
            ->to($order->customer->email)
            ->from(Configure::read('Webshop.email'), Configure::read('Webshop.name'))
            ->subject(__('Confirmation of your order {0}', $order->nr))
            ->template('orders' . DS . 'order_created')
            ->set(['order' => $order])
            ->attachments($attachments);

        return $email;
    }

Has worked perfectly fine for ages, but I'd like to add some new functionality to this specific e-mail (and others). Admins should be able to override the content of the orders/order_created.ctp template if they want to, so they can define the content of this e-mail theirselves. So they don't have to rely on the same content in the order_created.ctp template I did provide.

Creating a UI for saving their own e-mails is not the issue. But the issue I don't really know how I could provide the overrided content to the cakePHP3 mailer. I tried setting

 ->template(false)
 ->message($new_content)

But that didn't help. Message doesn't reach mailbox because the body is empty.

Thanks.

I think I'd go with something like this:

->template('orders' . DS . 'order_created_custom')
->set(['order' => $order, 'content' => $new_content])

And then in the new order_created_custom.ctp you would output the $content . This gives you the option to do some text replacements on the content based on the $order , as well as perhaps having things like a standard salutation or signature.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM