<?php namespace MailPoet\Cron\Workers; if (!defined('ABSPATH')) exit; use MailPoet\Models\ScheduledTask; use MailPoet\Settings\SettingsController; use MailPoet\WP\Functions as WPFunctions; use MailPoetVendor\Carbon\Carbon; class Beamer extends SimpleWorker { const TASK_TYPE = 'beamer'; const API_URL = 'https://api.getbeamer.com/v0'; const API_KEY = 'b_neUUX8kIYVEYZqQzSnwhmVggVLA6lT+GzDQOW7hrP38='; /** @var SettingsController */ private $settings; public function __construct( SettingsController $settings, WPFunctions $wp ) { parent::__construct($wp); $this->settings = $settings; } public function processTaskStrategy(ScheduledTask $task, $timer) { return $this->setLastAnnouncementDate(); } public function setLastAnnouncementDate() { $response = $this->wp->wpRemoteGet(self::API_URL . '/posts?published=true&maxResults=1', [ 'headers' => [ 'Beamer-Api-Key' => self::API_KEY, ], ]); $posts = $this->wp->wpRemoteRetrieveBody($response); if (empty($posts)) return false; $posts = json_decode($posts); if (empty($posts) || empty($posts[0]->date)) return false; $this->settings->set('last_announcement_date', Carbon::createFromTimeString($posts[0]->date)->getTimestamp()); return true; } public function getNextRunDate() { // once a week on a random day of the week, random time of the day $date = Carbon::createFromTimestamp($this->wp->currentTime('timestamp')); return $date ->next(Carbon::MONDAY) ->startOfDay() ->addDays(rand(0, 6)) ->addHours(rand(0, 23)) ->addMinutes(rand(0, 59)); } }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
KeyCheck | Folder | 0700 |
|
|
SendingQueue | Folder | 0700 |
|
|
StatsNotifications | Folder | 0700 |
|
|
AuthorizedSendingEmailsCheck.php | File | 888 B | 0644 |
|
Beamer.php | File | 1.61 KB | 0644 |
|
Bounce.php | File | 5.69 KB | 0644 |
|
ExportFilesCleanup.php | File | 863 B | 0644 |
|
InactiveSubscribers.php | File | 2.28 KB | 0644 |
|
Scheduler.php | File | 8.62 KB | 0644 |
|
SimpleWorker.php | File | 2.55 KB | 0644 |
|
SubscriberLinkTokens.php | File | 1.06 KB | 0644 |
|
SubscribersCountCacheRecalculation.php | File | 3.31 KB | 0644 |
|
SubscribersEngagementScore.php | File | 2.36 KB | 0644 |
|
SubscribersLastEngagement.php | File | 4.76 KB | 0644 |
|
UnsubscribeTokens.php | File | 1.67 KB | 0644 |
|
WooCommercePastOrders.php | File | 2.37 KB | 0644 |
|
WooCommerceSync.php | File | 1.01 KB | 0644 |
|
WorkersFactory.php | File | 3.96 KB | 0644 |
|
index.php | File | 0 B | 0644 |
|