diff --git a/lib/Cron/CronTrigger.php b/lib/Cron/CronTrigger.php index 698744dbc1..645f7b130e 100644 --- a/lib/Cron/CronTrigger.php +++ b/lib/Cron/CronTrigger.php @@ -8,10 +8,14 @@ class CronTrigger { /** @var SettingsController */ private $settings; + const METHOD_LINUX_CRON = 'Linux Cron'; + const METHOD_MAILPOET = 'MailPoet'; + const METHOD_WORDPRESS = 'WordPress'; + public static $available_methods = [ - 'mailpoet' => 'MailPoet', - 'wordpress' => 'WordPress', - 'linux_cron' => 'Linux Cron', + 'mailpoet' => self::METHOD_MAILPOET, + 'wordpress' => self::METHOD_WORDPRESS, + 'linux_cron' => self::METHOD_LINUX_CRON, 'none' => 'Disabled', ]; const DEFAULT_METHOD = 'WordPress'; diff --git a/mailpoet-cron.php b/mailpoet-cron.php index fa674788e4..0090037ec1 100644 --- a/mailpoet-cron.php +++ b/mailpoet-cron.php @@ -34,7 +34,16 @@ if (strpos(@ini_get('disable_functions'), 'set_time_limit') === false) { set_time_limit(0); } -$data = \MailPoet\Cron\CronHelper::createDaemon(null); $container = \MailPoet\DI\ContainerWrapper::getInstance(WP_DEBUG); + +// Check if Linux Cron method is set in plugin settings +$settings = $container->get(\MailPoet\Settings\SettingsController::class); +if ($settings->get('cron_trigger.method') !== \MailPoet\Cron\CronTrigger::METHOD_LINUX_CRON) { + echo 'MailPoet is not configured to run with Linux Cron.'; + exit(1); +} + +// Run Cron Daemon +$data = \MailPoet\Cron\CronHelper::createDaemon(null); $trigger = $container->get(\MailPoet\Cron\Daemon::class); $trigger->run($data);