1

このお問い合わせフォームをワードプレスのカスタム ページ テンプレートに追加しました。

<form id="contact_form" action="inc/mail.php" method="POST">
    <input id="name" name="name" placeholder="Name">
    <input id="email" name="email" placeholder="Email">
    <input id="phone" name="phone" placeholder="Phone Number">
    <textarea  id="comments" name="comments" placeholder="Comments / Questions"></textarea>
    <input class="button" type="submit" id="submit" value="Submit">
</form>

そして、投稿されたフォームを処理するための PHP ページを作成しました。

<?php   
// Gather form data
$name = $_POST['name'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$comments = $_POST['comments'];
$client = "";
$clientname = "";
$password = "";

if($name && $email && $comments) {

    // Create instance of PHP mailer
    require("class.phpmailer.php");
    $mail = new PHPMailer();

    $mail->IsSMTP(); 
    $mail->Host = "smtp.gmail.com"; 
    $mail->SMTPAuth = true;
    $mail->SMTPSecure = 'ssl'; // secure transfer enabled REQUIRED for GMail
    $mail->Host = 'smtp.gmail.com';
    $mail->Port = 465;
    $mail->Username = $client;
    $mail->Password = $password;

    $mail->From = $client;
    $mail->SetFrom($email, $name);
    $mail->AddAddress($client, $clientname);

    $mail->IsHTML(false);   

    $formcontent="From: \n $name \n\n Email: \n $email \n\n Phone: \n $phone \n\n Comments: \n $comments";
    $mail->Subject = "Miss Mary's Inquiry";
    $mail->Body = $formcontent;

    if(!$mail->Send()){
        echo "Message could not be sent. <p>";
        echo "Mailer Error: " . $mail->ErrorInfo;
        exit;
    }
}

?>

フォームとハンドラーは Wordpress の外では完全に機能しますが、Wordpress が PHP スクリプト (mail.php) へのアクセスを妨げていると思います。Wordpress / htaccess が干渉することなく、フォームを PHP スクリプトに投稿する方法はありますか?

ありがとう!

4

1 に答える 1

1

WordPress でメールを送信する場合は、プラグインを使用してみてください。そのためのWordPressプラグインはたくさんあります。 Conatact form 7は私が一番気に入っているものです。独自に開発することもできますが、プラグインとして作成することもできます。上記のコードをショートコード プラグインに変換できます。このリンクを確認してください

wp_mail( $to, $subject, $message, $headers, $attachments )

この関数は、通常、wordpress でメールを送信するために使用されます。

于 2013-07-01T03:48:14.323 に答える