Version Description
- 2018-08-01 =
- Fixed: resolved potential duplicate sending issue.
Download this release
Release Info
| Developer | wysija |
| Plugin | |
| Version | 3.8.3 |
| Comparing to | |
| See all releases | |
Code changes from version 3.8.2 to 3.8.3
- lang/mailpoet-ca.mo +0 -0
- lang/mailpoet-da_DK.mo +0 -0
- lang/mailpoet-de_DE.mo +0 -0
- lang/mailpoet-es_ES.mo +0 -0
- lang/mailpoet-fa_IR.mo +0 -0
- lang/mailpoet-fr_CA.mo +0 -0
- lang/mailpoet-fr_FR.mo +0 -0
- lang/mailpoet-it_IT.mo +0 -0
- lang/mailpoet-ja.mo +0 -0
- lang/mailpoet-nl_NL.mo +0 -0
- lang/mailpoet-pl_PL.mo +0 -0
- lang/mailpoet-pt_BR.mo +0 -0
- lang/mailpoet-pt_PT.mo +0 -0
- lang/mailpoet-ru_RU.mo +0 -0
- lang/mailpoet-sq.mo +0 -0
- lang/mailpoet-sv_SE.mo +0 -0
- lang/mailpoet-tr_TR.mo +0 -0
- lang/mailpoet-zh_CN.mo +0 -0
- lang/mailpoet.pot +3 -3
- lib/Cron/CronHelper.php +17 -1
- lib/Cron/Daemon.php +3 -5
- mailpoet.php +2 -2
- readme.txt +4 -1
- vendor/autoload.php +1 -1
- vendor/composer/autoload_real.php +7 -7
- vendor/composer/autoload_static.php +6 -6
lang/mailpoet-ca.mo
CHANGED
|
Binary file
|
lang/mailpoet-da_DK.mo
CHANGED
|
Binary file
|
lang/mailpoet-de_DE.mo
CHANGED
|
Binary file
|
lang/mailpoet-es_ES.mo
CHANGED
|
Binary file
|
lang/mailpoet-fa_IR.mo
CHANGED
|
Binary file
|
lang/mailpoet-fr_CA.mo
CHANGED
|
Binary file
|
lang/mailpoet-fr_FR.mo
CHANGED
|
Binary file
|
lang/mailpoet-it_IT.mo
CHANGED
|
Binary file
|
lang/mailpoet-ja.mo
CHANGED
|
Binary file
|
lang/mailpoet-nl_NL.mo
CHANGED
|
Binary file
|
lang/mailpoet-pl_PL.mo
CHANGED
|
Binary file
|
lang/mailpoet-pt_BR.mo
CHANGED
|
Binary file
|
lang/mailpoet-pt_PT.mo
CHANGED
|
Binary file
|
lang/mailpoet-ru_RU.mo
CHANGED
|
Binary file
|
lang/mailpoet-sq.mo
CHANGED
|
Binary file
|
lang/mailpoet-sv_SE.mo
CHANGED
|
Binary file
|
lang/mailpoet-tr_TR.mo
CHANGED
|
Binary file
|
lang/mailpoet-zh_CN.mo
CHANGED
|
Binary file
|
lang/mailpoet.pot
CHANGED
|
@@ -4,7 +4,7 @@ msgid ""
|
|
| 4 |
msgstr ""
|
| 5 |
"Project-Id-Version: \n"
|
| 6 |
"Report-Msgid-Bugs-To: http://support.mailpoet.com/\n"
|
| 7 |
-
"POT-Creation-Date: 2018-
|
| 8 |
"MIME-Version: 1.0\n"
|
| 9 |
"Content-Type: text/plain; charset=utf-8\n"
|
| 10 |
"Content-Transfer-Encoding: 8bit\n"
|
|
@@ -1124,11 +1124,11 @@ msgstr ""
|
|
| 1124 |
msgid "Preview in a new tab"
|
| 1125 |
msgstr ""
|
| 1126 |
|
| 1127 |
-
#: lib/Cron/CronHelper.php:
|
| 1128 |
msgid "Site URL is unreachable."
|
| 1129 |
msgstr ""
|
| 1130 |
|
| 1131 |
-
#: lib/Cron/CronHelper.php:
|
| 1132 |
msgid "Maximum execution time has been reached."
|
| 1133 |
msgstr ""
|
| 1134 |
|
| 4 |
msgstr ""
|
| 5 |
"Project-Id-Version: \n"
|
| 6 |
"Report-Msgid-Bugs-To: http://support.mailpoet.com/\n"
|
| 7 |
+
"POT-Creation-Date: 2018-08-01 12:29:35+00:00\n"
|
| 8 |
"MIME-Version: 1.0\n"
|
| 9 |
"Content-Type: text/plain; charset=utf-8\n"
|
| 10 |
"Content-Transfer-Encoding: 8bit\n"
|
| 1124 |
msgid "Preview in a new tab"
|
| 1125 |
msgstr ""
|
| 1126 |
|
| 1127 |
+
#: lib/Cron/CronHelper.php:175
|
| 1128 |
msgid "Site URL is unreachable."
|
| 1129 |
msgstr ""
|
| 1130 |
|
| 1131 |
+
#: lib/Cron/CronHelper.php:181
|
| 1132 |
msgid "Maximum execution time has been reached."
|
| 1133 |
msgstr ""
|
| 1134 |
|
lib/Cron/CronHelper.php
CHANGED
|
@@ -40,6 +40,22 @@ class CronHelper {
|
|
| 40 |
return Setting::getValue(self::DAEMON_SETTING);
|
| 41 |
}
|
| 42 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 43 |
static function saveDaemon($daemon) {
|
| 44 |
$daemon['updated_at'] = time();
|
| 45 |
return Setting::setValue(
|
|
@@ -165,4 +181,4 @@ class CronHelper {
|
|
| 165 |
throw new \Exception(__('Maximum execution time has been reached.', 'mailpoet'));
|
| 166 |
}
|
| 167 |
}
|
| 168 |
-
}
|
| 40 |
return Setting::getValue(self::DAEMON_SETTING);
|
| 41 |
}
|
| 42 |
|
| 43 |
+
static function saveDaemonLastError($error) {
|
| 44 |
+
$daemon = self::getDaemon();
|
| 45 |
+
if($daemon) {
|
| 46 |
+
$daemon['last_error'] = $error;
|
| 47 |
+
self::saveDaemon($daemon);
|
| 48 |
+
}
|
| 49 |
+
}
|
| 50 |
+
|
| 51 |
+
static function saveDaemonRunCompleted($run_completed_at) {
|
| 52 |
+
$daemon = self::getDaemon();
|
| 53 |
+
if($daemon) {
|
| 54 |
+
$daemon['run_completed_at'] = $run_completed_at;
|
| 55 |
+
self::saveDaemon($daemon);
|
| 56 |
+
}
|
| 57 |
+
}
|
| 58 |
+
|
| 59 |
static function saveDaemon($daemon) {
|
| 60 |
$daemon['updated_at'] = time();
|
| 61 |
return Setting::setValue(
|
| 181 |
throw new \Exception(__('Maximum execution time has been reached.', 'mailpoet'));
|
| 182 |
}
|
| 183 |
}
|
| 184 |
+
}
|
lib/Cron/Daemon.php
CHANGED
|
@@ -61,12 +61,10 @@ class Daemon {
|
|
| 61 |
$this->executePremiumKeyCheckWorker();
|
| 62 |
$this->executeBounceWorker();
|
| 63 |
} catch(\Exception $e) {
|
| 64 |
-
$
|
| 65 |
-
CronHelper::saveDaemon($daemon);
|
| 66 |
}
|
| 67 |
// Log successful execution
|
| 68 |
-
|
| 69 |
-
CronHelper::saveDaemon($daemon);
|
| 70 |
// if workers took less time to execute than the daemon execution limit,
|
| 71 |
// pause daemon execution to ensure that daemon runs only once every X seconds
|
| 72 |
$elapsed_time = microtime(true) - $this->timer;
|
|
@@ -137,4 +135,4 @@ class Daemon {
|
|
| 137 |
$daemon['token'] !== $this->token ||
|
| 138 |
(isset($daemon['status']) && $daemon['status'] !== CronHelper::DAEMON_STATUS_ACTIVE);
|
| 139 |
}
|
| 140 |
-
}
|
| 61 |
$this->executePremiumKeyCheckWorker();
|
| 62 |
$this->executeBounceWorker();
|
| 63 |
} catch(\Exception $e) {
|
| 64 |
+
CronHelper::saveDaemonLastError($e->getMessage());
|
|
|
|
| 65 |
}
|
| 66 |
// Log successful execution
|
| 67 |
+
CronHelper::saveDaemonRunCompleted(time());
|
|
|
|
| 68 |
// if workers took less time to execute than the daemon execution limit,
|
| 69 |
// pause daemon execution to ensure that daemon runs only once every X seconds
|
| 70 |
$elapsed_time = microtime(true) - $this->timer;
|
| 135 |
$daemon['token'] !== $this->token ||
|
| 136 |
(isset($daemon['status']) && $daemon['status'] !== CronHelper::DAEMON_STATUS_ACTIVE);
|
| 137 |
}
|
| 138 |
+
}
|
mailpoet.php
CHANGED
|
@@ -4,7 +4,7 @@ if(!defined('ABSPATH')) exit;
|
|
| 4 |
|
| 5 |
/*
|
| 6 |
* Plugin Name: MailPoet 3 (New)
|
| 7 |
-
* Version: 3.8.
|
| 8 |
* Plugin URI: http://www.mailpoet.com
|
| 9 |
* Description: Create and send newsletters, post notifications and welcome emails from your WordPress.
|
| 10 |
* Author: MailPoet
|
|
@@ -18,7 +18,7 @@ if(!defined('ABSPATH')) exit;
|
|
| 18 |
*/
|
| 19 |
|
| 20 |
$mailpoet_plugin = array(
|
| 21 |
-
'version' => '3.8.
|
| 22 |
'filename' => __FILE__,
|
| 23 |
'path' => dirname(__FILE__),
|
| 24 |
'autoloader' => dirname(__FILE__) . '/vendor/autoload.php',
|
| 4 |
|
| 5 |
/*
|
| 6 |
* Plugin Name: MailPoet 3 (New)
|
| 7 |
+
* Version: 3.8.3
|
| 8 |
* Plugin URI: http://www.mailpoet.com
|
| 9 |
* Description: Create and send newsletters, post notifications and welcome emails from your WordPress.
|
| 10 |
* Author: MailPoet
|
| 18 |
*/
|
| 19 |
|
| 20 |
$mailpoet_plugin = array(
|
| 21 |
+
'version' => '3.8.3',
|
| 22 |
'filename' => __FILE__,
|
| 23 |
'path' => dirname(__FILE__),
|
| 24 |
'autoloader' => dirname(__FILE__) . '/vendor/autoload.php',
|
readme.txt
CHANGED
|
@@ -4,7 +4,7 @@ Tags: newsletter, newsletter subscribers, email, welcome email, post notificatio
|
|
| 4 |
Requires at least: 4.7
|
| 5 |
Tested up to: 4.9
|
| 6 |
Requires PHP: 5.6
|
| 7 |
-
Stable tag: 3.8.
|
| 8 |
License: GPLv3
|
| 9 |
License URI: https://www.gnu.org/licenses/gpl-3.0.html
|
| 10 |
|
|
@@ -146,6 +146,9 @@ Stop by our [support site](https://www.mailpoet.com/support).
|
|
| 146 |
|
| 147 |
== Changelog ==
|
| 148 |
|
|
|
|
|
|
|
|
|
|
| 149 |
= 3.8.2 - 2018-07-31 =
|
| 150 |
* Added: more useful sending status information in Help page.
|
| 151 |
|
| 4 |
Requires at least: 4.7
|
| 5 |
Tested up to: 4.9
|
| 6 |
Requires PHP: 5.6
|
| 7 |
+
Stable tag: 3.8.3
|
| 8 |
License: GPLv3
|
| 9 |
License URI: https://www.gnu.org/licenses/gpl-3.0.html
|
| 10 |
|
| 146 |
|
| 147 |
== Changelog ==
|
| 148 |
|
| 149 |
+
= 3.8.3 - 2018-08-01 =
|
| 150 |
+
* Fixed: resolved potential duplicate sending issue.
|
| 151 |
+
|
| 152 |
= 3.8.2 - 2018-07-31 =
|
| 153 |
* Added: more useful sending status information in Help page.
|
| 154 |
|
vendor/autoload.php
CHANGED
|
@@ -4,4 +4,4 @@
|
|
| 4 |
|
| 5 |
require_once __DIR__ . '/composer/autoload_real.php';
|
| 6 |
|
| 7 |
-
return
|
| 4 |
|
| 5 |
require_once __DIR__ . '/composer/autoload_real.php';
|
| 6 |
|
| 7 |
+
return ComposerAutoloaderInit887f2d17e39efcdc79504c61b7a29413::getLoader();
|
vendor/composer/autoload_real.php
CHANGED
|
@@ -2,7 +2,7 @@
|
|
| 2 |
|
| 3 |
// autoload_real.php @generated by Composer
|
| 4 |
|
| 5 |
-
class
|
| 6 |
{
|
| 7 |
private static $loader;
|
| 8 |
|
|
@@ -19,15 +19,15 @@ class ComposerAutoloaderInitb1f3f9f3e9c68636b51d53ce8275d19e
|
|
| 19 |
return self::$loader;
|
| 20 |
}
|
| 21 |
|
| 22 |
-
spl_autoload_register(array('
|
| 23 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
| 24 |
-
spl_autoload_unregister(array('
|
| 25 |
|
| 26 |
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
| 27 |
if ($useStaticLoader) {
|
| 28 |
require_once __DIR__ . '/autoload_static.php';
|
| 29 |
|
| 30 |
-
call_user_func(\Composer\Autoload\
|
| 31 |
} else {
|
| 32 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
| 33 |
foreach ($map as $namespace => $path) {
|
|
@@ -48,19 +48,19 @@ class ComposerAutoloaderInitb1f3f9f3e9c68636b51d53ce8275d19e
|
|
| 48 |
$loader->register(true);
|
| 49 |
|
| 50 |
if ($useStaticLoader) {
|
| 51 |
-
$includeFiles = Composer\Autoload\
|
| 52 |
} else {
|
| 53 |
$includeFiles = require __DIR__ . '/autoload_files.php';
|
| 54 |
}
|
| 55 |
foreach ($includeFiles as $fileIdentifier => $file) {
|
| 56 |
-
|
| 57 |
}
|
| 58 |
|
| 59 |
return $loader;
|
| 60 |
}
|
| 61 |
}
|
| 62 |
|
| 63 |
-
function
|
| 64 |
{
|
| 65 |
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
| 66 |
require $file;
|
| 2 |
|
| 3 |
// autoload_real.php @generated by Composer
|
| 4 |
|
| 5 |
+
class ComposerAutoloaderInit887f2d17e39efcdc79504c61b7a29413
|
| 6 |
{
|
| 7 |
private static $loader;
|
| 8 |
|
| 19 |
return self::$loader;
|
| 20 |
}
|
| 21 |
|
| 22 |
+
spl_autoload_register(array('ComposerAutoloaderInit887f2d17e39efcdc79504c61b7a29413', 'loadClassLoader'), true, true);
|
| 23 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
| 24 |
+
spl_autoload_unregister(array('ComposerAutoloaderInit887f2d17e39efcdc79504c61b7a29413', 'loadClassLoader'));
|
| 25 |
|
| 26 |
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
| 27 |
if ($useStaticLoader) {
|
| 28 |
require_once __DIR__ . '/autoload_static.php';
|
| 29 |
|
| 30 |
+
call_user_func(\Composer\Autoload\ComposerStaticInit887f2d17e39efcdc79504c61b7a29413::getInitializer($loader));
|
| 31 |
} else {
|
| 32 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
| 33 |
foreach ($map as $namespace => $path) {
|
| 48 |
$loader->register(true);
|
| 49 |
|
| 50 |
if ($useStaticLoader) {
|
| 51 |
+
$includeFiles = Composer\Autoload\ComposerStaticInit887f2d17e39efcdc79504c61b7a29413::$files;
|
| 52 |
} else {
|
| 53 |
$includeFiles = require __DIR__ . '/autoload_files.php';
|
| 54 |
}
|
| 55 |
foreach ($includeFiles as $fileIdentifier => $file) {
|
| 56 |
+
composerRequire887f2d17e39efcdc79504c61b7a29413($fileIdentifier, $file);
|
| 57 |
}
|
| 58 |
|
| 59 |
return $loader;
|
| 60 |
}
|
| 61 |
}
|
| 62 |
|
| 63 |
+
function composerRequire887f2d17e39efcdc79504c61b7a29413($fileIdentifier, $file)
|
| 64 |
{
|
| 65 |
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
| 66 |
require $file;
|
vendor/composer/autoload_static.php
CHANGED
|
@@ -4,7 +4,7 @@
|
|
| 4 |
|
| 5 |
namespace Composer\Autoload;
|
| 6 |
|
| 7 |
-
class
|
| 8 |
{
|
| 9 |
public static $files = array (
|
| 10 |
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php',
|
|
@@ -1001,11 +1001,11 @@ class ComposerStaticInitb1f3f9f3e9c68636b51d53ce8275d19e
|
|
| 1001 |
public static function getInitializer(ClassLoader $loader)
|
| 1002 |
{
|
| 1003 |
return \Closure::bind(function () use ($loader) {
|
| 1004 |
-
$loader->prefixLengthsPsr4 =
|
| 1005 |
-
$loader->prefixDirsPsr4 =
|
| 1006 |
-
$loader->fallbackDirsPsr4 =
|
| 1007 |
-
$loader->prefixesPsr0 =
|
| 1008 |
-
$loader->classMap =
|
| 1009 |
|
| 1010 |
}, null, ClassLoader::class);
|
| 1011 |
}
|
| 4 |
|
| 5 |
namespace Composer\Autoload;
|
| 6 |
|
| 7 |
+
class ComposerStaticInit887f2d17e39efcdc79504c61b7a29413
|
| 8 |
{
|
| 9 |
public static $files = array (
|
| 10 |
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php',
|
| 1001 |
public static function getInitializer(ClassLoader $loader)
|
| 1002 |
{
|
| 1003 |
return \Closure::bind(function () use ($loader) {
|
| 1004 |
+
$loader->prefixLengthsPsr4 = ComposerStaticInit887f2d17e39efcdc79504c61b7a29413::$prefixLengthsPsr4;
|
| 1005 |
+
$loader->prefixDirsPsr4 = ComposerStaticInit887f2d17e39efcdc79504c61b7a29413::$prefixDirsPsr4;
|
| 1006 |
+
$loader->fallbackDirsPsr4 = ComposerStaticInit887f2d17e39efcdc79504c61b7a29413::$fallbackDirsPsr4;
|
| 1007 |
+
$loader->prefixesPsr0 = ComposerStaticInit887f2d17e39efcdc79504c61b7a29413::$prefixesPsr0;
|
| 1008 |
+
$loader->classMap = ComposerStaticInit887f2d17e39efcdc79504c61b7a29413::$classMap;
|
| 1009 |
|
| 1010 |
}, null, ClassLoader::class);
|
| 1011 |
}
|
