Use cache oldest created at in template

[MAILPOET-3646]
This commit is contained in:
Jan Lysý
2021-07-07 10:20:45 +02:00
committed by Veljko V
parent 3b9bf6142c
commit d6e709ff53
4 changed files with 16 additions and 3 deletions

View File

@ -21,6 +21,7 @@ var MailPoet = {
apiVersion: window.mailpoet_api_version, apiVersion: window.mailpoet_api_version,
emailRegex: window.mailpoet_email_regex, emailRegex: window.mailpoet_email_regex,
wpSegmentState: window.mailpoet_wp_segment_state, wpSegmentState: window.mailpoet_wp_segment_state,
subscribersCountsCacheCreatedAt: window.mailpoet_subscribers_counts_cache_created_at,
getShortcodeLinks: () => (window.mailpoet_shortcode_links ? window.mailpoet_shortcode_links : []), getShortcodeLinks: () => (window.mailpoet_shortcode_links ? window.mailpoet_shortcode_links : []),
}; };

View File

@ -26,7 +26,9 @@ const ListHeading = () => (
subscribersInPlanLimit={MailPoet.subscribersLimit} subscribersInPlanLimit={MailPoet.subscribersLimit}
/> />
<SubscribersCacheMessage cacheCalculation="2021-06-28 18:22:00" /> <SubscribersCacheMessage
cacheCalculation={window.mailpoet_subscribers_counts_cache_created_at}
/>
<SubscribersLimitNotice /> <SubscribersLimitNotice />
<InvalidMssKeyNotice <InvalidMssKeyNotice

View File

@ -4,6 +4,7 @@ namespace MailPoet\AdminPages\Pages;
use MailPoet\AdminPages\PageRenderer; use MailPoet\AdminPages\PageRenderer;
use MailPoet\API\JSON\ResponseBuilders\CustomFieldsResponseBuilder; use MailPoet\API\JSON\ResponseBuilders\CustomFieldsResponseBuilder;
use MailPoet\Cache\TransientCache;
use MailPoet\Config\ServicesChecker; use MailPoet\Config\ServicesChecker;
use MailPoet\CustomFields\CustomFieldsRepository; use MailPoet\CustomFields\CustomFieldsRepository;
use MailPoet\Entities\DynamicSegmentFilterData; use MailPoet\Entities\DynamicSegmentFilterData;
@ -16,6 +17,7 @@ use MailPoet\Util\License\Features\Subscribers as SubscribersFeature;
use MailPoet\WooCommerce\Helper as WooCommerceHelper; use MailPoet\WooCommerce\Helper as WooCommerceHelper;
use MailPoet\WP\AutocompletePostListLoader as WPPostListLoader; use MailPoet\WP\AutocompletePostListLoader as WPPostListLoader;
use MailPoet\WP\Functions as WPFunctions; use MailPoet\WP\Functions as WPFunctions;
use MailPoetVendor\Carbon\Carbon;
class Segments { class Segments {
/** @var PageRenderer */ /** @var PageRenderer */
@ -51,6 +53,9 @@ class Segments {
/** @var CustomFieldsResponseBuilder */ /** @var CustomFieldsResponseBuilder */
private $customFieldsResponseBuilder; private $customFieldsResponseBuilder;
/** @var TransientCache */
private $transientCache;
public function __construct( public function __construct(
PageRenderer $pageRenderer, PageRenderer $pageRenderer,
PageLimit $listingPageLimit, PageLimit $listingPageLimit,
@ -62,7 +67,8 @@ class Segments {
SettingsController $settings, SettingsController $settings,
CustomFieldsRepository $customFieldsRepository, CustomFieldsRepository $customFieldsRepository,
CustomFieldsResponseBuilder $customFieldsResponseBuilder, CustomFieldsResponseBuilder $customFieldsResponseBuilder,
SegmentDependencyValidator $segmentDependencyValidator SegmentDependencyValidator $segmentDependencyValidator,
TransientCache $transientCache
) { ) {
$this->pageRenderer = $pageRenderer; $this->pageRenderer = $pageRenderer;
$this->listingPageLimit = $listingPageLimit; $this->listingPageLimit = $listingPageLimit;
@ -75,6 +81,7 @@ class Segments {
$this->segmentDependencyValidator = $segmentDependencyValidator; $this->segmentDependencyValidator = $segmentDependencyValidator;
$this->customFieldsRepository = $customFieldsRepository; $this->customFieldsRepository = $customFieldsRepository;
$this->customFieldsResponseBuilder = $customFieldsResponseBuilder; $this->customFieldsResponseBuilder = $customFieldsResponseBuilder;
$this->transientCache = $transientCache;
} }
public function render() { public function render() {
@ -123,7 +130,9 @@ class Segments {
$wooCurrencySymbol = $this->woocommerceHelper->isWooCommerceActive() ? $this->woocommerceHelper->getWoocommerceCurrencySymbol() : ''; $wooCurrencySymbol = $this->woocommerceHelper->isWooCommerceActive() ? $this->woocommerceHelper->getWoocommerceCurrencySymbol() : '';
$data['woocommerce_currency_symbol'] = html_entity_decode($wooCurrencySymbol); $data['woocommerce_currency_symbol'] = html_entity_decode($wooCurrencySymbol);
$data['tracking_enabled'] = $this->settings->get('tracking.enabled'); $data['tracking_enabled'] = $this->settings->get('tracking.enabled');
$subscribersCacheCreatedAt = $this->transientCache->getOldestCreatedAt(TransientCache::SUBSCRIBERS_STATISTICS_COUNT_KEY);
$subscribersCacheCreatedAt = $subscribersCacheCreatedAt ?: Carbon::now();
$data['subscribers_counts_cache_created_at'] = $subscribersCacheCreatedAt->format('Y-m-d\TH:i:sO');
$this->pageRenderer->displayPage('segments.html', $data); $this->pageRenderer->displayPage('segments.html', $data);
} }
} }

View File

@ -33,6 +33,7 @@
var mailpoet_woocommerce_currency_symbol = <%= json_encode(woocommerce_currency_symbol) %>; var mailpoet_woocommerce_currency_symbol = <%= json_encode(woocommerce_currency_symbol) %>;
var mailpoet_woocommerce_countries = <%= json_encode(woocommerce_countries) %>; var mailpoet_woocommerce_countries = <%= json_encode(woocommerce_countries) %>;
var mailpoet_tracking_enabled = <%= json_encode(tracking_enabled) %>; var mailpoet_tracking_enabled = <%= json_encode(tracking_enabled) %>;
var mailpoet_subscribers_counts_cache_created_at = <%= json_encode(subscribers_counts_cache_created_at) %>;
</script> </script>
<% endblock %> <% endblock %>