我在wordpress网站的一个页面上有一个表单,它用一个php文件发送邮件,该文件还可以验证表单的详细信息。
我无法理解为什么它不起作用,直到我发现如果我删除这一行:
$site_name = get_theme_mod( \'cz_pros_names_man\' );
从发送邮件并进行表单验证的php文件来看,一切都很好。
So my quetion is:是否get_theme_mod
函数假定在非模板文件的文件中工作?如果是这样的话,是什么让它不起作用:)?
This is my form:
<div class="contact_body">
<input placeholder="שם" type="text" name="name" required="required" class="clientconin first"/>
<input placeholder="משפחה" type="text" name="lastname" required="required" class="clientconin"/>
<input placeholder="מייל" type="email" name="email" required="required" class="clientconin first"/>
<input placeholder="טלפון" type="text" name="phone" maxlength="15" required="required" class="clientconin" />
<textarea placeholder="הודעה" name="message" class="textarea-field"></textarea>
<input type="hidden" name="promailto" value="<?php $thisprouserid = get_post_field( post_author, $post->ID ); $user_info = get_userdata($thisprouserid); echo $user_info->user_email; ?>">
<input type="submit" class="clietact_sbmt_btn" value="שלח" /><div class="contact_results"></div>
</div>
And this is the mail php file:
<?php
if($_POST)
{
//check if its an ajax request, exit if not
if(!isset($_SERVER[\'HTTP_X_REQUESTED_WITH\']) AND strtolower($_SERVER[\'HTTP_X_REQUESTED_WITH\']) != \'xmlhttprequest\') {
$output = json_encode(array( //create JSON data
\'type\'=>\'error\',
\'text\' => \'משהו לא בסדר, צור קשר עם האתר הראשי.\'
));
die($output); //exit script outputting json data
}
//Sanitize input data using PHP filter_var().
$site = \'פנייה מאתר\';
$site_name = get_theme_mod( \'cz_pros_names_man\' );
$user_name = filter_var($_POST["user_name"], FILTER_SANITIZE_STRING);
$user_lastname = filter_var($_POST["user_lastname"], FILTER_SANITIZE_STRING);
$user_email = filter_var($_POST["user_email"], FILTER_SANITIZE_EMAIL);
$phone_number = filter_var($_POST["phone_number"], FILTER_SANITIZE_NUMBER_INT);
$message = filter_var($_POST["msg"], FILTER_SANITIZE_STRING);
$subject = \'פניית לקוח מהכרטיס שלך\';
$to_email = filter_var($_POST["pro_mailto"], FILTER_SANITIZE_STRING);
//additional php validation
if(!filter_var($user_email, FILTER_VALIDATE_EMAIL)){ //email validation
$output = json_encode(array(\'type\'=>\'error\', \'text\' => \'כתובת המייל לא תקינה!\'));
die($output);
}
if(!filter_var($phone_number, FILTER_SANITIZE_NUMBER_FLOAT)){ //check for valid numbers in phone number field
$output = json_encode(array(\'type\'=>\'error\', \'text\' => \'מספר טלפון שגוי!\'));
die($output);
}
if(strlen($phone_number)<9){ //check emtpy message
$output = json_encode(array(\'type\'=>\'error\', \'text\' => \'מספר טלפון שגוי!\'));
die($output);
}
//email body
$message_body = "הודעה:\\r\\n\\r\\n".$message."\\r\\n\\r\\nשם : ".$user_name." ".$user_lastname."\\r\\nטלפון :".$phone_number."\\r\\n\\r\\nניתן להשיב למייל זה ישירות ללקוח!" ;
//proceed with PHP email.
$headers .= \'From: "\'.$site." ".$site_name.\'"<\'.$user_email.\'>\'."\\r\\n";
$headers .= \'Reply-To: "\'.$user_name." ".$user_lastname.\'"<\'.$user_email.\'>\'."\\r\\n";
$headers .= \'X-Mailer: PHP/\' . phpversion();
$send_mail = mail($to_email, $subject, $message_body, $headers);
if(!$send_mail)
{
//If mail couldn\'t be sent output error. Check your PHP email configuration (if it ever happens)
$output = json_encode(array(\'type\'=>\'error\', \'text\' => \'משהו לא בסדר, צור קשר עם האתר הראשי.\'));
die($output);
}else{
$output = json_encode(array(\'type\'=>\'message\', \'text\' => \'ההודעה נשלחה בהצלחה!\'));
die($output);
}
}
?>
谢谢。