Я использую Advance Cron Manager в WordPress для cron, но мой cron удаляется через некоторое время, через 24-48 часов, я не могу определить причину этого.Я проверил код и вставил ниже из моего пользовательского плагина.Я использую WhatsApp chat-api, чтобы определить, есть ли новое сообщение, полученное / отправленное в WhatsApp. Я использую электронные письма для отправки сообщения WhatsApp, как только новое письмо отправлено с определенными заголовками, оно попадет под функцию ниже и отправит сообщение в WhatsApp.
Чтобы проверить это, я запланировал cron new_email_event
через каждую 1 минуту, иногда он работает нормально, но через некоторое время он удаляется через 10 минут.
Я хочу знать, это проблема с плагином илиЯ что-то упустил.
https://bracketspace.com/downloads/advanced-cron-manager-pro/
Это код, написанный в моем пользовательском плагине.
add_action('new_email_event', 'identify_new_email_received');
function identify_new_email_received() {
ini_set('display_errors', '1');
$settings = odz_get_whatsappsmtp_settings();
include(dirname(__FILE__).'/src/PhpImap/__autoload.php');
$hostname = '{imap.gmail.com:993/imap/ssl}INBOX';
$username = $settings['configured_email'];
$password = $settings['email_password'];
$mailbox = new PhpImap\Mailbox('{imap.gmail.com:993/imap/ssl}INBOX', $username, $password);
//$mailbox = new PhpImap\Mailbox('{imap.gmail.com:993/imap/ssl}INBOX', $settings['configured_email'], $settings['email_password'], __DIR__);
$since_date = date('Y-m-d',strtotime("-1 days"));
$mailsIds = $mailbox->searchMailbox('SINCE "'.$since_date.'"');
if(!$mailsIds) {
my_custom_log('No emails');
}
$email_data = array();
if(!get_site_option('wp_last_email_time')){
my_custom_log('No last email');
//whatsapp the last email
$latest_mail = count($mailsIds) -1;
$mail = $mailbox->getMail($mailsIds[$latest_mail]);
$email_data['date'] = $mail->date;
$email_data['text'] = $mail->textPlain;
$email_data['id'] = $mail->id;
$email_data['subject'] = $mail->subject;
$email_data['fromAddress'] = $mail->fromAddress;
$email_data['fromName'] = $mail->fromName;
$sender = get_sender_number($mail->textHtml);
$msg = get_sender_message($mail->textHtml);
if(!empty($msg)){
$email_data['text'] = $msg;
}
if(!empty($sender)){
$mailbox->deleteMail($mail->id);
sendWhatsappMessage($email_data,$sender);
update_site_option('wp_last_email_time',strtotime($mail->date));
}
}
else{
my_custom_log('Looping through mail ids');
foreach($mailsIds as $mail_id){
$mail = $mailbox->getMail($mail_id);
$last_email = get_site_option('wp_last_email_time');
my_custom_log('last email time');
my_custom_log($last_email);
my_custom_log('************************');
if(strtotime($mail->date) > $last_email){
$email_data = array();
$email_data['date'] = $mail->date;
$email_data['text'] = $mail->textPlain;
$email_data['id'] = $mail->id;
$email_data['subject'] = $mail->subject;
$email_data['fromAddress'] = $mail->fromAddress;
$email_data['fromName'] = $mail->fromName;
$sender = get_sender_number($mail->textHtml);
$msg = get_sender_message($mail->textHtml);
if(!empty($msg)){
$email_data['text'] = $msg;
}
if(!empty($sender)){
sendWhatsappMessage($email_data,$sender);
update_site_option('wp_last_email_time',strtotime($mail->date));
$mailbox->deleteMail($mail->id);
}
}
else{
//echo 'this email not sent. '.$mail->subject.' '.$mail->date.' '.strtotime($mail->date).'</br>';
}
}
}
}