Rev 1 | AutorÃa | Comparar con el anterior | Ultima modificación | Ver Log |
<?php
declare(strict_types=1);
namespace LeadersLinked\Library;
use Laminas\Db\Adapter\AdapterInterface;
use LeadersLinked\Model\EmailTemplate;
use LeadersLinked\Model\Email;
use LeadersLinked\Mapper\EmailMapper;
class QueueEmail
{
/**
*
* @var AdapterInterface
*/
private $adapter;
/**
*
* @param AdapterInterface $adapter
*/
public function __construct($adapter)
{
$this->adapter = $adapter;
}
/**
*
* @param EmailTemplate $emailTemplate
* @param array $arrayCont
* @param string $to_address
* @param string $to_name
* @return boolean
*/
public function processEmailTemplate($emailTemplate, $arrayCont, $to_address, $to_name)
{
$subject = trim(stripslashes($emailTemplate->subject));
$message = trim(stripslashes($emailTemplate->content));
foreach($arrayCont as $key => $val)
{
$message = str_replace('[' . $key .']', $val, $message);
$subject = str_replace('[' . $key .']', $val, $subject);
}
$email = new Email();
$email->content = json_encode([
'to_address' => $to_address,
'to_name' => $to_name,
'cc' => [],
'bcc' => [],
'subject' => $subject,
'message' => $message,
]);
$email->status = Email::STATUS_PENDING;
$email->tried = 0;
$emailMapper = EmailMapper::getInstance($this->adapter);
return $emailMapper->insert($email);
}
}