linkmobility4oxid/src/Modules/Core/EmailCore.php

186 lines
5.6 KiB
PHP
Raw Normal View History

2022-07-04 16:33:49 +02:00
<?php
/**
2022-07-13 13:21:52 +02:00
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*
* https://www.d3data.de
2022-07-04 16:33:49 +02:00
*
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
2022-07-13 13:21:52 +02:00
* @author D3 Data Development - Daniel Seifert <support@shopmodule.com>
* @link https://www.oxidmodule.com
2022-07-04 16:33:49 +02:00
*/
2022-07-13 13:21:52 +02:00
declare(strict_types=1);
2022-07-04 16:33:49 +02:00
namespace D3\Linkmobility4OXID\Modules\Core;
use D3\Linkmobility4OXID\Application\Model\MessageSender;
2023-01-09 22:17:30 +01:00
use D3\TestingTools\Production\IsMockable;
2022-07-04 16:33:49 +02:00
use Exception;
use OxidEsales\Eshop\Application\Model\Order;
2022-07-12 16:06:19 +02:00
use OxidEsales\EshopCommunity\Internal\Container\ContainerFactory;
2022-07-04 16:33:49 +02:00
use OxidEsales\EshopCommunity\Internal\Framework\Templating\TemplateRendererBridgeInterface;
use OxidEsales\EshopCommunity\Internal\Framework\Templating\TemplateRendererInterface;
use Psr\Container\ContainerExceptionInterface;
use Psr\Container\NotFoundExceptionInterface;
2022-07-04 16:33:49 +02:00
class EmailCore extends EmailCore_parent
{
2023-01-09 22:17:30 +01:00
use IsMockable;
2022-07-27 09:27:59 +02:00
/** @var string */
protected $d3OrderCustSmsTemplate = 'd3sms_ordercust.tpl';
2022-07-27 09:27:59 +02:00
/** @var string */
protected $d3OrderSendedNowSmsTemplate = 'd3sms_sendednow.tpl';
2022-07-27 09:27:59 +02:00
/** @var string */
protected $d3OrderCanceledSmsTemplate = 'd3sms_ordercanceled.tpl';
2022-07-04 16:33:49 +02:00
/**
* @param Order $order
2022-07-27 09:27:59 +02:00
* @param string $subject
2022-07-04 16:33:49 +02:00
*
* @return bool
* @throws ContainerExceptionInterface
* @throws NotFoundExceptionInterface
2023-01-15 22:24:49 +01:00
* @throws Exception
2022-07-04 16:33:49 +02:00
*/
public function sendOrderEmailToUser($order, $subject = null)
{
2023-01-09 22:17:30 +01:00
// $ret = parent::sendOrderEmailToUser($order, $subject);
2023-01-10 23:33:48 +01:00
/** @var bool $ret */
2023-01-09 22:17:30 +01:00
$ret = $this->d3CallMockableFunction([EmailCore_parent::class, 'sendOrderEmailToUser'], [$order, $subject]);
2022-07-04 16:33:49 +02:00
$this->d3SendOrderFinishedMessageToUser($order);
2022-07-04 16:33:49 +02:00
return $ret;
}
/**
* @param Order $order
2022-07-27 09:27:59 +02:00
* @param string $subject
*
* @return bool
* @throws ContainerExceptionInterface
* @throws NotFoundExceptionInterface
2023-01-15 22:24:49 +01:00
* @throws Exception
*/
public function sendSendedNowMail($order, $subject = null)
{
2023-01-09 22:17:30 +01:00
// $ret = parent::sendSendedNowMail($order, $subject);
2023-01-10 23:33:48 +01:00
/** @var bool $ret */
2023-01-09 22:17:30 +01:00
$ret = $this->d3CallMockableFunction([EmailCore_parent::class, 'sendSendedNowMail'], [$order, $subject]);
$this->d3SendedNowMessage($order);
return $ret;
}
2022-07-04 16:33:49 +02:00
/**
* @param Order $order
*
2022-07-27 09:27:59 +02:00
* @return void
* @throws ContainerExceptionInterface
* @throws NotFoundExceptionInterface
* @throws Exception
2022-07-04 16:33:49 +02:00
*/
2022-07-27 09:27:59 +02:00
public function d3SendOrderFinishedMessageToUser(Order $order): void
2022-07-04 16:33:49 +02:00
{
2023-01-10 23:33:48 +01:00
/** @var MessageSender $messageSender */
2023-01-09 22:17:30 +01:00
$messageSender = d3GetOxidDIC()->get(MessageSender::class);
$messageSender->sendOrderFinishedMessage($order, $this->d3GetOrderFinishedSmsMessageBody($order));
2022-07-04 16:33:49 +02:00
}
/**
* @param Order $order
*
* @return string
* @throws ContainerExceptionInterface
* @throws NotFoundExceptionInterface
2022-07-04 16:33:49 +02:00
*/
protected function d3GetOrderFinishedSmsMessageBody(Order $order): string
2022-07-04 16:33:49 +02:00
{
$renderer = $this->d3GetTplRenderer();
$this->setViewData("order", $order);
return $renderer->renderTemplate($this->d3OrderCustSmsTemplate, $this->getViewData());
2022-07-04 16:33:49 +02:00
}
/**
* @param Order $order
*
2022-07-27 09:27:59 +02:00
* @return void
* @throws ContainerExceptionInterface
* @throws NotFoundExceptionInterface
* @throws Exception
*/
2022-07-27 09:27:59 +02:00
public function d3SendedNowMessage(Order $order): void
{
2023-01-10 23:33:48 +01:00
/** @var MessageSender $messageSender */
2023-01-09 22:17:30 +01:00
$messageSender = d3GetOxidDIC()->get(MessageSender::class);
$messageSender->sendSendedNowMessage($order, $this->d3GetSendedNowSmsMessageBody($order));
}
/**
* @param Order $order
*
* @return string
* @throws ContainerExceptionInterface
* @throws NotFoundExceptionInterface
*/
protected function d3GetSendedNowSmsMessageBody(Order $order): string
{
$renderer = $this->d3GetTplRenderer();
$this->setViewData("order", $order);
return $renderer->renderTemplate($this->d3OrderSendedNowSmsTemplate, $this->getViewData());
}
/**
2022-07-27 09:27:59 +02:00
* @param Order $order
*
2022-07-27 09:27:59 +02:00
* @return void
* @throws ContainerExceptionInterface
* @throws NotFoundExceptionInterface
* @throws Exception
*/
2022-07-27 09:27:59 +02:00
public function d3SendCancelMessage(Order $order): void
{
2023-01-10 23:33:48 +01:00
/** @var MessageSender $messageSender */
2023-01-09 22:17:30 +01:00
$messageSender = d3GetOxidDIC()->get(MessageSender::class);
$messageSender->sendCancelOrderMessage($order, $this->d3GetCancelOrderSmsMessageBody($order));
}
/**
* @param Order $order
*
* @return string
* @throws ContainerExceptionInterface
* @throws NotFoundExceptionInterface
*/
protected function d3GetCancelOrderSmsMessageBody(Order $order): string
{
$renderer = $this->d3GetTplRenderer();
$this->setViewData("order", $order);
return $renderer->renderTemplate($this->d3OrderCanceledSmsTemplate, $this->getViewData());
}
2022-07-04 16:33:49 +02:00
/**
* Templating instance getter
*
* @return TemplateRendererInterface
* @throws ContainerExceptionInterface
* @throws NotFoundExceptionInterface
2022-07-04 16:33:49 +02:00
*/
2022-07-13 13:23:48 +02:00
protected function d3GetTplRenderer(): TemplateRendererInterface
2022-07-04 16:33:49 +02:00
{
2022-07-27 09:27:59 +02:00
/** @var TemplateRendererBridgeInterface $bridge */
2022-07-12 16:06:19 +02:00
$bridge = ContainerFactory::getInstance()->getContainer()
->get(TemplateRendererBridgeInterface::class);
2022-07-04 16:33:49 +02:00
$bridge->setEngine($this->_getSmarty());
return $bridge->getTemplateRenderer();
}
2022-07-13 13:23:48 +02:00
}