currentCustomer = $currentCustomer; $this->_subscriberFactory = $subscriberFactory; $this->_helperView = $helperView; parent::__construct($context, $data); } /** * Returns the Magento Customer Model for this block * * @return \Magento\Customer\Api\Data\CustomerInterface|null */ public function getCustomer() { try { return $this->currentCustomer->getCustomer(); } catch (NoSuchEntityException $e) { return null; } } /** * Get the full name of a customer * * @return string full name */ public function getName() { return $this->_helperView->getCustomerName($this->getCustomer()); } /** * @return string */ public function getChangePasswordUrl() { return $this->_urlBuilder->getUrl('customer/account/edit/changepass/1'); } /** * Get Customer Subscription Object Information * * @return \Magento\Newsletter\Model\Subscriber */ public function getSubscriptionObject() { if (!$this->_subscription) { $this->_subscription = $this->_createSubscriber(); $customer = $this->getCustomer(); if ($customer) { $this->_subscription->loadByCustomerId($customer->getId()); } } return $this->_subscription; } /** * Gets Customer subscription status * * @return bool * * @SuppressWarnings(PHPMD.BooleanGetMethodName) */ public function getIsSubscribed() { return $this->getSubscriptionObject()->isSubscribed(); } /** * Newsletter module availability * * @return bool */ public function isNewsletterEnabled() { return $this->getLayout() ->getBlockSingleton(\Magento\Customer\Block\Form\Register::class) ->isNewsletterEnabled(); } /** * @return \Magento\Newsletter\Model\Subscriber */ protected function _createSubscriber() { return $this->_subscriberFactory->create(); } /** * @return string */ protected function _toHtml() { return $this->currentCustomer->getCustomerId() ? parent::_toHtml() : ''; } }