2015-06-05 4 views
1

Я хочу упомянуть первый очень похожий вопрос, который я уже нашел здесь, но ответ, предложенный там, я сделал, но все же его не работает, поэтому я размещаю свою проблему здесь.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» Произошла непредвиденная ошибка

+0

Не могли бы вы 'var_dump ($ to, $ subject, $ message, $ headers) 'в разделе else и отредактируйте вывод этого вопроса в свой вопрос? – Siguza

+0

Работал отлично в моем местном. –

+0

@ Сигуза Я сделал, как вы сказали. Отредактировал вопрос –

ответ

0

изменение этой линии

$headers = "From: $name <$email>" . "\r\n"; 

в

$headers = "From: " . $name . " <" . $email. ">" . "\r\n"; 

может быть, у вас есть какие незаменяемые данные в $ имени

+0

Я попробовал. Все еще не работает. –

0

Как есть указать свое output.I думаете, что ваш заголовок имел ошибку Просто удалите или комментировать заголовок. Затем он отправит почту на вашу почту.

// $ headers = "От: $ name". "\ Г \ п"; Спасибо.

0

Сначала проверьте, работает ли ваш почтовый сервер правильно или нет. Вы можете установить Easy SMTP почтовый плагин Download From Here. Попробуйте отправить пробную почту.

0

Используйте только идентификатор почты администратора блога, который регистрируется при создании блога в wordpress. пример: *

** если ваше имя блога example.com затем использовать ваш почтовый идентификатор, как [email protected]*

**

Смежные вопросы