Formulaire de contact phpMyForm

Exemple de formulaire de contact généré avec le script phpMyForm.

Le formulaire est opérationnel pour test. Validation des champs avec le plugin jQuery jQuery Validation Plugin (et en PHP au cas où...).
L'envoi du mail est effectué avec la class PHPMailer.

Je ne reçois pas ce mail. Il s'agit d'un test, le mail est envoyé à l'adresse e-mail indiquée dans le champ Email A.

Pour me contacter, c'est ici

Est utilisée seulement si la case Recevoir une copie du message est cochée.

Pour test, entrer l'adresse e-mail où sera envoyé ce message.

Fichier pdf, maximum 100Ko

 
 
 

J'affiche le formulaire test_contact avec un shortcode phpmyform (qui appelle la class PhpMyForm).

[phpmyform form=test_contact]

Intégration d'un formulaire dans WordPress

Les paramètres du formulaire sont définis dans les 2 fichiers form_definition.ini et form_options.ini situés dans le dossier phpMyForm/form/test_contact.

form_options.ini :

[options]
description=Exemple de formulaire de contact
submit_message=
jquery_validate=1
button_name=Envoyer votre message
function_after=nth_send_mail
style_form="border: 1px solid #e1e1e1;border-radius: 5px;"
field_border=1px solid #e1e1e1
class_form=nth-margin-bottom
;submit_page=http://www.nonoweb.net/phpMyForm/examples/merci.html

form_definition.ini :

[nth_name]
field_type=text
label=Nom
class=pmf-regular-text
rules.required.value=1
rules.required.message=Veuillez rentrer votre nom.

[nth_email]
field_type=text
label=Email De
class=pmf-regular-text
text_bottom="<i><small>Est utilisée seulement si la case <b>Recevoir une copie du message</b> est cochée.</small></i>"
rules.required.value=1
rules.required.message=Veuillez rentrer votre email.
rules.email.value=1
rules.email.message=Rentrer un email valide.

[nth_url]
field_type=text
label=Site Web
class=pmf-regular-text
rules.url.value=1

[nth_message]
field_type=textarea
label=Message
class=pmf-regular-text
rows=5
rules.required.value=1
rules.required.message=Veuillez rentrer votre message.

[nth_email_send]
field_type=text
label=Email A
class=pmf-regular-text
text_bottom="<i><small>Pour test, entrer l'adresse e-mail où sera envoyé ce message.</small></i>"
rules.required.value=1
rules.required.message=A quelle adresse e-mail envoyer ce mail?
rules.email.value=1
rules.email.message=Rentrer un email valide.

[nth_attachment]
field_type=file
;multiple=1
label=Joindre un fichier
rules.max_file_size.value=100000
rules.accept.value=pdf
text_bottom="<i><small>Fichier pdf, maximum 100Ko</small></i>"

[nth_copy]
field_type=checkbox
text_after=Recevoir une copie du message

[nth_recaptcha]
field_type=google_recaptcha

Et pour envoyer le message, j'ai cette simple fonction de test (option function_after dans options_form.ini) que je mets dans le fichier functions.php du thème (ou du thème enfant).

function nth_send_mail($array_data, $args) {
  $from = $array_data['nth_email'];
  $subject = '[test] envoye par '.$array_data['nth_name'].' depuis nonoweb.net';
  $message = $array_data['nth_message'];
  // -----
  require(NTH_PATH_THEME.'PHPMailer/src/PHPMailer.php');
  require(NTH_PATH_THEME.'PHPMailer/src/SMTP.php');
  require(NTH_PATH_THEME.'PHPMailer/src/Exception.php');
  $mail = new PHPMailer\PHPMailer\PHPMailer();
  $mail->SetLanguage('fr',NTH_PATH_THEME.'PHPMailer/language/');
  $mail->IsHTML(true);
  $mail->CharSet = "utf-8";
  $mail->SetFrom($from, $array_data['nth_name']);
  $mail->Subject = $subject;
  $mail->Body = $message;
  $mail->AddAddress($array_data['nth_email_send']);
  if (isset($array_data['nth_copy']) && $array_data['nth_copy']) {
    $mail->AddAddress($from);
  }
  // test attachment
  if (isset($args['files'])) {
    foreach ($args['files'] as $id_file => $vvvv) {
      foreach ($args['files'][$id_file] as $attr_file) {
        if (!empty($attr_file['name']) && !empty($attr_file['tmp_name'])) {
          $mail->addAttachment($attr_file['tmp_name'], $attr_file['name']);
        }
      }
    }
  }
  // send...
  if(!$mail->Send()) {
    return showMessage('Mail error: '.$mail->ErrorInfo);
  }
  else {
    showMessage(_('Message envoyé'), 'type_msg=ok');
    return true;
  }
}

Voir la documentation générale de phpMyForm

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Sélection smileys

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.