b374k
m1n1 1.01
Apache/2.4.41 (Ubuntu)
Linux vmi616275.contaboserver.net 5.4.0-84-generic #94-Ubuntu SMP Thu Aug 26 20:27:37 UTC 2021 x86_64
uid=33(www-data) gid=33(www-data) groups=33(www-data)
server ip : 62.171.164.128 | your ip : 127.0.0.1
safemode OFF
 >  / home / a / home / dev2.destoffenstraat.com / app / code / Makarovsoft / Email / Helper /
Filename/home/a/home/dev2.destoffenstraat.com/app/code/Makarovsoft/Email/Helper/Provider.php
Size3.79 kb
Permissionrwxrwxrwx
Ownerroot : root
Create time21-Aug-2025 12:26
Last modified14-May-2021 15:19
Last accessed23-Aug-2025 03:15
Actionsedit | rename | delete | download (gzip)
Viewtext | code | image
<?php

namespace Makarovsoft\Email\Helper;

use Magento\Framework\App\Config\ScopeConfigInterface;
use Magento\Framework\App\TemplateTypesInterface;
use Magento\Sales\Api\OrderStatusHistoryRepositoryInterface;
use Magento\Sales\Model\Order\Status\HistoryFactory;
use Makarovsoft\Email\Model\Message;

class Provider {

protected $scopeConfig;

protected $logger;

protected $transportBuilder;
protected $inlineTranslation;
protected $storeManager;

/**
* @var Message
*/
protected $message;

/**
* @var HistoryFactory
*/
private $historyFactory;

/**
* @var OrderStatusHistoryRepositoryInterface
*/
private $historyRepository;

public function __construct(
ScopeConfigInterface $scopeConfig,
\Psr\Log\LoggerInterface $logger,
\Magento\Framework\Mail\Template\TransportBuilder $transportBuilder,
\Magento\Framework\Translate\Inline\StateInterface $inlineTranslation,
\Magento\Store\Model\StoreManagerInterface $storeManager,
HistoryFactory $historyFactory,
OrderStatusHistoryRepositoryInterface $historyRepository
) {
$this->scopeConfig = $scopeConfig;
$this->logger = $logger;
$this->inlineTranslation = $inlineTranslation;
$this->transportBuilder = $transportBuilder;
$this->storeManager = $storeManager;
$this->historyFactory = $historyFactory;
$this->historyRepository = $historyRepository;
}

/**
* @param Message $message
* @return $this
*/
public function setMessage(Message $message) {
$this->message = $message;
return $this;
}

/**
* @return $this
*/
public function send() {
/* Send email to store owner */
/*$writer = new \Zend\Log\Writer\Stream(BP . '/var/log/afterSave.log');
$logger = new \Zend\Log\Logger();
$logger->addWriter($writer);
$logger->log(1, "==========Send=============");
$logger->log(1, $this->message->getSubject());
$logger->log(1, $this->message->getBody());*/

$storeScope = \Magento\Store\Model\ScopeInterface::SCOPE_STORE;

$from = $this->scopeConfig->getValue('makarovsoft_email/general/from', $storeScope);
if ($from == '') {
$from = $this->storeManager->getStore()->getName();
}

$email = $this->scopeConfig->getValue('makarovsoft_email/general/email', $storeScope);
if ($email == '') {
$email = $this->scopeConfig->getValue('trans_email/ident_general/email', $storeScope);
}

$transport = $this->transportBuilder
->setTemplateIdentifier($this->scopeConfig->getValue('makarovsoft_email/general/template', $storeScope))
->setTemplateOptions(
[
'area' => \Magento\Framework\App\Area::AREA_FRONTEND,
'store' => $this->storeManager->getStore()->getId(),
'type' => TemplateTypesInterface::TYPE_HTML,

]
)
->setTemplateVars(['message' => $this->message])
->setFrom([
'name' => $from,
'email' => $email,
]);

$transport->addTo($this->message->getTo());

$transport = $transport->getTransport();

$transport->sendMessage();

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$status = $objectManager->create("Magento\Sales\Model\Order")->load($this->message->getOrderId())->getStatus();
// $history = $objectManager->create("Magento\Sales\Model\Order\Status\HistoryFactory")->create();
$history = $this->historyFactory->create();
$message = $this->message->getBody();
// $status = 'pending';
$history->setParentId($this->message->getOrderId())
->setComment($message)
->setIsCustomerNotified(1)
->setEntityName('order')
->setStatus($status);
try {
// $objectManager->create("Magento\Sales\Api\OrderStatusHistoryRepositoryInterface")->save($history);
$this->historyRepository->save($history);
} catch (Exception $exception) {
$this->logger->critical($exception->getMessage());
}

return true;
}
}