Magento 2 Newsletter Subscription Not Working on Homepage – Custom Theme Fix

magento2newsletter

I copy this template from

vendor/magento/module-newsletter/view/frontend/templates/subscribe.phtml

There's no js console error and any other error on server log. Subscribe is not working (email id not saved on admin panel). how to tackle it.it doesn't show any message alert.

my newsletter template in

mynamespace/mytheme/Magento_Newsletter/templates/
newsletter-footer.phtml

<section class="signup-section">
    <div class="container">
        <div class="signup-container clearfix">
            <article>  <span>
                <h3>Sign Up For Newsletter</h3>
                <p>Be the First to Know. Sign up to newsletter today</p>
                </span> </article>
            <article>
                <form class="form subscribe"
                      novalidate
                      action="<?php echo $block->getFormActionUrl() ?>"
                      method="post"
                      data-mage-init='{"validation": {"errorClass": "mage-error"}}'
                      id="newsletter-validate-detail">

                            <input name="email" placeholder="<?php echo __('Enter you email address here...'); ?>" type="email" id="newsletter"
                                   data-validate="{required:true, 'validate-email':true}"/>
                            <button class="action subscribe primary" type="submit">

                            </button>

                </form>
            </article>
        </div>
        <!--end of div signup-container-->
    </div>
    <!--end of div container-->
</section>

cms_index_index.xml

<referenceContainer name="main">
        <referenceContainer name="container.global" htmlClass="someotherclass"  >
            <block class="Magento\Framework\View\Element\Template" name="newsletter" template="Magento_Newsletter::newsletter-footer.phtml"/>

        </referenceContainer>
    </referenceContainer>

showing on homepage and validate email also
enter image description here

enter image description here

Best Answer

Use below xml code instead of yours:

<referenceContainer name="main">
    <referenceContainer name="container.global" htmlClass="someotherclass"  >
        <block class="Magento\Newsletter\Block\Subscribe" name="newsletter" template="Magento_Newsletter::newsletter-footer.phtml"/>
    </referenceContainer>
</referenceContainer>