Cron удаляет через некоторое время в плагине WordPress (Advance Cron Manager) - PullRequest
0 голосов
/ 08 апреля 2019

Я использую 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>';
            }

        }

    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...