Files
piratepoet/lib/DynamicSegments/DynamicSegmentHooks.php
Jan Jakeš 54549ff037 Convert variable names to camel case
[MAILPOET-1796]
2020-01-14 15:22:42 +01:00

87 lines
2.9 KiB
PHP

<?php
namespace MailPoet\DynamicSegments;
use MailPoet\DynamicSegments\FreePluginConnectors\AddToNewslettersSegments;
use MailPoet\DynamicSegments\FreePluginConnectors\AddToSubscribersFilters;
use MailPoet\DynamicSegments\FreePluginConnectors\SendingNewslettersSubscribersFinder;
use MailPoet\DynamicSegments\FreePluginConnectors\SubscribersBulkActionHandler;
use MailPoet\DynamicSegments\FreePluginConnectors\SubscribersListingsHandlerFactory;
use MailPoet\DynamicSegments\Mappers\DBMapper;
use MailPoet\DynamicSegments\Persistence\Loading\Loader;
use MailPoet\DynamicSegments\Persistence\Loading\SingleSegmentLoader;
use MailPoet\DynamicSegments\Persistence\Loading\SubscribersCount;
use MailPoet\DynamicSegments\Persistence\Loading\SubscribersIds;
use MailPoet\WP\Functions as WPFunctions;
class DynamicSegmentHooks {
/** @var WPFunctions */
private $wp;
public function __construct(WPFunctions $wp) {
$this->wp = $wp;
}
public function init() {
$this->wp->addAction(
'mailpoet_segments_with_subscriber_count',
[$this, 'addSegmentsWithSubscribersCount']
);
$this->wp->addAction(
'mailpoet_get_subscribers_in_segment_finders',
[$this, 'getSubscribersInSegmentsFinders']
);
$this->wp->addAction(
'mailpoet_get_subscribers_listings_in_segment_handlers',
[$this, 'getSubscribersListingsInSegmentsHandlers']
);
$this->wp->addAction(
'mailpoet_subscribers_listings_filters_segments',
[$this, 'addDynamicFiltersToSubscribersListingsFilters']
);
$this->wp->addAction(
'mailpoet_subscribers_in_segment_apply_bulk_action_handlers',
[$this, 'applySubscriberBulkAction']
);
$this->wp->addAction(
'mailpoet_get_segment_filters',
[$this, 'getSegmentFilters']
);
}
public function addSegmentsWithSubscribersCount($initialSegments) {
$newslettersAddSegments = new AddToNewslettersSegments(new Loader(new DBMapper()), new SubscribersCount());
return $newslettersAddSegments->add($initialSegments);
}
public function getSubscribersInSegmentsFinders(array $finders) {
$finders[] = new SendingNewslettersSubscribersFinder(new SingleSegmentLoader(new DBMapper()), new SubscribersIds());
return $finders;
}
public function getSubscribersListingsInSegmentsHandlers(array $handlers) {
$handlers[] = new SubscribersListingsHandlerFactory();
return $handlers;
}
public function addDynamicFiltersToSubscribersListingsFilters($segmentFilters) {
$newslettersAddSegments = new AddToSubscribersFilters(new Loader(new DBMapper()), new SubscribersCount());
return $newslettersAddSegments->add($segmentFilters);
}
public function applySubscriberBulkAction(array $handlers) {
$handlers[] = new SubscribersBulkActionHandler();
return $handlers;
}
public function getSegmentFilters($segmentId) {
$singleSegmentLoader = new SingleSegmentLoader(new DBMapper());
return $singleSegmentLoader->load($segmentId)->getFilters();
}
}