如何在 Prestashop 中添加自定义功能代替订单?

How to add a custom function in place of order in Prestashop?

我不熟悉 Prestashop,但我想用 Prestashop 1.7 执行一个函数来代替订单。

我的目标是当客户展示他的购物车时,他可以去结账并去报价。 报价只是一个自定义功能我需要获取购物车产品和客户信息并发送邮件。

是否可以在购物车中添加一个按钮并在他点击时执行自定义功能?

提前致谢

你可以使用像

这样的动作挂钩
actionCartSummary

当客户检查他的购物车时调用此挂钩,您可以发送电子邮件或执行任何功能。

或者展示挂钩

displayShoppingCart

在此挂钩中,您可以向购物车页面添加一个新按钮,使用该按钮,您可以将客户重定向到任何地方,甚至可以重定向到特定的 frontController https://devdocs.prestashop.com/1.7/modules/concepts/controllers/front-controllers/

更新: 从该挂钩实施 displayShoppingCart 挂钩调用 frontController

首先,您应该创建一个实现 displayShoppingCart 挂钩的模块 (https://validator.prestashop.com/generator)。 在这个模块中,需要创建一个frontController(https://devdocs.prestashop.com/1.7/modules/concepts/controllers/front-controllers/),然后在displayShoppingCart hook中,可以生成一个link给frontController

示例:

在 customcheckoutfunction 模块中创建一个新的 frontController(某物):

<?php
/**
 * <Module> => customcheckoutfunction
 * <FileName> => something.php
 * Format expected: <ModuleClassName><FileName>ModuleFrontController
 */
class CustomcheckoutfunctionSomethingModuleFrontController extends ModuleFrontController
{
     //do the stuff
}

displayShoppingCart 挂钩:

 public function hookDisplayShoppingCart($params)
{
    $frontControllerUrl = $this->context->link->getModuleLink($this->name, 'something');
    $this->context->smarty->assign(
        array(
            'fcUrl' => $frontControllerUrl,
        )
    );
    return $this->display(__FILE__, 'views/templates/front/_display-shopping-cart-extra-content.tpl');
}

现在您可以使用 _display-shopping-cart-extra-content.tpl 文件中的 $fcUrl 变量

<a href="{$fcUrl}"> <button class='btn btn-primary'> Click here </button></a>