Skip to content

Magento_Newsletter cannot be disabled #26194

Open
@kassner

Description

@kassner

There are several classes under the Magento\Customer (and one under Magento\Review) namespace that are requiring Magento\Newsletter classes, making it impossible to successfully disable/remove the newsletter module, if one uses another solution.

  1. Magento\Customer\Block\Account\Dashboard
  2. Magento\Customer\Block\Account\Dashboard\Info
  3. Magento\Customer\Block\Adminhml\Edit\Tab\Newsletter
  4. Magento\Customer\Block\Adminhml\Edit\Tab\Newsletter\Grid
  5. Magento\Customer\Block\Adminhml\Edit\Tab\Newsletter\Grid\Renderer\Status
  6. Magento\Customer\Controller\Adminhtml\Index
  7. Magento\Customer\Controller\Adminhtml\Index\Cart
  8. Magento\Customer\Controller\Adminhtml\Index\Newsletter
  9. Magento\Customer\Controller\Adminhtml\Index\Save
  10. Magento\Customer\Controller\Adminhtml\Index\Viewfile
  11. Magento\Customer\Controller\Adminhtml\Customer\InvalidateToken
  12. Magento\Review\Block\Customer\ListCustomer

From those classes, several ones are requiring \Magento\Newsletter\Model\SubscriberFactory but they end up not even using it, basically declaring dependencies to classes that are not needed.

Preconditions

  1. To a instance of Magento 2.3.3 installed via Composer, add the following section to the composer.json:
{
  "replace": {
    "magento/module-newsletter": "*"
  }
}

Steps to reproduce

  1. composer update --lock -vvv;
  2. php bin/magento setup:di:compile

Expected result

  1. Compilation is successful.

Actual result

  Class Magento\Newsletter\Model\SubscriberFactory does not exist                                                                                                                                                                                                                                                            
  Class Magento\Customer\Controller\Adminhtml\Index\Save\Interceptor generation error: The requested class did not generate properly, because the 'generated' directory permission is read-only. If --- after running the 'bin/magento setup:di:compile' CLI command when the 'generated' directory permission is set to write --- the requested class did not generate properly, then you must add the generated class object to the signature of the related construct method, only.  

Metadata

Metadata

Assignees

No one assigned

    Labels

    Area: AccountComponent: NewsletterIssue: ConfirmedGate 3 Passed. Manual verification of the issue completed. Issue is confirmedPriority: P2A defect with this priority could have functionality issues which are not to expectations.Reported on 2.4.xIndicates original Magento version for the Issue report.Reproduced on 2.4.xThe issue has been reproduced on latest 2.4-develop branchTriage: Dev.ExperienceIssue related to Developer Experience and needs help with Triage to Confirm or Reject it

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions