Я хочу упомянуть первый очень похожий вопрос, который я уже нашел здесь, но ответ, предложенный там, я сделал, но все же его не работает, поэтому я размещаю свою проблему здесь.Mail не отправлен в wordpress
<?php
/**
* Plugin Name: GCI Contact Form
* Plugin URI: http://www.example.com
* Description: A Simple Plugin To Implement Contact Form into your WordPress Site
* Version: 0.0.1
* Author: Parnasree Chowdhury
* Author URI: http://www.example.com
* License: GPL2
*/
function html_form_code() {
echo '<form method="post" action="' . esc_url($_SERVER['REQUEST_URI']) . '">';
echo '<fieldset>';
echo '<input type="text" name="cf-name" value="' .esc_attr(isset($_POST["cf-name"]) ? $_POST["cf-name"] : '') . '" placeholder="Name*" class="form-control form-dark" required/>';
echo '<input type="email" name="cf-email" value="' . esc_attr(isset($_POST["cf-email"]) ? $_POST["cf-email"] : '') . '" placeholder="Email*" class="form-control form-dark" required/>';
echo '<textarea rows="6" name="cf-message" placeholder="Message*" class="form-control form-dark" required>' . esc_attr(isset($_POST["cf-message"]) ? $_POST["cf-message"] : '') . '</textarea>';
echo '<input name="cf-submitted" class="btn btn-border border-white" type="submit" value="Submit" />';
//echo '<input type="hidden" name="action" value="gci_deliver_mail" />';
echo '<div class="loading"></div>';
echo '</fieldset>';
echo '</form>';
}
function gci_deliver_mail() {
// if the submit button is clicked, send the email
if (isset($_POST['cf-submitted'])) {
// sanitize form values
$name = sanitize_text_field($_POST["cf-name"]);
$email = sanitize_email($_POST["cf-email"]) ;
$subject = "Enquiry message submitted from iceindia";
$message = esc_textarea($_POST["cf-message"]);
// get the blog administrator's email address
$to = '[email protected]';
$headers = "From: $name <$email>" . "\r\n";
// If email has been process for sending, display a success message
if (wp_mail($to, $subject, $message, $headers)) {
echo '<div>';
echo '<p>Thanks for contacting me, expect a response soon.</p>';
echo '</div>';
} else {
echo 'An unexpected error occurred';
}
}
}
function cf_shortcode() {
ob_start();
gci_deliver_mail();
html_form_code();
return ob_get_clean();
}
add_shortcode('gci_contact_form', 'cf_shortcode');
?>
Вышесказанное - это код моего контактного модуля. я использовал короткий код первой страницы моей темы как следующие: ->
<div class="contact-form">
<?php echo do_shortcode('[gci_contact_form]');?>
</div>
Он работал отлично и форма контакта становится появился в первой странице моей темы, как это должно быть, и даже форма получения представляется , но почта не отправляется, она вызывает ошибку, то есть повторяет ошибку в другой части функции gci_deliver_mail().
Вот скриншот, где ошибка происходя -> http://tinyurl.com/omcp7zz Заранее спасибо
я добавил следующую строку в еще части: ->
var_dump($to, $subject, $message, $headers);
теперь выход:
строка (23) «[email protected]» строка (39) «Сообщение, отправленное из iceindia» string (4) «test» string (27) «From: par» Произошла непредвиденная ошибка
Не могли бы вы 'var_dump ($ to, $ subject, $ message, $ headers) 'в разделе else и отредактируйте вывод этого вопроса в свой вопрос? – Siguza
Работал отлично в моем местном. –
@ Сигуза Я сделал, как вы сказали. Отредактировал вопрос –