whoami7 - Manager
:
/
home
/
dataiclx
/
vielorbe.com
/
wp-content
/
plugins
/
suremails
/
inc
/
admin
/
Upload File:
files >> //home/dataiclx/vielorbe.com/wp-content/plugins/suremails/inc/admin/crons.php
<?php /** * Crons Class * * This file contains the logic for handling Crons for the SureMails plugin. * * @package SureMails\Inc\Admin */ namespace SureMails\Inc\Admin; use SureMails\Inc\ConnectionManager; use SureMails\Inc\Controller\ContentGuard; use SureMails\Inc\Controller\Emails; use SureMails\Inc\Controller\Logger; use SureMails\Inc\Traits\Instance; if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } /** * Class Crons * * Main class for handling crons. */ class Crons { use Instance; /** * Crons initialization function. */ protected function __construct() { add_action( 'suremails_cleanup_cron', [ $this, 'delete_old_email_logs' ] ); if ( ! wp_next_scheduled( 'suremails_cleanup_cron' ) ) { wp_schedule_event( time(), 'daily', 'suremails_cleanup_cron' ); // Schedule cleanup daily. } // Add the action hook for retrying failed emails. add_action( 'suremails_retry_failed_email', [ 'SureMails\Inc\Controller\Emails', 'retry_failed_email' ], 10, 1 ); } /** * Deletes old email logs based on the configured retention period. * * @return void */ public function delete_old_email_logs() { if ( class_exists( 'SureMails\Inc\Controller\Emails' ) ) { Emails::instance()->delete_old_email_logs(); } if ( class_exists( 'SureMails\Inc\Controller\ContentGuard' ) ) { ContentGuard::flush_hashes(); } } /** * Schedules a retry for a failed email. * * @param int $log_id The log ID of the email. * * @return void */ public function schedule_retry_failed_email( int $log_id ) { if ( empty( $log_id ) || ConnectionManager::instance()->get_is_resend() ) { return; } $logger = Logger::instance(); $log_entry = $logger->get_log( $log_id ); if ( ! $log_entry ) { return; } if ( is_wp_error( $log_entry ) ) { return; } // Check if the maximum number of retries has been reached. if ( isset( $log_entry['meta'] ) && isset( $log_entry['meta']['retry'] ) && intval( $log_entry['meta']['retry'] ) >= 1 ) { return; } // Schedule the retry event after 30 minutes. wp_schedule_single_event( time() + 1800, 'suremails_retry_failed_email', [ $log_id ] ); } } // Instantiate the singleton instance of Crons. Crons::instance();
Copyright ©2021 || Defacer Indonesia