0

Wordpressのメールフォーム

こんにちは、みんな

私はこの種の電子メールフォームを多くのサイトで使用してきましたが、常に機能しています。

Wordpressサイトで使用しようとしましたが、使用できません

このアプローチがWordpressサイトで機能しない明らかな理由はありますか?

フォームが下部にあるため、連絡先ページを再読み込みしないメールフォームが必要です。

html

    <form action="#" id="contact_form">
         <input type="text" id="name" placeholder="Name:">
         <input type="text" id="email" placeholder="Email:">
         <textarea id="message" rows="8" cols="40" placeholder="Message:"></textarea>
                <input type="submit" id="submit"/>
                <div id="status">
           <p></p>
         </div>
     </form>

Jquery

      $('#submit').click(function(){    
        //
        var nameVal = $('#contact_form #name').val();
        var emailVal = $('#contact_form #email').val();
        var messageVal = $('#contact_form #message').val();
        //
        $.post('/contact_form.php', {name: nameVal, email: emailVal, message: messageVal}, function(data){
            $("#status p").html(data);
            $("#status p").show().fadeOut(3500);
            if(data.indexOf('Thank You')==0) {document.forms[0].reset();}
        });
      })

php

        $errors = array();
        $required_fields = array('name','email','message');
        foreach($required_fields as $fieldname){
            if(!isset($_POST[$fieldname]) || empty($_POST[$fieldname])){
                $errors[] = $fieldname;
            }
        }

        if(empty($errors)){
            $name_field = Trim(stripslashes($_POST['name']));
            $name = explode(' ', $name_field);
            $firstname = ucfirst($name[0]);
            $email_field = Trim(stripslashes($_POST['email']));
            $message = Trim(stripslashes($_POST['message']));
            //
            $to = "info@ttmt.org.uk";
            $subject = "Email from Website";
            $body = "From: $name_field\n E-Mail: $email_field\n Message:\n $message";
            //
            mail($to, $subject, $body);
            echo "Thank You $firstname";
        }else{
            echo "Please complete all.";
        }

- - アップデート - -

現在、その一部が機能しています。

問題の一部は、jqueryがphpを見つけられなかったことです。

wp-conntent内に「code」フォルダーを作成し、そこにphpを配置すると、jqueryは次のようになります。

    $j.post('wp-content/code/contactEngine.php', { theName:nameVal, theEmail:emailVal, theMessage:messageVal }, function(data){

これで、phpファイルから返されたデータを取得していますが、電子メールは送信されません。

これはWPでは機能しませんか

    mail($to, $subject, $body);
4

1 に答える 1

2

Wordpress内で$_POST['name']を使用することはできません。入力フィールドに他の名前を使用すると問題が修正され、最終的には「ContactForm7」Wordpressプラグインを使用してユーザーエクスペリエンスを向上させることができます:-)

于 2013-03-21T08:11:13.560 に答える