web-dev-qa-db-fra.com

Comment récupérer l'email de l'expéditeur avec wp_mail ()?

J'ai ce code simple suivant:

<?php
//if "email" variable is filled out, send email
if (isset($_POST['email']))  {
    //Email information
    $to = get_option( 'admin_email' );
    $headers = $_POST['email'];
    $subject = $_POST['subject'];
    $message = $_POST['message'];

    //send email
    wp_mail($to, $subject, $message, $headers);

    //Email response
    echo "Thank you for contacting us!";
}

    //if "email" variable is not filled out, display the form
    else  {
?>
<form method="post">
    Email: <input name="email" type="text" /><br />
    Subject: <input name="subject" type="text" /><br />
    Message:<br />
    <textarea name="message" rows="15" cols="40"></textarea><br />
    <input type="submit" value="Submit" />
 </form>

<?php
  }
?>

Ma question est de savoir comment récupérer le courrier électronique de l'expéditeur au lieu du wp_mail() généré à partir de $ header wordpress@$sitename?

Merci d'avance pour votre aide.

1
LebCit

J'ai appris uncher (temps)leçon.
La prochaine fois que je souhaiterai définir un formulaire de contact, jefirstvérifierai la configuration spécifique des serveurs hôtes concernant les paramètres de messagerie!
Merci à Steve North , j’ai bien compris que mon hôte n’autorisait pasdirect custom $ headerspour des raisons de sécurité ...
Mais, je pense que chaque hôte décent a des solutions pour ses clients.
Donc, si vous êtes sur Nom pas cher (c'est mon cas), vous pouvez vous référer à cet article Comment configurer le formulaire de contact hébergé chez nous

J'espère que cela aidera les autres. SYA :)

0
LebCit

Vous ne définissez pas l'adresse de départ.

Vous pouvez faire ce qui suit:

<?php
//if "email" variable is filled out, send email
if (isset($_POST['email']))  {
    //Email information
    $to = get_option( 'admin_email' );
    $headers = array('From:'.$_POST['email']);
    $subject = $_POST['subject'];
    $message = $_POST['message'];

    //send email
    wp_mail($to, $subject, $message, $headers);

    //Email response
    echo "Thank you for contacting us!";
}

    //if "email" variable is not filled out, display the form
    else  {
?>
<form method="post">
    Email: <input name="email" type="text" /><br />
    Subject: <input name="subject" type="text" /><br />
    Message:<br />
    <textarea name="message" rows="15" cols="40"></textarea><br />
    <input type="submit" value="Submit" />
 </form>

Comme vous pouvez le constater, l’en-tête $ utilise un tableau contenant le texte "De:" pour définir l’en-tête de.

J'espère que cela pourra aider.

0
Steve North