Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enhancement - Formularios web - Plantilla personalizada de email para usuario asignado #135

Open
wants to merge 11 commits into
base: develop
Choose a base branch
from

Conversation

ainaraRT
Copy link
Collaborator

@ainaraRT ainaraRT commented Feb 22, 2024

Desarrollo del issue
Al enviar un formulario web se quiere que el usuario asignado reciba un email personalizado y no el genérico de los formularios web. Por ello, se implementa un input que recoja dicha plantilla personalizada y envíe el email al usuario.

Solución implementada:
Se ha añadido una función que recoge el input de custom_assigned_email_template, en caso de que exista en el formulario, y envía un email de la plantilla personalizada al usuario asignado.

Pruebas

  1. Crear una plantilla personalizada.
  2. Crear un formulario web de captación de fondos o de eventos.
  3. Si se quiere mostrar ambas informaciones, la persona del formulario como la del CRM, se deberá de añadir las siguientes variables en la plantilla:
  • CRM: $contact_Campo
  • Formulario: $form_contact_Campo
  • CRM: $account_Campo
  • Formulario: $form_account_Campo
    1. Si un formulario recibe documentos, se deberá de añadir en la plantilla de email lo siguiente si se desea mostrar el enlace al documento: index.php?action=DetailView&module=Documents&record=$document_id
  1. Añadir en el HTML del formulario la siguiente línea de input <input type="hidden" name="custom_assigned_email_template" value=""/> pasando el valor del id de la plantilla personalizada.

  2. Comprobar que al enviar el formulario, el usuario asignado haya recibido el email personalizado y no el genérico.

@ainaraRT ainaraRT added enhancement New feature or request Formularios web labels Feb 22, 2024
@ainaraRT ainaraRT self-assigned this Feb 22, 2024
Copy link

github-actions bot commented Feb 22, 2024

Actions executed at: 2024-03-07 09:58:22.

// Parse the template
$GLOBALS['log']->debug('Line ' . __LINE__ . ': ' . __METHOD__ . ": Parsing template [{$templateId}]...");

if (false === parent::parseEmailTemplateById($templateId, $replacementObjects, $account, $lang)) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Esta invocación no tiene los mismos parámetros que la definición de la función. Además para invocar la función, si no es que estamos sobre-escribiendo la función en la clase y queremos llamar a la de la clase padre, no se usa el parent::, si no $this->

@enricsinergia
Copy link
Collaborator

Intentando seguir el código, me ha parecido que en Donaciones se acaba llamando la función parseEmailTemplate pasando un Contact en el campo Account (línea 264 de DonationMailer) cuando la donación la hace una persona física (coges un replacementObjects[0] que contiene un contact si es un formulario de donaciones de particular.

Además en esa función se está accediendo a un objeto $contact, que no está inicializado ni se recibe cómo parámetro.

Creo que haría un paso atrás, intentaría mantener la función como estaba
protected function parseEmailTemplate($template, $replacementObjects, $lang)
que ya debería permitir parsear le enviemos contact, account o ambos, y revisaría el camino de llamadas. Creo que no necesitas pasar el $account de manera especial.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request Formularios web
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Mejora - Formularios web - Habilitar plantilla personalizada de email para usuario asignado
3 participants