Refactor logic for detection of translations installed from .org

[MAILPOET-4144]
This commit is contained in:
Rostislav Wolny
2022-03-15 13:59:38 +01:00
committed by Veljko V
parent fc5b25dd20
commit 00b0723f96
2 changed files with 11 additions and 3 deletions

View File

@ -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']);

View File

@ -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',
],
];
},