Estás leyendo la publicación: Cómo aprobar automáticamente la revisión del producto para clientes registrados en Magento 2
espacio de nombres Meetanshi\CustomModule\Observer;
use Magento\Framework\Event\Observer;
use Magento\Framework\Event\ObserverInterface;
use Magento\Review\Model\Review;
clase ReviewApproveBefore implementa ObserverInterface
{
sesión privada de $cliente;
$solicitud privada;
privado $transportBuilder;
privado $storeManager;
función pública __construir(
\Magento\Cliente\Modelo\Sesión $sesióncliente,
\Magento\Framework\Aplicación\Solicitud\Http $solicitud,
\Magento\Framework\Correo\Plantilla\TransportBuilder $transportBuilder,
\Magento\Tienda\Modelo\StoreManagerInterface $storeManager
){
$this->customerSession = $customerSession;
$esta->solicitud = $solicitud;
$this->transportBuilder = $transportBuilder;
$this->storeManager = $storeManager;
}
función pública ejecutar (Observador $ observador)
{
if($this->customerSession->isLoggedIn()) {
$revisión = $observador->getDataByKey(‘objeto’);
$revisión->setStatusId(Revisión::ESTADO_APROBADO); // establece el estado de aprobación
intentar {
$tienda = $this->storeManager->getStore()->getId();
$transport = $this->transportBuilder->setTemplateIdentifier(‘meetanshi_review_template’) // obtener la identificación de plantilla de email_template.xml
->establecerOpcionesPlantilla([‘area’ => ‘frontend’, ‘store’ => $store])
->establecerVarsPlantilla(
[
‘store’ => $this->storeManager->getStore(),
‘var1’ => $this->customerSession->getCustomerData()->getFirstname(), //var1 variable used in review.html
]
)
->establecerDesde(‘general’)
// puede configurar la dirección de correo electrónico general en Tienda -> Configuración -> General -> Direcciones de correo electrónico de la tienda
->addTo($this->customerSession->getCustomerData()->getEmail(), $this->customerSession->getCustomerData()->getFirstname())
->obtenerTransporte();
$transporte->enviarMensaje();
}atrapar (\Excepción $e){
}
}
}
}