Hola @lorenapro48, @elenaauto tiene razón, modificar OrderConfirmationController.php directamente es una práctica muy arriesgada que te causará problemas con cada actualización del sistema. PrestaShop 1.7.6.4 (asumo que esa es tu versión, ya que es donde estos 'apaños' suelen ser más problemáticos) tiene hooks específicos para estos casos.
El problema principal de tu código es que initContent() no es un hook, es un método del controlador. Para integrar funcionalidades externas como el envío de encuestas, lo ideal es crear un pequeño módulo y usar un hook que se dispare en el momento adecuado, como actionValidateOrder o actionOrderHistoryAdd. Estos hooks te proporcionan objetos $order y $customer ya cargados y validados, lo cual es mucho más seguro.
Aquí tienes un ejemplo de cómo podrías registrar un hook en un módulo para enviar ese email, evitando tocar el core. Este snippet iría dentro de un archivo .php de tu propio módulo, no en un controlador del core:
public function install()
{
return parent::install() && $this->registerHook('actionValidateOrder');
}
public function hookActionValidateOrder($params)
{
if (!isset($params['order']) || !isset($params['customer'])) {
return;
}
$order = $params['order'];
Este método hookActionValidateOrder se ejecuta justo después de que un pedido ha sido validado y guardado en la base de datos, lo que lo convierte en un punto mucho más seguro y fiable para tus necesidades. Si buscas una solución ya hecha y mantenible para gestionar mypazaruvaj emails de encuesta sin tocar el código core, te recomiendo echar un vistazo al módulo dedicado que hace esto de forma profesional y te ahorra todos estos dolores de cabeza con las actualizaciones.