Your IP : 216.73.216.95


Current Path : /var/www/html/wp-content/plugins/mailpoet/lib/Migrations/
Upload File :
Current File : /var/www/html/wp-content/plugins/mailpoet/lib/Migrations/Migration_20221124_131445.php

<?php declare(strict_types = 1);

namespace MailPoet\Migrations;

if (!defined('ABSPATH')) exit;


use MailPoet\Entities\SegmentEntity;
use MailPoet\Migrator\Migration;
use MailPoet\Settings\SettingsController;
use MailPoetVendor\Doctrine\DBAL\Connection;

class Migration_20221124_131445 extends Migration {
  public function run(): void {
    $segmentsTable = $this->getTableName(SegmentEntity::class);
    $columnName = 'display_in_manage_subscription_page';

    if ($this->columnExists($segmentsTable, $columnName)) {
      return;
    }

    $this->connection->executeStatement("
      ALTER TABLE {$segmentsTable}
      ADD {$columnName} tinyint(1) NOT NULL DEFAULT 0
    ");

    $settings = $this->container->get(SettingsController::class);
    $segmentIds = $settings->get('subscription.segments', []);
    if ($segmentIds) {
      // display only segments from settings.subscription.segments
      $this->connection->executeStatement("
        UPDATE {$segmentsTable}
        SET {$columnName} = 1
        WHERE id IN (?)
      ", [$segmentIds], [Connection::PARAM_INT_ARRAY]);

      $settings->set('subscription.segments', []);
    } else {
      $this->connection->executeStatement("
        UPDATE {$segmentsTable}
        SET {$columnName} = 1
        WHERE type = ?
      ", [SegmentEntity::TYPE_DEFAULT]);
    }
  }
}