I am absolutely new in magento. I have made new input called 'name' under email input in
app/design/frontend/NewVendor/NewTheme/Magento_Newsletter/templates/subscribe.phtml
<div class="block newsletter">
<div class="title"><strong><?= $block->escapeHtml(__('Newsletter')) ?></strong></div>
<div class="content">
<form class="form subscribe"
novalidate
action="<?= $block->escapeUrl($block->getFormActionUrl()) ?>"
method="post"
data-mage-init='{"validation": {"errorClass": "mage-error"}}'
id="newsletter-validate-detail">
<div class="field newsletter">
<label class="label" for="newsletter"><span><?= $block->escapeHtml(__('Sign Up for Our Newsletter:')) ?></span></label>
<div class="control">
<input name="email" type="email" id="newsletter"
placeholder="<?= $block->escapeHtml(__('Enter your email address')) ?>"
data-mage-init='{"mage/trim-input":{}}'
data-validate="{required:true, 'validate-email':true}"/>
<input name="name" placeholder="Name"/>
</div>
</div>
<div class="actions">
<button class="action subscribe primary" title="<?= $block->escapeHtmlAttr(__('Subscribe')) ?>" type="submit">
<span><?= $block->escapeHtml(__('Subscribe')) ?></span>
</button>
</div>
</form>
</div>
I have made a new column in newsletter_subscriber table in
app/code/Mag/Newsletter/Setup/UpgradeSchema.php
class UpgradeSchema implements UpgradeSchemaInterface
{
public function upgrade(SchemaSetupInterface $setup, ModuleContextInterface $context)
{
$setup->startSetup();
if (version_compare($context->getVersion(), '0.0.2', '<')) {
$setup->getConnection()->addColumn(
$setup->getTable('newsletter_subscriber'),
'name',
[
'type' => \Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
'length' => 50,
'nullable' => false,
'default' => '',
'comment' => 'Name'
]
);
}
$setup->endSetup();
}
}
And this is my controller in
app/code/Mag/Newsletter/Controller/Subscriber/NewAction.php
<?php
namespace Magebit\Newsletter\Controller\Subscriber;
class NewAction extends
\Magento\Newsletter\Controller\Subscriber\NewAction
{
public function execute() {
$name = $this->getRequest()->getPost();
var_dump($name);exit;
}
}
For now controller var_dump's input value.
What I want to achieve is to save input value into "name" column in 'newsletter_subscriber' table.
Can't get it right. What should I do next?
subscribe($email, $name)method. Please let me know if this works for you or if you need further help