Me gustaría configurar dinámicamente el destinatario del correo electrónico de un formulario de contacto wpcf7.
El proceso paso a paso del recorrido del usuario es el siguiente:
El sitio web proporciona múltiples servicios legales. Un usuario ingresa a una de estas páginas de servicio y dentro de cada página de servicio hay un elemento que genera un bucle para un tipo de publicación personalizada llamada 'Abogado'. Cada abogado que presta este servicio se muestra en una cuadrícula.
El usuario hace clic en una llamada a la acción sobre el abogado que desea contactar.
Esto desencadena una ventana emergente (estoy usando el complemento Popup Maker) Esta ventana emergente contiene un formulario wpcf7 simple con entradas como nombre, correo electrónico, mensaje, etc. El usuario completa el formulario y envía el formulario de contacto.
Quiero que la entrada del formulario de contacto se envíe por correo electrónico al abogado en el que hizo clic el usuario.
Mi enfoque ha sido hacer que todos los abogados de contacto llamen a la acción y recorrerlos. Cada una de estas llamadas a la acción tiene un atributo de identificación de datos con la identificación posterior del solicitante correspondiente.
const solicitorContactBtns = document.querySelectorAll('.cta'); solicitorContactBtns.forEach(solicitorContactBtn => { solicitorContactBtn.addEventListener('click', () => { // Was planning on getting the data-id attribute (post-id) and somehow setting the recipient email to the 'email' custom field of this post-id. Not sure how to do this or if this is event possible? }); });Puedo estar usando el enfoque incorrecto, cualquier ayuda es muy apreciada.
Enfrenté exactamente el mismo problema en un proyecto reciente. La solución es hacer de cada abogado una página propia. Tal vez "/contact-solicitor-bob", por ejemplo. Útil de todos modos, ya que pueden mostrarles información personal en dicha página. Luego la parte inteligente. En esta página personal, agrega un metadato llamado (digamos) "form_recipient" y agrega su dirección de correo electrónico.
En su archivo de funciones agrega esto:
add_filter( 'wpcf7_before_send_mail', 'md_before_send_mail_function', 10, 3 ); function md_before_send_mail_function( $contact_form, $abort, $submission ) { $postId = $_POST['_wpcf7_container_post']; $formID = $_POST['_wpcf7']; $emailFromCustomField = get_post_meta($postId, "mail_recipient", true); if(!empty($emailFromCustomField)) { $properties = $contact_form->get_properties(); $properties['mail']['recipient'] = $emailFromCustomField; $contact_form->set_properties($properties); return $contact_form; }...eso es todo.