diff --git a/lib/Analytics/Reporter.php b/lib/Analytics/Reporter.php index 8f205a99aa..da85a2ca3b 100644 --- a/lib/Analytics/Reporter.php +++ b/lib/Analytics/Reporter.php @@ -9,6 +9,7 @@ use MailPoet\Models\Subscriber; use MailPoet\Settings\Pages; use MailPoet\Settings\SettingsController; use MailPoet\Subscribers\NewSubscriberNotificationMailer; +use MailPoet\WooCommerce\Helper as WooCommerceHelper; class Reporter { /** @var SettingsController */ @@ -26,7 +27,8 @@ class Reporter { $checker = new ServicesChecker(); $bounceAddress = $this->settings->get('bounce.address'); $segments = Segment::getAnalytics(); - $has_wc = class_exists('WooCommerce'); + $woocommerce_helper = new WooCommerceHelper; + $has_wc = $woocommerce_helper->isWooCommerceActive(); $wc_customers_count = 0; if($has_wc) { $wc_customers_count = (int)Newsletter::rawQuery( diff --git a/lib/Config/Menu.php b/lib/Config/Menu.php index 8b9ce9b9cb..e7a19d1035 100644 --- a/lib/Config/Menu.php +++ b/lib/Config/Menu.php @@ -25,6 +25,7 @@ use MailPoet\Tasks\Sending; use MailPoet\Tasks\State; use MailPoet\Util\License\Features\Subscribers as SubscribersFeature; use MailPoet\Util\License\License; +use MailPoet\WooCommerce\Helper as WooCommerceHelper; use MailPoet\WP\DateTime; use MailPoet\WP\Notice as WPNotice; use MailPoet\WP\Readme; @@ -36,6 +37,9 @@ class Menu { const MAIN_PAGE_SLUG = 'mailpoet-newsletters'; const LAST_ANNOUNCEMENT_DATE = '2019-01-28 10:00:00'; + /** @var WooCommerceHelper */ + private $woocommerce_helper; + /** @var Renderer */ public $renderer; public $mp_api_key_valid; @@ -54,12 +58,14 @@ class Menu { Renderer $renderer, AccessControl $access_control, SettingsController $settings, - WPFunctions $wp + WPFunctions $wp, + WooCommerceHelper $woocommerce_helper ) { $this->renderer = $renderer; $this->access_control = $access_control; $this->wp = $wp; $this->settings = $settings; + $this->woocommerce_helper = $woocommerce_helper; } function init() { @@ -370,7 +376,7 @@ class Menu { if((bool)(defined('DOING_AJAX') && DOING_AJAX)) return; $data = [ 'is_mp2_migration_complete' => (bool)$this->settings->get('mailpoet_migration_complete'), - 'is_woocommerce_active' => class_exists('WooCommerce'), + 'is_woocommerce_active' => $this->woocommerce_helper->isWooCommerceActive(), 'finish_wizard_url' => admin_url('admin.php?page=' . self::MAIN_PAGE_SLUG), 'sender' => $this->settings->get('sender'), 'reply_to' => $this->settings->get('reply_to'), @@ -617,7 +623,7 @@ class Menu { $data['tracking_enabled'] = $this->settings->get('tracking.enabled'); $data['premium_plugin_active'] = License::getLicense(); - $data['is_woocommerce_active'] = class_exists('WooCommerce'); + $data['is_woocommerce_active'] = $this->woocommerce_helper->isWooCommerceActive(); $user_id = $data['current_wp_user']['ID']; $data['feature_announcement_has_news'] = empty($data['settings']['last_announcement_seen'][$user_id]) diff --git a/lib/DI/ContainerConfigurator.php b/lib/DI/ContainerConfigurator.php index 7a86384499..7a54be5fe1 100644 --- a/lib/DI/ContainerConfigurator.php +++ b/lib/DI/ContainerConfigurator.php @@ -86,6 +86,8 @@ class ContainerConfigurator implements IContainerConfigurator { $container->autowire(\MailPoet\Subscription\Form::class)->setPublic(true); // Newsletter $container->autowire(\MailPoet\Newsletter\AutomatedLatestContent::class)->setPublic(true); + // WooCommerce + $container->autowire(\MailPoet\WooCommerce\Helper::class)->setPublic(true); // WordPress $container->autowire(\MailPoet\WP\Functions::class)->setPublic(true); return $container; diff --git a/lib/WooCommerce/Helper.php b/lib/WooCommerce/Helper.php new file mode 100644 index 0000000000..c5df9a291c --- /dev/null +++ b/lib/WooCommerce/Helper.php @@ -0,0 +1,8 @@ +