2014-10-07 2 views
3

Я хочу переопределить настройки SMTP-сервера по умолчанию, предоставляемые wordpress, и вам придется использовать те же настройки SMTP в нескольких местах в плагине для отправки писем.Разработка плагинов для Wordpress: переопределить SMTP по умолчанию

новой детали SMTP сервер будет предоставляться пользователем, через форму на WP-администратора

В то время как прибегая к помощи об этом, я наткнулся на phpMailer и class-smtp.php

Возможные решения, которые я мог бы подумайте о
1. Создайте глобальный объект для класса phpmailer и используйте его по плагину
2. Переопределите настройки сервера SMTP по умолчанию Wordpress
3. Сохраните настройки, введенные пользователем в базе данных и извлекать его при создании объекта PHPmailer, где бы я ни отправлял почту.

Проблемы я столкнулся с вышеупомянутыми решениями являются ..

первого решения. Я не могу понять, как этого добиться.
2-е решение: я не смог найти какой-либо ресурс в wordpress codex, который мог бы объяснить, как переопределить настройки smtp по умолчанию.
3-е решение: недостаточно продуктивно.

Кроме того, я пытаюсь создать автономный плагин, поэтому не могу создать зависимость от любого стороннего плагина. Хотя я пробовал использовать исходный код wp-smtp, но не мог понять, как использовать одни и те же настройки в нескольких местах.

Я использую плагин Wordpress Boilerplate для Wordpress (link), чтобы создать стандартную файловую структуру плагина, поэтому, если кто-то может объяснить мне решение с использованием шаблона, было бы действительно полезно и эффективно.

правок:
я отправляю файловую структуру для лучшего понимания.
enter image description here

Это форма enter image description here

Значения формы являются успешно получены в классе-AtF-admin.php enter image description here

Мне нужно создать глобальную переменную в классе -atf-admin.php, где я буду устанавливать значения, полученные из формы, и использовать их в файлах, показанных на приведенном выше рисунке.

+0

Почему вы не можете изменить настройки SMTP Wordpress'? – Synchro

+0

Я хочу изменить настройку SMTP wordpress через мой плагин, если вы могли бы помочь мне в достижении этого, было бы очень полезно. Я не нашел другого ресурса в wordpress codex – anurag

ответ

2

Mkay, я собираюсь иметь трещины на варианте 1 (не 100% на PHPMailer наименовании, хотя)

В основном файле плагин, на основе this example code

<?php  
require_once 'phpmailer/PHPMailerAutoload.php'; 

$mail    = new PHPMailer(); 

$body    = file_get_contents('contents.html'); 

$mail->IsSMTP(); // telling the class to use SMTP 
$mail->Host  = "mail.yourdomain.com"; // SMTP server 
$mail->SMTPDebug = 2;      // enables SMTP debug information (for testing) 
              // 1 = errors and messages 
              // 2 = messages only 
$mail->SMTPAuth = true;     // enable SMTP authentication 
$mail->Host  = "mail.yourdomain.com"; // sets the SMTP server 
$mail->Port  = 26;     // set the SMTP port for the GMAIL server 
$mail->Username = "[email protected]"; // SMTP account username 
$mail->Password = "yourpassword";  // SMTP account password 

$mail->SetFrom('[email protected]', 'First Last'); 

$mail->AddReplyTo("[email protected]","First Last"); 

$mail->Subject = "PHPMailer Test Subject via smtp, basic with authentication"; 

$mail->MsgHTML($body); 

$address = "[email protected]"; 
$mail->AddAddress($address, "John Doe"); 

$mail->AddAttachment("images/phpmailer.gif");  // attachment 
$mail->AddAttachment("images/phpmailer_mini.gif"); // attachment 

if(!$mail->Send()) { 
    echo "Mailer Error: " . $mail->ErrorInfo; 
} else { 
    echo "Message sent!"; 
} 
} 

Для переменных от конечного пользователя, добавьте вышеописанный код в короткий код и, возможно, вставьте данные smtp через короткий код.например

[sendMail host="mail.yourdomain.com" port="26" username="[email protected]" password="yourpassword"]

+0

Пожалуйста, не связывайтесь со старыми документами. Я изменил ссылку, чтобы указать на текущее местоположение, и немного обновил код. – Synchro

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