magento2-docker/app/code/IpSupply/CustomerComplain/Block/Widget/CustomerComplainWidget.php

77 lines
3.3 KiB
PHP
Executable File

<?php
namespace IpSupply\CustomerComplain\Block\Widget;
use Magento\Framework\View\Element\Template;
use Magento\Widget\Block\BlockInterface;
use Magento\Framework\View\Element\Template\Context;
use Magento\Framework\App\ObjectManager;
use Magento\Framework\Translate\Inline\StateInterface;
use Magento\Framework\Escaper;
use Magento\Framework\Mail\Template\TransportBuilder;
use Magento\Framework\UrlInterface;
use Magento\Framework\Message\ManagerInterface;
class CustomerComplainWidget extends Template implements BlockInterface {
protected $_objectManager;
protected $_escaper;
protected $_inlineTranslation;
protected $_transportBuilder;
protected $_urlInterface;
protected $_messageManager;
public function __construct(Escaper $escaper, StateInterface $inlineTranslation, TransportBuilder $transportBuilder, UrlInterface $urlInterface, ManagerInterface $messageManager, Context $context, array $data = []) {
$this->_objectManager = ObjectManager::getInstance();
$this->_escaper = $escaper;
$this->_inlineTranslation = $inlineTranslation;
$this->_transportBuilder = $transportBuilder;
$this->_urlInterface = $urlInterface;
$this->_messageManager = $messageManager;
parent::__construct($context, $data);
}
public function execute() {
$data = $this->getRequest()->getPostValue();
if(!empty($data)) {
$scopeConfig = $this->_objectManager->create('\Magento\Framework\App\Config\ScopeConfigInterface');
$email_contact = $scopeConfig->getValue('trans_email/ident_general/email',\Magento\Store\Model\ScopeInterface::SCOPE_STORE);
$this->_inlineTranslation->suspend();
$sender = [
"name" => $this->_escaper->escapeHtml($data["fullname"]),
"email" => $this->_escaper->escapeHtml($data["email"])
];
$transport = $this->_transportBuilder
->setTemplateIdentifier('email_asset_complain_template')
->setTemplateOptions(
[
'area' => \Magento\Framework\App\Area::AREA_FRONTEND,
'store' => \Magento\Store\Model\Store::DEFAULT_STORE_ID,
]
)
->setTemplateVars([
'title' => $this->getData("complain_title"),
'gender' => $data["gender"],
'fullname' => $data["fullname"],
'email' => $data["email"],
'phone' => $data["phone"],
'company' => $data["company"],
'invoice' => $data['invoice'],
'article' => $data['article'],
'customer_number' => $data['customer_number'],
'reason' => $data['reason'],
'opinion' => $data["opinion"]
])
->setFrom($sender)
->addTo($email_contact)
->getTransport();
$transport->sendMessage();
$this->_inlineTranslation->resume();
$this->_messageManager->addSuccess(__("Thanks you. We'll respond to you very soon."));
}
}
function getAssetUrl($asset) {
$assetRepository = $this->_objectManager->get('Magento\Framework\View\Asset\Repository');
return $assetRepository->createAsset($asset)->getUrl();
}
}