diff --git a/lib/API/JSON/v1/Newsletters.php b/lib/API/JSON/v1/Newsletters.php index 49dd471024..9e307eee65 100644 --- a/lib/API/JSON/v1/Newsletters.php +++ b/lib/API/JSON/v1/Newsletters.php @@ -8,7 +8,6 @@ use MailPoet\API\JSON\Error as APIError; use MailPoet\Config\AccessControl; use MailPoet\Cron\CronHelper; use MailPoet\Cron\Workers\SendingQueue\Tasks\Newsletter as NewsletterQueueTask; -use MailPoet\Features\FeaturesController; use MailPoet\Listing; use MailPoet\Models\Newsletter; use MailPoet\Models\NewsletterOption; @@ -45,9 +44,6 @@ class Newsletters extends APIEndpoint { /** @var SettingsController */ private $settings; - /** @var FeaturesController */ - private $features_controller; - /** @var AuthorizedEmailsController */ private $authorized_emails_controller; @@ -61,7 +57,6 @@ class Newsletters extends APIEndpoint { WPFunctions $wp, WCHelper $woocommerce_helper, SettingsController $settings, - FeaturesController $features_controller, AuthorizedEmailsController $authorized_emails_controller ) { $this->bulk_action = $bulk_action; @@ -69,7 +64,6 @@ class Newsletters extends APIEndpoint { $this->wp = $wp; $this->woocommerce_helper = $woocommerce_helper; $this->settings = $settings; - $this->features_controller = $features_controller; $this->authorized_emails_controller = $authorized_emails_controller; } @@ -106,7 +100,7 @@ class Newsletters extends APIEndpoint { ->withOptions() ->withSendingQueue() ->withTotalSent() - ->withStatistics($this->woocommerce_helper, $this->features_controller); + ->withStatistics($this->woocommerce_helper); $preview_url = NewsletterUrl::getViewInBrowserUrl( NewsletterUrl::TYPE_LISTING_EDITOR, @@ -483,13 +477,13 @@ class Newsletters extends APIEndpoint { $newsletter ->withSegments(true) ->withSendingQueue() - ->withStatistics($this->woocommerce_helper, $this->features_controller); + ->withStatistics($this->woocommerce_helper); } else if ($newsletter->type === Newsletter::TYPE_WELCOME || $newsletter->type === Newsletter::TYPE_AUTOMATIC) { $newsletter ->withOptions() ->withTotalSent() ->withScheduledToBeSent() - ->withStatistics($this->woocommerce_helper, $this->features_controller); + ->withStatistics($this->woocommerce_helper); } else if ($newsletter->type === Newsletter::TYPE_NOTIFICATION) { $newsletter ->withOptions() @@ -499,7 +493,7 @@ class Newsletters extends APIEndpoint { $newsletter ->withSegments(true) ->withSendingQueue() - ->withStatistics($this->woocommerce_helper, $this->features_controller); + ->withStatistics($this->woocommerce_helper); } if ($newsletter->status === Newsletter::STATUS_SENT || diff --git a/lib/AdminPages/Pages/RevenueTrackingPermission.php b/lib/AdminPages/Pages/RevenueTrackingPermission.php index af81d268b7..aa512bad4c 100644 --- a/lib/AdminPages/Pages/RevenueTrackingPermission.php +++ b/lib/AdminPages/Pages/RevenueTrackingPermission.php @@ -4,7 +4,6 @@ namespace MailPoet\AdminPages\Pages; use MailPoet\AdminPages\PageRenderer; use MailPoet\Config\Menu; -use MailPoet\Features\FeaturesController; use MailPoet\WP\Functions as WPFunctions; if (!defined('ABSPATH')) exit; @@ -16,23 +15,15 @@ class RevenueTrackingPermission { /** @var WPFunctions */ private $wp; - /** @var FeaturesController */ - private $features_controller; - function __construct( PageRenderer $page_renderer, - WPFunctions $wp, - FeaturesController $features_controller + WPFunctions $wp ) { $this->page_renderer = $page_renderer; $this->wp = $wp; - $this->features_controller = $features_controller; } function render() { - if (!$this->features_controller->isSupported(FeaturesController::FEATURE_DISPLAY_WOOCOMMERCE_REVENUES)) { - return; - } if ((bool)(defined('DOING_AJAX') && DOING_AJAX)) return; $data = [ 'finish_wizard_url' => $this->wp->adminUrl('admin.php?page=' . Menu::MAIN_PAGE_SLUG), diff --git a/lib/AdminPages/Pages/Settings.php b/lib/AdminPages/Pages/Settings.php index ac880d2b05..190022dd92 100644 --- a/lib/AdminPages/Pages/Settings.php +++ b/lib/AdminPages/Pages/Settings.php @@ -6,7 +6,6 @@ use MailPoet\AdminPages\PageRenderer; use MailPoet\Config\Installer; use MailPoet\Config\ServicesChecker; use MailPoet\Cron\CronTrigger; -use MailPoet\Features\FeaturesController; use MailPoet\Models\Segment; use MailPoet\Models\Subscriber; use MailPoet\Services\Bridge; @@ -40,9 +39,6 @@ class Settings { /** @var Captcha */ private $captcha; - /** @var FeaturesController */ - private $features_controller; - /** @var Installation */ private $installation; @@ -52,7 +48,6 @@ class Settings { WooCommerceHelper $woocommerce_helper, WPFunctions $wp, ServicesChecker $services_checker, - FeaturesController $features_controller, Installation $installation, Captcha $captcha ) { @@ -61,7 +56,6 @@ class Settings { $this->woocommerce_helper = $woocommerce_helper; $this->wp = $wp; $this->services_checker = $services_checker; - $this->features_controller = $features_controller; $this->installation = $installation; $this->captcha = $captcha; } @@ -89,7 +83,6 @@ class Settings { 'current_user' => $this->wp->wpGetCurrentUser(), 'linux_cron_path' => dirname(dirname(__DIR__)), 'is_woocommerce_active' => $this->woocommerce_helper->isWooCommerceActive(), - 'display_revenues' => $this->features_controller->isSupported(FeaturesController::FEATURE_DISPLAY_WOOCOMMERCE_REVENUES), 'ABSPATH' => ABSPATH, 'hosts' => [ 'web' => Hosts::getWebHosts(), diff --git a/lib/Config/Changelog.php b/lib/Config/Changelog.php index b0ce560649..1a8317a804 100644 --- a/lib/Config/Changelog.php +++ b/lib/Config/Changelog.php @@ -2,7 +2,6 @@ namespace MailPoet\Config; -use MailPoet\Features\FeaturesController; use MailPoet\Settings\SettingsController; use MailPoet\Util\Url; use MailPoet\WooCommerce\Helper; @@ -21,21 +20,16 @@ class Changelog { /** @var Url */ private $url_helper; - /** @var FeaturesController */ - private $features_controller; - function __construct( SettingsController $settings, WPFunctions $wp, Helper $wooCommerceHelper, - Url $url_helper, - FeaturesController $features_controller + Url $url_helper ) { $this->wooCommerceHelper = $wooCommerceHelper; $this->settings = $settings; $this->wp = $wp; $this->url_helper = $url_helper; - $this->features_controller = $features_controller; } function init() { @@ -69,9 +63,7 @@ class Changelog { $this->checkWelcomeWizard(); } $this->checkWooCommerceListImportPage(); - if ($this->features_controller->isSupported(FeaturesController::FEATURE_DISPLAY_WOOCOMMERCE_REVENUES)) { - $this->checkRevenueTrackingPermissionPage(); - } + $this->checkRevenueTrackingPermissionPage(); } private function checkMp2Migration($version) { diff --git a/lib/Cron/Workers/StatsNotifications/Worker.php b/lib/Cron/Workers/StatsNotifications/Worker.php index 6d04f52c32..bab7bd6633 100644 --- a/lib/Cron/Workers/StatsNotifications/Worker.php +++ b/lib/Cron/Workers/StatsNotifications/Worker.php @@ -5,7 +5,6 @@ namespace MailPoet\Cron\Workers\StatsNotifications; use Carbon\Carbon; use MailPoet\Config\Renderer; use MailPoet\Cron\CronHelper; -use MailPoet\Features\FeaturesController; use MailPoet\Mailer\Mailer; use MailPoet\Models\Newsletter; use MailPoet\Models\NewsletterLink; @@ -33,9 +32,6 @@ class Worker { /** @var SettingsController */ private $settings; - /** @var FeaturesController */ - private $features_controller; - /** @var WCHelper */ private $woocommerce_helper; @@ -43,7 +39,6 @@ class Worker { Mailer $mailer, Renderer $renderer, SettingsController $settings, - FeaturesController $features_controller, WCHelper $woocommerce_helper, $timer = false ) { @@ -51,7 +46,6 @@ class Worker { $this->renderer = $renderer; $this->mailer = $mailer; $this->settings = $settings; - $this->features_controller = $features_controller; $this->woocommerce_helper = $woocommerce_helper; } @@ -109,7 +103,7 @@ class Worker { return $newsletter ->withSendingQueue() ->withTotalSent() - ->withStatistics($this->woocommerce_helper, $this->features_controller); + ->withStatistics($this->woocommerce_helper); } /** diff --git a/lib/Cron/Workers/WooCommerceOrders.php b/lib/Cron/Workers/WooCommerceOrders.php index 0a3cca7ab9..8b5ea50e81 100644 --- a/lib/Cron/Workers/WooCommerceOrders.php +++ b/lib/Cron/Workers/WooCommerceOrders.php @@ -2,7 +2,6 @@ namespace MailPoet\Cron\Workers; use Carbon\Carbon; -use MailPoet\Features\FeaturesController; use MailPoet\Models\ScheduledTask; use MailPoet\Models\StatisticsClicks; use MailPoet\Statistics\Track\WooCommercePurchases; @@ -21,25 +20,17 @@ class WooCommerceOrders extends SimpleWorker { /** @var WooCommercePurchases */ private $woocommerce_purchases; - /** @var FeaturesController */ - private $features_controller; - function __construct( WCHelper $woocommerce_helper, WooCommercePurchases $woocommerce_purchases, - FeaturesController $features_controller, $timer = false ) { $this->woocommerce_helper = $woocommerce_helper; $this->woocommerce_purchases = $woocommerce_purchases; - $this->features_controller = $features_controller; parent::__construct($timer); } function checkProcessingRequirements() { - if (!$this->features_controller->isSupported(FeaturesController::FEATURE_DISPLAY_WOOCOMMERCE_REVENUES)) { - return false; - } return $this->woocommerce_helper->isWooCommerceActive() && empty(self::getCompletedTasks()); // run only once } diff --git a/lib/Cron/Workers/WorkersFactory.php b/lib/Cron/Workers/WorkersFactory.php index e780313948..499b9f0214 100644 --- a/lib/Cron/Workers/WorkersFactory.php +++ b/lib/Cron/Workers/WorkersFactory.php @@ -14,7 +14,6 @@ use MailPoet\Cron\Workers\KeyCheck\PremiumKeyCheck as PremiumKeyCheckWorker; use MailPoet\Cron\Workers\KeyCheck\SendingServiceKeyCheck as SendingServiceKeyCheckWorker; use MailPoet\Cron\Workers\WooCommerceSync as WooCommerceSyncWorker; use MailPoet\Cron\Workers\SendingQueue\SendingErrorHandler; -use MailPoet\Features\FeaturesController; use MailPoet\Segments\SubscribersFinder; use MailPoet\Segments\WooCommerce as WooCommerceSegment; use MailPoet\Services\AuthorizedEmailsController; @@ -39,9 +38,6 @@ class WorkersFactory { /** @var SettingsController */ private $settings; - /** @var FeaturesController */ - private $features_controller; - /** @var WooCommerceSegment */ private $woocommerce_segment; @@ -71,7 +67,6 @@ class WorkersFactory { Mailer $mailer, Renderer $renderer, SettingsController $settings, - FeaturesController $features_controller, WooCommerceSegment $woocommerce_segment, InactiveSubscribersController $inactive_subscribers_controller, WooCommerceHelper $woocommerce_helper, @@ -84,7 +79,6 @@ class WorkersFactory { $this->mailer = $mailer; $this->renderer = $renderer; $this->settings = $settings; - $this->features_controller = $features_controller; $this->woocommerce_segment = $woocommerce_segment; $this->inactive_subscribers_controller = $inactive_subscribers_controller; $this->woocommerce_helper = $woocommerce_helper; @@ -105,7 +99,7 @@ class WorkersFactory { /** @return StatsNotificationsWorker */ function createStatsNotificationsWorker($timer) { - return new StatsNotificationsWorker($this->mailer, $this->renderer, $this->settings, $this->features_controller, $this->woocommerce_helper, $timer); + return new StatsNotificationsWorker($this->mailer, $this->renderer, $this->settings, $this->woocommerce_helper, $timer); } /** @return StatsNotificationsWorkerForAutomatedEmails */ @@ -160,6 +154,6 @@ class WorkersFactory { /** @return WooCommerceOrders */ function createWooCommerceOrdersWorker($timer) { - return new WooCommerceOrders($this->woocommerce_helper, $this->woocommerce_purchases, $this->features_controller, $timer); + return new WooCommerceOrders($this->woocommerce_helper, $this->woocommerce_purchases, $timer); } } diff --git a/lib/Features/FeaturesController.php b/lib/Features/FeaturesController.php index 68e3a34286..4eb515ea18 100644 --- a/lib/Features/FeaturesController.php +++ b/lib/Features/FeaturesController.php @@ -8,12 +8,10 @@ class FeaturesController { // Define features below in the following form: // const FEATURE_NAME_OF_FEATURE = 'name-of-feature'; - const FEATURE_DISPLAY_WOOCOMMERCE_REVENUES = 'display-woocommerce-revenues'; // may also have 'display_revenues' setting // Define feature defaults in the array below in the following form: // self::FEATURE_NAME_OF_FEATURE => true, private $defaults = [ - self::FEATURE_DISPLAY_WOOCOMMERCE_REVENUES => false, ]; /** @var array */ diff --git a/lib/Models/Newsletter.php b/lib/Models/Newsletter.php index 26545a364d..fa7f321967 100644 --- a/lib/Models/Newsletter.php +++ b/lib/Models/Newsletter.php @@ -1,7 +1,6 @@ getStatistics($woocommerce_helper, $features_controller); + function withStatistics(WCHelper $woocommerce_helper) { + $statistics = $this->getStatistics($woocommerce_helper); $this->statistics = $statistics; return $this; } @@ -571,7 +570,7 @@ class Newsletter extends Model { return $renderer->render(); } - function getStatistics(WCHelper $woocommerce_helper, FeaturesController $features_controller) { + function getStatistics(WCHelper $woocommerce_helper) { if (($this->type !== self::TYPE_WELCOME) && ($this->queue === false)) { return false; } @@ -600,10 +599,7 @@ class Newsletter extends Model { } // WooCommerce revenues - if ( - $features_controller->isSupported(FeaturesController::FEATURE_DISPLAY_WOOCOMMERCE_REVENUES) - && $woocommerce_helper->isWooCommerceActive() - ) { + if ($woocommerce_helper->isWooCommerceActive()) { $currency = $woocommerce_helper->getWoocommerceCurrency(); $row = StatisticsWooCommercePurchases::selectExpr('SUM(order_price_total) AS total') ->selectExpr('count(*)', 'count') diff --git a/tests/acceptance/FreePlanAnnouncementCest.php b/tests/acceptance/FreePlanAnnouncementCest.php index b4c8722b5a..d97f4189ff 100644 --- a/tests/acceptance/FreePlanAnnouncementCest.php +++ b/tests/acceptance/FreePlanAnnouncementCest.php @@ -2,7 +2,6 @@ namespace MailPoet\Test\Acceptance; - class FreePlanAnnouncementCest { const NOTICE_SELECTOR = '[data-automation-id="free-plan-announcement"]'; diff --git a/tests/acceptance/NewsletterStatisticsCest.php b/tests/acceptance/NewsletterStatisticsCest.php index 8ebfbfb180..80fc81986d 100644 --- a/tests/acceptance/NewsletterStatisticsCest.php +++ b/tests/acceptance/NewsletterStatisticsCest.php @@ -2,8 +2,6 @@ namespace MailPoet\Test\Acceptance; -use MailPoet\Features\FeaturesController; -use MailPoet\Test\DataFactories\Features; use MailPoet\Test\DataFactories\Newsletter; use MailPoet\Test\DataFactories\NewsletterLink; use MailPoet\Test\DataFactories\Settings; @@ -17,17 +15,12 @@ class NewsletterStatisticsCest { /** @var Settings */ private $settings; - /** @var Features */ - private $features; - - protected function _inject(Settings $settings, Features $features) { + protected function _inject(Settings $settings) { $this->settings = $settings; - $this->features = $features; } function _before(\AcceptanceTester $I) { $I->activateWooCommerce(); - $this->features->withFeatureEnabled(FeaturesController::FEATURE_DISPLAY_WOOCOMMERCE_REVENUES); $this->settings->withWooCommerceListImportPageDisplayed(true); $this->settings->withCookieRevenueTrackingDisabled(); } diff --git a/tests/acceptance/RevenueTrackingCookieCest.php b/tests/acceptance/RevenueTrackingCookieCest.php index c5e9c79a38..b2916d92d4 100644 --- a/tests/acceptance/RevenueTrackingCookieCest.php +++ b/tests/acceptance/RevenueTrackingCookieCest.php @@ -3,12 +3,9 @@ namespace MailPoet\Test\Acceptance; use Codeception\Util\Locator; -use MailPoet\Features\FeaturesController; -use MailPoet\Test\DataFactories\Features; use MailPoet\Test\DataFactories\Newsletter; use MailPoet\Test\DataFactories\Settings; -require_once __DIR__ . '/../DataFactories/Features.php'; require_once __DIR__ . '/../DataFactories/Newsletter.php'; require_once __DIR__ . '/../DataFactories/Settings.php'; @@ -17,17 +14,12 @@ class RevenueTrackingCookieCest { /** @var Settings */ private $settings; - /** @var Features */ - private $features; - - protected function _inject(Settings $settings, Features $features) { + protected function _inject(Settings $settings) { $this->settings = $settings; - $this->features = $features; } function _before(\AcceptanceTester $I) { $I->activateWooCommerce(); - $this->features->withFeatureEnabled(FeaturesController::FEATURE_DISPLAY_WOOCOMMERCE_REVENUES); } function _after(\AcceptanceTester $I) { diff --git a/tests/integration/API/JSON/v1/NewslettersTest.php b/tests/integration/API/JSON/v1/NewslettersTest.php index 4e8f6deb88..81f9e0530b 100644 --- a/tests/integration/API/JSON/v1/NewslettersTest.php +++ b/tests/integration/API/JSON/v1/NewslettersTest.php @@ -8,7 +8,6 @@ use Codeception\Util\Fixtures; use Codeception\Util\Stub; use Helper\WordPressHooks as WPHooksHelper; use MailPoet\API\JSON\Response as APIResponse; -use MailPoet\Features\FeaturesController; use MailPoet\Listing\BulkActionController; use MailPoet\Listing\Handler; use MailPoet\API\JSON\v1\Newsletters; @@ -127,7 +126,6 @@ class NewslettersTest extends \MailPoetTest { $wp, $this->makeEmpty(WCHelper::class), new SettingsController(), - new FeaturesController(), $this->make(AuthorizedEmailsController::class, ['onNewsletterUpdate' => Expected::never()]) ); $response = $this->endpoint->get(['id' => $this->newsletter->id]); @@ -168,7 +166,6 @@ class NewslettersTest extends \MailPoetTest { $wp, $this->makeEmpty(WCHelper::class), new SettingsController(), - new FeaturesController(), $this->make(AuthorizedEmailsController::class, ['onNewsletterUpdate' => Expected::once()]) ); @@ -536,7 +533,6 @@ class NewslettersTest extends \MailPoetTest { $wp, $this->makeEmpty(WCHelper::class), new SettingsController(), - new FeaturesController(), $this->make(AuthorizedEmailsController::class, ['onNewsletterUpdate' => Expected::never()]) ); diff --git a/tests/integration/Cron/Workers/StatsNotifications/WorkerTest.php b/tests/integration/Cron/Workers/StatsNotifications/WorkerTest.php index 86b381a521..60c307e677 100644 --- a/tests/integration/Cron/Workers/StatsNotifications/WorkerTest.php +++ b/tests/integration/Cron/Workers/StatsNotifications/WorkerTest.php @@ -3,7 +3,6 @@ namespace MailPoet\Cron\Workers\StatsNotifications; use MailPoet\Config\Renderer; -use MailPoet\Features\FeaturesController; use MailPoet\Mailer\Mailer; use MailPoet\Models\Newsletter; use MailPoet\Models\NewsletterLink; @@ -46,7 +45,7 @@ class WorkerTest extends \MailPoetTest { $this->mailer = $this->createMock(Mailer::class); $this->renderer = $this->createMock(Renderer::class); $this->settings = new SettingsController(); - $this->stats_notifications = new Worker($this->mailer, $this->renderer, $this->settings, new FeaturesController(), $this->makeEmpty(WCHelper::class)); + $this->stats_notifications = new Worker($this->mailer, $this->renderer, $this->settings, $this->makeEmpty(WCHelper::class)); $this->settings->set(Worker::SETTINGS_KEY, [ 'enabled' => true, 'address' => 'email@example.com', diff --git a/tests/integration/Cron/Workers/WooCommerceOrdersTest.php b/tests/integration/Cron/Workers/WooCommerceOrdersTest.php index 404d159245..80828bf92c 100644 --- a/tests/integration/Cron/Workers/WooCommerceOrdersTest.php +++ b/tests/integration/Cron/Workers/WooCommerceOrdersTest.php @@ -4,8 +4,6 @@ namespace MailPoet\Test\Cron\Workers; use DateTime; use MailPoet\Cron\Workers\WooCommerceOrders; -use MailPoet\Features\FeaturesController; -use MailPoet\Models\FeatureFlag; use MailPoet\Models\ScheduledTask; use MailPoet\Models\StatisticsClicks; use MailPoet\Statistics\Track\WooCommercePurchases; @@ -26,11 +24,7 @@ class WooCommerceOrdersTest extends \MailPoetTest { $this->woocommerce_helper = $this->createMock(WooCommerceHelper::class); $this->woocommerce_purchases = $this->createMock(WooCommercePurchases::class); - FeatureFlag::createOrUpdate([ - 'name' => FeaturesController::FEATURE_DISPLAY_WOOCOMMERCE_REVENUES, - 'value' => true, - ]); - $this->worker = new WooCommerceOrders($this->woocommerce_helper, $this->woocommerce_purchases, new FeaturesController(), microtime(true)); + $this->worker = new WooCommerceOrders($this->woocommerce_helper, $this->woocommerce_purchases, microtime(true)); } function testItDoesNotRunIfWooCommerceIsDisabled() { @@ -146,7 +140,6 @@ class WooCommerceOrdersTest extends \MailPoetTest { } private function cleanup() { - \ORM::raw_execute('TRUNCATE ' . FeatureFlag::$_table); \ORM::raw_execute('TRUNCATE ' . ScheduledTask::$_table); \ORM::raw_execute('TRUNCATE ' . StatisticsClicks::$_table); } diff --git a/tests/integration/Models/NewsletterTest.php b/tests/integration/Models/NewsletterTest.php index 520acea197..a1258cf243 100644 --- a/tests/integration/Models/NewsletterTest.php +++ b/tests/integration/Models/NewsletterTest.php @@ -2,7 +2,6 @@ namespace MailPoet\Test\Models; use Carbon\Carbon; -use MailPoet\Features\FeaturesController; use MailPoet\Models\Newsletter; use MailPoet\Models\Segment; use MailPoet\Models\Subscriber; @@ -171,7 +170,7 @@ class NewsletterTest extends \MailPoetTest { $unsubscribes->save(); $newsletter->queue = $newsletter->getQueue()->asArray(); - $statistics = $newsletter->getStatistics($this->makeEmpty(WCHelper::class), new FeaturesController()); + $statistics = $newsletter->getStatistics($this->makeEmpty(WCHelper::class)); expect($statistics['opened'])->equals(1); expect($statistics['clicked'])->equals(1); expect($statistics['unsubscribed'])->equals(1); diff --git a/views/settings/woocommerce.html b/views/settings/woocommerce.html index 51ba958f95..8e49a6fcf7 100644 --- a/views/settings/woocommerce.html +++ b/views/settings/woocommerce.html @@ -80,33 +80,31 @@

- <% if display_revenues %> - - - -

- <%= _x('If you enable this option, MailPoet will use browser cookies for more precise WooCommerce tracking. This is practical for abandoned cart emails for example.', 'Browser cookies are data created by websites and stored in visitors web browser') %> -

- - -

- checked="checked"<% endif %> - > - -

- - - <% endif %> + + + +

+ <%= _x('If you enable this option, MailPoet will use browser cookies for more precise WooCommerce tracking. This is practical for abandoned cart emails for example.', 'Browser cookies are data created by websites and stored in visitors web browser') %> +

+ + +

+ checked="checked"<% endif %> + > + +

+ +