PluginProbe
SMTP for SendGrid – YaySMTP / trunk
SMTP for SendGrid – YaySMTP vtrunk
trunk 1.3 1.3.1 1.4 1.5 1.5.1
smtp-sendgrid / includes / Schedule.php

Schedule.php in SMTP for SendGrid – YaySMTP trunk, at includes/Schedule.php

53 lines 1.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 namespace YaySMTPSendgrid;
3
4 defined( 'ABSPATH' ) || exit;
5
6 use YaySMTPSendgrid\Helper\Utils;
7
8 class Schedule {
9 protected static $instance = null;
10
11 public static function getInstance() {
12 if ( null == self::$instance ) {
13 self::$instance = new self();
14 self::$instance->doHooks();
15 }
16
17 return self::$instance;
18 }
19
20 private function doHooks() {
21 add_filter( 'cron_schedules', array( $this, 'datetime_custom_cron_schedule' ), 5, 1 );
22 add_action( YAY_SMTP_SENDGRID_PREFIX . '_delete_email_log_schedule_hook', array( $this, 'delete_email_log_schedule' ) );
23
24 if ( ! wp_next_scheduled( YAY_SMTP_SENDGRID_PREFIX . '_delete_email_log_schedule_hook' ) ) {
25 $timeSch = YAY_SMTP_SENDGRID_PREFIX . '_specific_delete_time';
26 wp_schedule_event( time(), $timeSch, YAY_SMTP_SENDGRID_PREFIX . '_delete_email_log_schedule_hook' );
27 }
28 }
29
30 private function __construct() {}
31
32 public function datetime_custom_cron_schedule( $schedules ) {
33 $emailLogSetting = Utils::getYaySmtpEmailLogSetting();
34 $deleteDatetimeSetting = isset( $emailLogSetting ) && isset( $emailLogSetting['email_log_delete_time'] ) ? (int) $emailLogSetting['email_log_delete_time'] : 60;
35 if ( 0 != $deleteDatetimeSetting ) {
36 $disPlayText = 'Every ' . $deleteDatetimeSetting . ' days';
37 $timeSch = YAY_SMTP_SENDGRID_PREFIX . '_specific_delete_time';
38 $schedules[ $timeSch ] = array(
39 'interval' => 86400 * $deleteDatetimeSetting, // Every 6 hours
40 'display' => __( $disPlayText ),
41 );
42 }
43
44 return $schedules;
45 }
46
47 public function delete_email_log_schedule() {
48 global $wpdb;
49 $wpdb->query( 'DELETE FROM ' . $wpdb->prefix . 'yay_smtp_sendgrid_email_logs' );
50 }
51
52 }
53