Ich baue eine Reihe von Formen Shortcodes in Wordpress. Ich habe es aufgegeben, das Formularverarbeitungs-Skript in einen Shortcode umzuwandeln und werde es nur für alle Seiten verfügbar machen.PHP Echo in Wordpress Shortcode
Es gibt jedoch ein Echo, das die Antwort des Formulars ausgibt, das ich in seinen eigenen Shortcode einfügen möchte.
<?php echo $response; ?>
Dies muss oben im Formular angezeigt werden, damit Validierungsmeldungen an der richtigen Stelle angezeigt werden.
Gesamtformularverarbeitungscode:
<?php
//response generation function
$response = "";
//function to generate response
function my_contact_form_generate_response($type, $message){
global $response;
if($type == "success") $response = "<div class='callout success'><p>{$message}</p></div>";
else $response = "<div class='callout error'><p>{$message}</p></div>";
}
// response messages
$not_human = "Please fill out the human verification field to prove you are not a spam robot. A number 2 will do the job nicely.";
$missing_content = "It looks like we are missing something. Please chek the form below.";
$email_invalid = "That email Address doesn't look quite right.";
$message_unsent = "Your message wasn't sent. Please have another go. If it still doesn't work then please call us using the number supplied.";
$message_sent = "Thank you for your enquiry. We will be in contact shortly.";
// user posted variables
$business_name = $_POST['message_business_name'];
$first_name = $_POST['message_first_name'];
$last_name = $_POST['message_last_name'];
$email = $_POST['message_email'];
$phone = $_POST['message_phone'];
$human = $_POST['message_human'];
$location = $_POST['location'];
$message_opt_in = $_POST['message_opt_in'];
$optin = "";
if ($message_opt_in == "on"){
$optin = "The user has opted in to marketing emails";
}
else {
$optin = "!!!!!!!!!!!!!!!!!!!!!!\n\n The user has NOT opted in to marketing emails! \n\n!!!!!!!!!!!!!!!!!!!!!!\n\n";
}
$body = "$optin \n\n\n\n This message was sent from xxx.com $location\n\nBusiness name: $business_name \nName: $first_name \nName: $last_name \nEmail: $email \nPhone: $phone";
//php mailer variables
$to ="[email protected]";
$subject = "Someone sent a message from ".get_bloginfo('name');
$headers = 'From: '. $email . "\r\n" .
'Reply-To: ' . $email . "\r\n";
if(!$human == 0){
if($human != 2) my_contact_form_generate_response("error", $not_human); //not human!
else {
//validate email
if(!filter_var($email, FILTER_VALIDATE_EMAIL))
my_contact_form_generate_response("error", $email_invalid);
else //email is valid
{
//validate presence of name and message
if(empty($business_name) || empty($first_name) || empty($email)){
my_contact_form_generate_response("error", $missing_content);
}
else //ready to go!
{
$sent = wp_mail($to, $subject, strip_tags($body), $headers);
if($sent) my_contact_form_generate_response("success", $message_sent); //message sent!
else my_contact_form_generate_response("error", $message_unsent); //message wasn't sent
}
}
}
}
else if ($_POST['submitted']) my_contact_form_generate_response("error", $missing_content);
?>
<?php echo $response; ?>
Ich habe unter anderem versucht, die wahrscheinlich ein PHP-Entwickler zum Lachen bringen würde.
function form_response(){
echo $response;
}
function form_response(){
echo '<?php echo "$response"; ?>';
}
Haftungsausschluss Ich bin kein PHP-Entwickler, wie Sie wahrscheinlich sagen können.
ich dies den Shortcode Bit versucht anzurufen, ohne dabei aber es hat nicht auch die Ausgabe etwas würde dies noch nicht in einer Funktion arbeitet durch einen Shortcode gezogen? –
In shortcode müssen Sie return verwenden. Nicht echo bro –
So zu übersetzen ... ... sonst if ($ _POST ['eingereicht']) { $ response = 'Einige Dinge'; Echo $ Antwort; my_contact_form_generate_response ("error", $ missing_content); } > Dann wird die Short Funktion Funktion form_response() { return $ Antwort?; } Ich etwas fehlt, wie die Seite jetzt unter dem Formularteil leer ist. Ich verstehe auch nicht, warum Sie $ response auf eine zufällige Zeichenfolge setzen würden? –