Esempio n. 1
0
 /**
  * Initialize the form.
  *
  * @return $this
  */
 public function initForm()
 {
     if (!$this->canShowTab()) {
         return $this;
     }
     /**@var \Magento\Framework\Data\Form $form */
     $form = $this->_formFactory->create();
     $form->setHtmlIdPrefix('_newsletter');
     $customerId = $this->_coreRegistry->registry(RegistryConstants::CURRENT_CUSTOMER_ID);
     $subscriber = $this->_subscriberFactory->create()->loadByCustomerId($customerId);
     $this->_coreRegistry->register('subscriber', $subscriber);
     $fieldset = $form->addFieldset('base_fieldset', ['legend' => __('Newsletter Information')]);
     $fieldset->addField('subscription', 'checkbox', ['label' => __('Subscribed to Newsletter'), 'name' => 'subscription', 'data-form-part' => $this->getData('target_form'), 'onchange' => 'this.value = this.checked;']);
     if ($this->customerAccountManagement->isReadOnly($customerId)) {
         $form->getElement('subscription')->setReadonly(true, true);
     }
     $isSubscribed = $subscriber->isSubscribed();
     $form->setValues(['subscription' => $isSubscribed ? 'true' : 'false']);
     $form->getElement('subscription')->setIsChecked($isSubscribed);
     $changedDate = $this->getStatusChangedDate();
     if ($changedDate) {
         $fieldset->addField('change_status_date', 'label', ['label' => $isSubscribed ? __('Last Date Subscribed') : __('Last Date Unsubscribed'), 'value' => $changedDate, 'bold' => true]);
     }
     $this->setForm($form);
     return $this;
 }