Cambiare dinamicamente destinatario in Contact Form 7

Mattepuffo's logo
Cambiare dinamicamente destinatario in Contact Form 7

Cambiare dinamicamente destinatario in Contact Form 7

Contact Form 7 lo conosciamo tutti, in quanto plugin più utilizzato per creare form in Wordpress.

Ancora una volta mi ha stupito la sua flessibilità.

In questo articolo infatti vediamo come modificare il destinatario in base ai campi scelti.

Il tutto viene fatto intercettando l'hook wpcf7_before_send_mail dentro al functions.php:

function change_cf7_recipient($contact_form) {
  $submission = WPCF7_Submission::get_instance();
  $posted_data = $submission->get_posted_data();

  $recipient_email = 'email@email.it';

  if ($posted_data["radio-452"][0] == 'Other') {
    $recipient_email = 'email2@email2.com';
  }

  $mailProp = $contact_form->get_properties('mail');
  $mailProp['mail']['recipient'] = $recipient_email;
  $contact_form->set_properties(array('mail' => $mailProp['mail']));
}

add_action('wpcf7_before_send_mail', 'change_cf7_recipient');

In questo caso ho intercettato una input radio ($posted_data["radio-452"][0]).

Se volessimo verificare, ad esempio, un campo di testo:

function change_cf7_recipient($contact_form) {
  $submission = WPCF7_Submission::get_instance();
  $posted_data = $submission->get_posted_data();

  $recipient_email = 'email@email.it';

  if ($posted_data["your-name"] == 'Other') {
    $recipient_email = 'email2@email2.com';
  }

  $mailProp = $contact_form->get_properties('mail');
  $mailProp['mail']['recipient'] = $recipient_email;
  $contact_form->set_properties(array('mail' => $mailProp['mail']));
}

add_action('wpcf7_before_send_mail', 'change_cf7_recipient');

Enjoy!


Condividi

Commentami!