【问题标题】:Add to cart pop up when specific items are added to cart (cs-cart)将特定商品添加到购物车时弹出添加到购物车 (cs-cart)
【发布时间】:2015-07-06 19:14:22
【问题描述】:

我是 cs-cart 的新手。对它不是很熟悉。我的最新项目涉及使用 Cs-Cart。我已经能够弄清楚如何输出产品和使用类别。

已经尝试了几个星期了。去过几个网站和stackoverflow问题。和我想要的完全不一样。 The only S.O. question that came close has no answer.

我希望在将特定商品添加到购物车时弹出一个小窗口。在弹出的 div 或框中,我想建议其他项目。如果可能,请在每个建议旁边添加一个添加到购物车按钮。 我到处都搜索过,但并不多。我不介意为此创建自己的插件,但我不知道如何监听那些添加到购物车的事件并在 cs-cart 中创建弹出窗口。

任何帮助表示赞赏..

【问题讨论】:

    标签: php cs-cart


    【解决方案1】:

    如果您在 CS-Cart 中将产品添加到购物车,您会看到一个弹出框。默认情况下,添加到购物车功能是通过 AJAX 请求完成的。 如果您想修改此通知的内容,您必须检查/design/themes/YOUR_THEME_NAME/views/checkout/components/product_notification.tpl 模板文件。 (替换 YOUR_THEME_NAME)

    但是我建议你,不要直接写入核心文件(php 和 tpl 文件)。你可以找到official developer documentation here

    如果您想为添加到购物车功能创建一个控制器扩展,您可以创建一个控制器,例如。 /app/addons/my_changes/controllers/frontend/checkout.post.php。将此代码写入此文件:

    <?php
    
    if ($mode == "add") {
        //Do something here
    }
    

    如果我的更改插件处于活动状态,则此代码将在产品添加到购物车后、显示 tpl 文件之前运行。

    【讨论】:

    • 您的解决方案不错。我刚刚完成了我的插件的创建。需要测试一下。
    【解决方案2】:

    您可以使用以下内容创建 app/addons/my_changes/controllers/frontend/checkout.post.php 文件:

    <?php
    
    use Tygh\Registry;
    
    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
       if ($mode == 'add') {
          $added_products = Registry::get('view')->getTemplateVars('added_products');
          if (!empty($added_products)) {
            foreach ($added_products as $data) {
              if (!empty($data['product_id']) && $data['product_id'] == THE_ID_OF_REQUIRED_PRODUCT) {
                 $msg = Registry::get('view')->fetch('addons/my_changes/custom_product_notification.tpl');
                 fn_set_notification('I', __('custom_product_notification_title'), $msg, 'I');
              }
            }
          }
       }
      return;
    }
    

    然后

    • 在管理 -> 语言 -> 管理翻译页面上创建“custom_product_notification_title”语言变量
    • 使用所需内容创建“design/themes/YOUR_THEME/templates/addons/my_changes/custom_product_notification.tpl”模板
    • 激活“我的更改”插件
    • 通过将“?cc&ctpl”添加到管理面板中的 URL 来清除缓存

    【讨论】:

      猜你喜欢
      • 2020-01-14
      • 1970-01-01
      • 2016-12-19
      • 1970-01-01
      • 2015-03-31
      • 2018-04-10
      • 1970-01-01
      相关资源
      最近更新 更多