当客户在表单字段中输入详细信息并输入提交按钮时,订单电子邮件应立即发送客户的电子邮件,并且订单也应在后端中创建。提交成功后(发送电子邮件并创建订单后),成功消息将显示在同一当前产品页面上。
为此,我已经在主题产品的详细页面上添加了“自定义订单”表单。表单包含名称,电子邮件,数量,产品名称和价格(客户访问时的当前产品名称和价格)等字段。
如何在“产品”页面自定义表单上以编程方式发送电子邮件和创建订单?
任何帮助大都受到赞赏。
答案 0 :(得分:0)
您需要为模板创建一个块类(关于如何为Magento 2创建控制器的资源很多,您可以引用它们)。
您可以使用一种方法来获取用于添加订单的产品网址:
public function getAddProductUrl($product, $additional = [])
{
return $this->_cartHelper->getAddUrl($product, $additional);
}
然后在您的phtml模板文件中添加以下html形式和javascript或类似的东西:
<script type="text/x-magento-init">
{
"[data-role=tocart-form]": {
"catalogAddToCart": {}
}
}
</script>
<div class="product-add-form">
<?php $product = $block->getProduct(); ?>
<form data-product-sku="<?= /* @NoEscape */ $product->getSku() ?>"
action="<?= /* @NoEscape */ $block->getAddProductUrl($product) ?>" method="post" data-role="tocart-form">
<input type="hidden" name="product" value="<?= /* @escapeNotVerified */ $product->getId() ?>" />
<?= $block->getBlockHtml('formkey') ?>
<button type="submit" title="<?php echo /* @escapeNotVerified */ __('Add to Cart'); ?>" class="action primary tocart">
<span><?php echo /* @escapeNotVerified */ __('Add to Cart'); ?></span>
</button>
</form>
</div>