Итак, учим SimpleModal Contact Form отправлять письма автору поста прямо с сайта.
Установка обычная, и думаю описывать ее не имеет смысла.
Первым делом, исправим небольшую ошибку в коде плагина, которая не позволяет локализировать плагин. Файлы локализации, *.mo и *.po не подхватываются плагином.
Локализацию берем тут http://smcf.googlecode.com/files/smcf-ru_ru.zip
Кладем файлики в \wp-content\plugins\simplemodal-contact-form-smcf\lang\
В корне плагина \wp-content\plugins\simplemodal-contact-form-smcf открываем файл smcf.php
Ищем в самом начале такие строки:
function init() { load_plugin_textdomain("smcf", false, SMCF_DIR . "/lang/");
И заменяем этот код на:
function init() { load_plugin_textdomain('smcf', false, dirname( plugin_basename(__FILE__) ) . '/lang');
После этого нормально подхватываются файлы русификации.
В этом же файле smcf.php в районе 164 строки ищем функцию function footer()
В ней находим формирование НТМЛ формы
// create the contact form HTML $output .= "<div id='smcf-content' style='display:none'>
Перед формой вставляем:
global $authordata; $mailtoautor = $authordata->user_email;
В самом низу формы перед
</form>
вставляем:
<input type='hidden' name='mailtoautor' value='" . $mailtoautor . "'>
Для наглядности полный код формы с исправлениями:
global $authordata; $mailtoautor = $authordata->user_email; // create the contact form HTML $output .= "<div id='smcf-content' style='display:none'> <div class='smcf-top'></div> <div class='smcf-content'> <h1 class='smcf-title'>" . $title . "</h1> <div class='smcf-loading' style='display:none'></div> <div class='smcf-message' style='display:none'></div> <form action='" . $url["path"] . "/smcf_data.php' style='display:none'> <label for='smcf-name'>*" . __("Name", "smcf") . ":</label> <input type='text' id='smcf-name' class='smcf-input' name='name' value='' tabindex='1001' /> <label for='smcf-email'>*" . __("Email", "smcf") . ":</label> <input type='text' id='smcf-email' class='smcf-input' name='email' value='' tabindex='1002' />"; if (get_option("smcf_form_subject") == 1) { $output .= "<label for='smcf-subject'>" . __("Subject", "smcf") . ":</label> <input type='text' id='smcf-subject' class='smcf-input' name='subject' value='' tabindex='1003' />"; } $output .= "<label for='smcf-message'>*" . __("Message", "smcf") . ":</label> <textarea id='smcf-message' class='smcf-input' name='message' cols='40' rows='4' tabindex='1004'></textarea><br/>"; if (get_option("smcf_form_cc_sender") == 1) { $output .= "<label> </label> <input type='checkbox' id='smcf-cc' name='cc' value='1' tabindex='1005' /> <span class='smcf-cc'>" . __("Send me a copy", "smcf") . "</span> <br/>"; } $output .= "<label> </label> <button type='submit' class='smcf-button smcf-send' tabindex='1006'>" . __("Send", "smcf") . "</button> <button type='submit' class='smcf-button smcf-cancel simplemodal-close' tabindex='1007'>" . __("Cancel", "smcf") . "</button> <input type='hidden' name='token' value='" . $this->token() . "'/> <input type='hidden' name='mailtoautor' value='" . $mailtoautor . "'> </form>
Открываем файл smcf_data.php
ищем в нем if ($action == «send»)
добавляем после этой строки код:
$mailtoautor = isset($_POST["mailtoautor"]) ? $_POST["mailtoautor"] : "";
Ищем:
// make sure the token matches if ($token == SimpleModalContactForm::token()) { sendEmail($name, $email, $subject, $message, $cc);
Меняем на:
// make sure the token matches if ($token == SimpleModalContactForm::token()) { sendEmail($name, $email, $subject, $message, $cc, $mailtoautor);
Ищем:
function sendEmail($name, $email, $subject, $message, $cc) { $to = get_option("smcf_to_email");
Меняем на:
function sendEmail($name, $email, $subject, $message, $cc, $mailtoautor) { $to = $mailtoautor;
Готово!. Вставляем куда хотим линк Письмо Автору
Наслаждаемся!
Код для вызова функции smcf() для использования в файлах темы, например в sidebar.php:
<?php if (function_exists('smcf')) : ?> <?php smcf(); ?> <?php endif; ?>
P.S. Не забываем, что поскольку мы внесли исправления в код плагина, при его обновлении, все изменения будут утеряны. )