From 00b0723f96a9faf66d066cea4c25af8fa038d93b Mon Sep 17 00:00:00 2001 From: Rostislav Wolny Date: Tue, 15 Mar 2022 13:59:38 +0100 Subject: [PATCH] Refactor logic for detection of translations installed from .org [MAILPOET-4144] --- mailpoet/lib/Config/TranslationUpdater.php | 3 ++- .../integration/Config/TranslationUpdaterTest.php | 11 +++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/mailpoet/lib/Config/TranslationUpdater.php b/mailpoet/lib/Config/TranslationUpdater.php index 83279ff185..7ba9f7a428 100644 --- a/mailpoet/lib/Config/TranslationUpdater.php +++ b/mailpoet/lib/Config/TranslationUpdater.php @@ -7,6 +7,7 @@ use MailPoetVendor\Carbon\CarbonImmutable; class TranslationUpdater { const API_UPDATES_BASE_URI = 'https://translate.wordpress.com/api/translations-updates/mailpoet/'; + const MAILPOET_FREE_DOT_COM_PROJECT_ID = 'MailPoet - MailPoet'; /** @var WPFunctions */ private $wpFunctions; @@ -108,7 +109,7 @@ class TranslationUpdater { foreach ($languagePacks as $languagePack) { // Check revision date if translation is already installed. if (array_key_exists($pluginName, $installedTranslations) && array_key_exists($languagePack['wp_locale'], $installedTranslations[$pluginName])) { - $installedFromWpOrg = strpos($installedTranslations[$pluginName][$languagePack['wp_locale']]['Project-Id-Version'] ?? '', 'Stable (latest release)') !== false; + $installedFromWpOrg = ($pluginName === $this->freeSlug) && ($installedTranslations[$pluginName][$languagePack['wp_locale']]['Project-Id-Version'] !== self::MAILPOET_FREE_DOT_COM_PROJECT_ID); $installedTranslationRevisionTime = new CarbonImmutable($installedTranslations[$pluginName][$languagePack['wp_locale']]['PO-Revision-Date']); $newTranslationRevisionTime = new CarbonImmutable($languagePack['last_modified']); diff --git a/mailpoet/tests/integration/Config/TranslationUpdaterTest.php b/mailpoet/tests/integration/Config/TranslationUpdaterTest.php index d71499eb90..a39219eeed 100644 --- a/mailpoet/tests/integration/Config/TranslationUpdaterTest.php +++ b/mailpoet/tests/integration/Config/TranslationUpdaterTest.php @@ -138,10 +138,16 @@ class TranslationUpdaterTest extends \MailPoetTest { 'wpGetInstalledTranslations' => function() { return [ $this->freeSlug => [ - 'fr_FR' => ['PO-Revision-Date' => '2021-10-15 05:18:35'], + 'fr_FR' => [ + 'PO-Revision-Date' => '2021-10-15 05:18:35', + 'Project-Id-Version' => 'MailPoet - MailPoet', + ], ], $this->premiumSlug => [ - 'fr_FR' => ['PO-Revision-Date' => '2021-10-15 05:18:35'], + 'fr_FR' => [ + 'PO-Revision-Date' => '2021-10-15 05:18:35', + 'Project-Id-Version' => 'MailPoet - MailPoet Premium', + ], ], ]; }, @@ -194,6 +200,7 @@ class TranslationUpdaterTest extends \MailPoetTest { ], $this->premiumSlug => [ 'fr_FR' => ['PO-Revision-Date' => '2021-10-15 05:18:35'], + 'Project-Id-Version' => 'MailPoet - MailPoet Premium', ], ]; },