2017-09-09 1 views
0

Ich hatte eine normale Website, die ich mit benutzerdefinierten HTML/CSS/JS erstellt habe. Ich änderte die Seite, um eine WordPress-Website zu werden (und meine benutzerdefinierte html/css/js in ein benutzerdefiniertes WordPress-Theme). Ich hatte ein Kontaktformular auf der Homepage der Seite, welches bei der Umstellung auf WordPress kaputt ging.Benutzerdefiniertes Formular in WordPress-Seite wird nicht gesendet/aktualisiert

Wenn das Formular funktionierte, würde es die Seite aktualisieren und den Benutzer zurück zum Formular bringen (unter Verwendung der Anker-ID = contactphilly) und dann würde der Benutzer eine Nachricht sehen, die bestätigt, dass seine E-Mail gesendet wurde.

Ich habe eine Menge Googeln und ich denke, es hat etwas mit der Option "Aktion" im Formular zu tun, aber egal, was ich versuche, es zu ändern, es funktioniert nicht. Ich habe folgendes für den Aktionswert versucht:

<?php the_permalink(); ?>/#contactphilly 
#contactphilly 
<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?> 
$_SERVER['REQUEST_URI'] 

Keiner von ihnen arbeitete.

Hier ist der Code für das Formular:

<?php 
     if (isset($_POST["submit"])) { 
     $name = $_POST['name']; 
     $subject = $_POST['subject']; 
     $email = $_POST['email']; 
     $message = $_POST['message']; 
     $from = 'WebKeep.com'; 
     $to = '[email protected]'; 
     $subjectemail = 'Message from WebKeepTeam.com Contact Form '; 

    $body = "From: $name\n E-Mail: $email\n Subject: $subject\n Message:\n $message"; 

     // Check if name has been entered 
     if (!$_POST['name']) { 
      $errName = 'Please enter your name'; 
     } 

    // Check if email has been entered and is valid 
    if (!$_POST['email'] || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) { 
     $errEmail = 'Please enter a valid email address'; 
    } 

    //Check if message has been entered 
    if (!$_POST['message']) { 
     $errMessage = 'Please enter your message'; 
    } 

// If there are no errors, send the email 
if (!$errName && !$errEmail && !$errMessage) { 
    if (mail ($to, $subjectemail, $body, $from)) { 
    $result='<div>Thank You! We will respond shortly.</div>'; 
    } else { 
    $result='<div>Sorry there was an error sending your message. Please try again later</div>'; 
    } 
} 
} 
?> 

und

<form name="contactform" method="post" action="#contactphilly"> 
    <div class="col-lg-6 col-md-6 col-sm-12 col-xs-12"> 

    <fieldset class="form-group"> 
    <input type="text" value="<?php echo $name;?>" class="form-control transparent-input" id="name" name="name" placeholder="Name"> 
    </fieldset> 
    <?php echo "<p class='text-danger'>$errName</p>";?> 
     <fieldset class="form-group"> 
    <input type="email" value="<?php echo $email;?>" class="form-control transparent-input" id="email" name="email" placeholder="Email"> 
    </fieldset> 
    <?php echo "<p class='text-danger'>$errEmail</p>";?> 
    <fieldset class="form-group"> 
    <input type="text" class="form-control transparent-input" value="<?php echo $subject;?>" id="subject" name="subject" placeholder="Subject"> 
    </fieldset> 
</div> 
    <div class="col-lg-6 col-md-6 col-sm-12 col-xs-12"> 
    <fieldset class="form-group"> 
    <textarea class="form-control transparent-input" id="message" value="<?php echo $message;?>" name="message" rows="6" placeholder="Message"><?php echo htmlspecialchars($_POST['message']);?></textarea> 
    </fieldset> 
    <?php echo "<p class='text-danger'>$errMessage</p>";?> 
    <input id="submit" name="submit" type="submit" value="Send" class="btn btn-index pull-right"> 
</div> 
    <?php echo $result; ?> 
</form> 
+0

Warum verwenden Sie keine Init-Aktion für die gleiche? Bist du neu in WordPress? –

+0

Was genau ist das Problem? Ist Ihr Formular nicht ausgefüllt * oder * scrollt es einfach nicht zum Anker zurück, wenn es abgeschlossen ist? Ich schlage auch vor, dass Sie nachsehen, wie Sie Formulare für Wordpress entwickeln oder ein vorhandenes Plugin verwenden - einfach einfügen in Ihrem alten HTML-Formular funktioniert nicht, da Wordpress alle veröffentlichten Variablen ignoriert, die es nicht erkennt (d. H. Die in Ihrem Formular). – FluffyKitten

+0

@FluffyKitten leitet es auf eine 404-Fehlerseite um. Ich könnte einfach aufgeben und ein Plugin verwenden - ich dachte, es wäre einfacher zu modifizieren, was ich bereits hatte, aber vielleicht nicht. Ich versuche etwas zu tun, was diese Person getan hat, aber innerhalb einer Seite statt auf einer eigenen Seite. https://premium.wpmudev.org/blog/how-to-build-your-own-wordpress-contact-form-and-why/ Und diese Person benutzt für die Aktion, die ich selbst probiert habe und es hat nicht funktioniert. – bld2104

Antwort

Verwandte Themen