2016-10-21 7 views
0

Я создаю своего рода портал самообслуживания и вам нужно его реализовать на сайте wordpress. Сам портал построен в чистом php, jquery, sql и т. Д. Без использования библиотек Wordpress, на которых зиждется остальная часть основного сайта.Выполнение пользовательского php-файла из Cron, реализация Wordpress mail send

Я искал в Интернете, пытаясь найти то, что мне нужно, но я не смог найти матч.

Итак .. Что я пытаюсь сделать ..

мне нужно выполнить задание Cron каждый день в X X часов, вызвав пользовательский PHP-файл в корневом каталоге на сервере (позволяет называть его portal_reminder. php), который затем использует встроенный (или плагин?) для отправки сообщений электронной почты цели, указанной в пользовательском файле PHP.

Ой, поскольку сервер размещен на серверной площадке с использованием нескольких хостов, мне не разрешено устанавливать какие-либо «внешние» программы (sendmail), и я не могу создать пользовательские cronjob в терминале (cron -e).

Итак, мне нужен плагин wordpress cron для обработки cron, а также wordpress/other для обработки электронных писем.

Для уточнения, моя идея была следующей:

Cronjob запускает "portal_reminder.php"

Портал напоминание запускает "MailSender", в том числе $ к, $ от $ контента (HTML содержание)

"MailSender" посылает почту :)

Является ли это вообще возможно?

+0

да его возможно. Но сначала вы проверяете один тестовый код отправки почты, запущенный на вашем сервере для проверки отправки почты, поддерживается или нет –

ответ

0

Работы Cron хорошо работают с WordPress, даже если сервер cron лучше. WordPress cron вызывается, когда кто-то посещает ваш сайт WordPress.

Вот пример с новым графиком (WordPress родной графики только ежедневно, twicedaily, ежечасно):

add_filter('cron_schedules', 'wc_dsr_add_custom_cron_schedule'); 
function wc_dsr_add_custom_cron_schedule($schedules) { 
    $schedules['fourdaily'] = array(
     'interval' => 21600, // 86400s/4 
     'display' => __('Four time daily'), 
    ); 

    return $schedules; 
} 

function wc_dsr_create_daily_backup_schedule(){ 
    //Use wp_next_scheduled to check if the event is already scheduled 
    $timestamp = wp_next_scheduled('wc_dsr_cron_send_action'); 

    //If $timestamp == false schedule daily backups since it hasn't been done previously 
    if($timestamp == false){ 
     //Schedule the event for right now, then to repeat daily using the hook 'wc_create_daily_backup'   
     wp_schedule_event(time(), 'fourdaily', 'wc_dsr_cron_send_action'); 

    } 
} 

//Hook our function , wc_dsr_cron_send_action(), into the action wc_dsr_cron_send_report 
add_action('wc_dsr_cron_send_action', 'wc_dsr_cron_send_report'); 

function wc_dsr_cron_send_report(){ 
    // do your job 
    wp_mail('[email protected]', 'Subject', 'Message'); 
} 

В вашем случае, wc_dsr_cron_send_report() может включать в себя и работать с portal_reminder.php. Чтобы хорошо работать с функцией WordPress, вы должны добавить это portal_reminder.php

define('WP_USE_THEMES', false); 
require_once('pathto/wp-load.php); 

Вы сможете найти больше пример в Интернете.

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