如何获取外部页面优惠券/优惠券表格以在 OpenCart 中使用?

2024-02-29

我的 OpenCart 环境中有另一个页面,比如说“关于我们”页面,其中包含下面这些表单,假设用户的购物车中有商品,这些表单应该可以工作,但不能:

在此输入您的优惠券代码:

<form action="index.php?route=checkout/cart" method="post" enctype="multipart/form-data" id="basket">
    <input type="text" value="" id="coupon" name="coupon"/>
    <input type="hidden" value="coupon" name="next"/>
    <input type="submit" class="button" value="Apply Coupon"/>
</form>

在此输入您的礼券代码:

<form action="index.php?route=checkout/cart" method="post" enctype="multipart/form-data" id="basket">
    <input type="text" value="" name="voucher"/>
    <input type="hidden" value="voucher" name="next"/>
    <input type="submit" class="button" value="Apply Voucher"/>
</form>

这是针对优惠券代码系统的,但它不起作用(此代码默认未编辑):

/catalog/controller/checkout/cart.php

// VOUCHER
// IF THE USER HAS ENTERED A VOUCHER
if (isset($this->request->post['voucher']) && $this->request->post['voucher']) {
    foreach ($this->request->post['voucher'] as $key) {
        if (isset($this->session->data['vouchers'][$key])) {
            unset($this->session->data['vouchers'][$key]);
        }
    }
}

优惠券/代金券/运费

这三个系统块是OpenCart中的模块。它们循环在一起,您可以编辑文件,例如将一些文件留空或使用if/else语句仅显示某些模块。

您不能在cart.tpl, 一定是:

<div class="right"> 
    <!-- eVoucher System -->
    <?php foreach ($modules as $module) { ?>
        <?=$module?>
    <?php } ?>
    <!-- eVoucher System --> 
</div>

运输/凭证和优惠券模块的文件位置

这将循环并显示模块 tpl 文件、运输、优惠券和凭证。他们的位置很奇怪

/catalog/view/theme/default/total/coupon.tpl
/catalog/view/theme/default/total/shipping.tpl
/catalog/view/theme/default/total/voucher.tpl

我们不会全部使用它们,因此我们已将优惠券和运费清空。优惠券形式如下:

<div>
  <div class="cart-heading"><?php echo $heading_title; ?></div>
  <div class="cart-content" id="coupon"><?php echo $entry_coupon; ?>&nbsp;
    <input type="text" name="coupon" value="<?php echo $coupon; ?>" />
    &nbsp;<a id="button-coupon" class="button"><span><?php echo $button_coupon; ?></span></a></div>
</div>
<script type="text/javascript">
<!--
//
//  jQuery dependent based on .post so make sure
//  your footer or header jQuery call is before this
//
$('#button-coupon').bind('click', function() {
    $.ajax({
        type: 'POST',
        url: 'index.php?route=total/coupon/calculate',
        data: $('#coupon :input'),
        dataType: 'json',       
        beforeSend: function() {
            $('.success, .warning').remove();
            $('#button-coupon').attr('disabled', true);
            $('#button-coupon').after('<span class="wait">&nbsp;<img src="catalog/view/theme/default/image/loading.gif" alt="" /></span>');
        },
        complete: function() {
            $('#button-coupon').attr('disabled', false);
            $('.wait').remove();
        },      
        success: function(json) {
            if (json['error']) {
                $('#basket').before('<div class="warning">' + json['error'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>');
            }

            if (json['redirect']) {
                location = json['redirect'];
            }
        }
    });
});
//-->
</script>

这就是这些文件的位置和方式total还有一个控制器和coupon所有其他模块均由控制器和标准 MVC 驱动。

外部优惠券购物车表格

因此,为了按照您的意愿在外部页面上使用,请提取 tpl 文件和$modules and $module循环,代码应该是:

(在 SEO URI 的情况下确保“斜杠”index.php)

当然,例如,在您的“关于我们”页面上:

<strong>Please enter your coupon:</strong>

<form action="/index.php?route=total/coupon/calculate" method="post" enctype="multipart/form-data" id="basket">
    <input type="text" value="" id="coupon" name="coupon"/>
    <input type="hidden" value="coupon" name="next"/>
    <input type="submit" class="button" value="Apply Coupon"/>
</form>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何获取外部页面优惠券/优惠券表格以在 OpenCart 中使用? 的相关文章

  • 限制 WooCommerce 上的域名注册

    如何限制用户电子邮件对 WooCommerce 注册中特定域的访问 我发现这段代码可以做到这一点 但由于某种原因它在 WooCommerce 注册表单上不起作用 如果我进入 WP 登录页面 它就会起作用 任何帮助表示赞赏 function
  • PHP_CodeSniffer - 显示失败的嗅探

    PHP CodeSniffer 中是否有设置来显示失败的嗅探 我将输出与我们的编码标准进行比较 并且一一使用很难破译哪个测试失败 看看我们可能想忽略哪个 如果有一种简单的方法来显示故障嗅探 那么我可以更轻松 更快地完成配置 您可以使用 s
  • 从 PHP 执行 SQL Server 存储过程

    我尝试从 PHP 调用 SQL Server 存储过程 这是我的存储过程 CREATE procedure dbo tester id NVARCHAR MAX AS BEGIN DECLARE tab TABLE myxml XML IN
  • 图片无法直接上传到相册

    我正在开发上传图片文件的应用程序 但图片不能直接上传到相册 上传之前始终必须经过批准 如何解决这个问题 问题 您想将这些照片添加到您的相册吗 下面的照片是从另一个应用程序上传的 您需要批准它们 你需要user photos允许直接上传到相册
  • PHP:__toString() 和 json_encode() 不能很好地协同工作

    我遇到了一个奇怪的问题 我不知道如何解决它 我有几个类 它们都是 JSON 对象的 PHP 实现 这是问题的说明 class A protected a public function construct this gt a array n
  • PHP:如何访问根目录之外的下载文件夹? [复制]

    这个问题在这里已经有答案了 我如何创建一个 PHP 脚本 页面 允许会员 买家下载存储在根目录之外的下载文件夹中的压缩文件 产品 我正在使用 Apache 服务器 请帮忙 谢谢 保罗 G 您可能会在 soac 提供的链接中找到一些更好的信息
  • 准备好的声明不返回任何内容

    我知道这个特定的查询是有效的 因为我用未经准备的过程方法测试了它 这里是 name introduction mysqli new mysqli localhost user pass db or die There was a probl
  • MPDF 未定义索引错误

    我正在使用 MPDF 库将 HTML 转换为 PDF 这是我的代码 HTML HTML CONTENT GOES HERE HTML STRING MPDF gt WriteHTML html Converting MPDF gt Outp
  • PHP json_encode 将多个数组编码为一个对象

    我试图在一个 JSON 对象中返回多个数组 但在语法上遇到一些困难 一款 Android 应用程序从多个表接收更新 我希望在一个响应中返回这些更新 目前 这就是我对各种结果集进行编码的方式 json json encode array ta
  • 如何使用 PHP SoapClient 添加任意命名空间?

    如何使用 PHP SoapClient 添加任意名称空间 命名空间实际上并未在请求中使用 但我认为它阻止了我的消息被正确使用 WSDL 在这里 http abr business gov au abrxmlsearchRPC ABRXMLS
  • 表单未使用 AJAX 提交

    再次更新 如果有人关心的话 我之前发布的解决方案由于某种原因停止工作 我在 ajax 请求中包含了 beforeSend 并将验证表单的 js 部分粘贴到其中 现在就像一个魅力 form on submit function e e pre
  • 使用 shell_exec Powershell 输出到 PHP 变量

    我有一个 powershell 脚本 它输出视频文件持续时间 运行这个脚本给了我预期的结果 Folder C my path to folder File sample1 1280 720 mp4 LengthColumn 27 objSh
  • 如何从对应的数组值中获取数组键?

    您可以轻松地通过其键获取数组值 如下所示 value array key 但如果我有该值并且想要它的密钥怎么办 获得它的最佳方式是什么 你可以使用array search https www php net manual en functi
  • 如何使用 wpf webbrowser 将数据发布到 Web 服务器

    我想从数据库获取数据并使用它来让用户登录到网站 我有一个包含 Web 浏览器控件的 wpf 页面 我有这样的代码 用于将用户登录到用 php 编写的网站
  • PHP 中 while (true){ 是什么意思?

    我看过这段代码 但不知道这意味着什么 while true echo Hello world 我知道什么是 while 循环 但是 while true 是什么意思 会执行多少次 这不是无限循环吗 虽然是无限循环 但您可以使用以下命令退出它
  • 如何在 Api-Platform 中按链接属性过滤结果?

    我有一个User实体和一个Organisation实体 存在关系ManyToOne之间Booking and User ORM ManyToOne targetEntity App Entity User inversedBy bookin
  • Curl 和 Php 5.3.3 中的 SSL 连接错误

    我的网站自 3 年来一直运行良好 代码如下 现在突然从 2 天开始出现以下错误 SSL 连接错误 在 Curl error 中 下面是我的代码
  • CKEditor TypeError:c[a] 在 CodeIgniter 中未定义

    我正在尝试在基于 codeigniter 的网站中安装 CKEditor 并且我已按照本教程进行操作 Codeigniter 教程中的 CKEditor http nukium com developpement php framework
  • CodeIgniter:使用多维 POST 数据验证表单

    所以框架是CodeIgniter 2 0 2 我有一个表单 其中包含与数据库中的行相对应的字段组 字段名称的格式为 opt 0 foo opt 0 bar opt 1 foo opt 1 bar etc 索引 1 2等 并不对应于数据库中的
  • 日期函数的奇怪行为

    我今天在 StackOverflow 上遇到了这个问题 但没有得到答案 我的问题是 echo date Y m d strtotime 2012 september 09 output 2012 09 01 echo date Y m d

随机推荐

  • 深度克隆(复制)可变 Scala 对象的最简单方法是什么?

    深度克隆 复制 可变 Scala 对象的最简单方法是什么 由于您想要以最简单的方式深度复制 Scala 对象 而不是最快的方式 因此您始终可以序列化该对象 前提是它是可序列化的 然后将其反序列化回来 以下代码仅在编译时运行 而不是在 REP
  • 使用 OAuth 2.0 对用户进行身份验证时,重定向 URL 如何知道他们属于哪个用户?

    我是 Web 开发新手 并试图通过构建使用 Google API 的 Web 应用程序来入门 我正在阅读 Google 关于使用 OAuth 2 0 的文档 但重定向 URL 位让我有点困惑 根据例子here https developer
  • 如何防止 Kendo MultiSelect 在网格模板中编辑后丢失值?

    我有一个显示以逗号分隔的值列表的网格 并且它有一个在网格的模板编辑器中使用的数组 在服务器上 我将逗号分隔的列表转换为 Kendo 多选 AngularJS 指令的数组 我几乎已经完成了所有工作 在多选中显示 编辑和添加值 只是发生了一件奇
  • 如何在 dot net core 中获取另一个时区的本地时间

    我正在解决一个问题 我需要获取另一个时区的当前日期和时间 我不知道我的代码将在哪个时区运行 并且它需要在 Windows 和 Linux 机器上运行 我还没有找到任何方法可以做到这一点 有任何想法吗 P S 我特别需要找到瑞典的时间 包括代
  • 如何用CSS显示和隐藏div?

    在我的脚本中有三个 div 我想显示 divclass ab 当我将鼠标悬停在第一行并显示 div 时class abc 当鼠标悬停在第二行时 否则我想显示 divclass a 默认情况下 但它从不显示 divclass a abc ab
  • 如何检查是否已在 元素中选择文件?

    我有多个复选框和一个文件上传输入 如果选中一个或多个复选框并且输入值不为空 我想重新启用按钮 这是一个链接bootply http www bootply com 6YZf8l4QVa 这是我的html div class upload b
  • Django 将 URL 重定向到最新创建的博客文章

    我希望在 urls py 中进行重定向 以便当人们访问博客应用程序索引域时自动加载我的博客应用程序中的最新帖子条目 Blog Post 详细信息通过 blog views post detail request slug 方法提供 博客文章
  • 如何在 Angular 5 中获取上一页 URL

    我正在使用 Angular 5 应用程序 我需要知道如何获取最后一个 URL 将其作为后退按钮的链接 我找到了这个location back 但我需要最后一个 url 作为字符串 我怎样才能得到生成的字符串location back 非常感
  • RStudio 更改 pandoc .latex 模板

    我想使用不同的 Latex 模板来渲染 R markdown 版本 2 我发现了以下建议 a 模板位置 system file rmd latex default tex package rmarkdown b YAML Front Mat
  • Collectstatic 创建空文件

    我正在尝试将应用程序升级到 Django 1 11 但遇到了问题collectstatic 旧版本 django 1 8 17 django storages 1 5 1 新版本 django 1 11 12 django storages
  • C 中指针比较如何工作?可以比较不指向同一数组的指针吗?

    在 K R C 编程语言第二版 第 5 章中 我读到了以下内容 首先 在某些情况下可以比较指针 如果p and q指向同一个数组的成员 那么关系如下 lt gt 等工作正常 这似乎意味着只能比较指向同一数组的指针 但是当我尝试这段代码时 c
  • 解析 LocalDate 但得到 DateTimeParseException; dd-MMM-uuuu

    我正在尝试转换String to LocalDate using DateTimeFormatter 但我收到一个异常 java time format DateTimeParseException Text 2021 10 31 无法在索
  • 如何在 65536 行后添加 SSRS 分页符,计算组页眉/页脚

    我有一个 SSRS 报告 当行数大于 Excel 2003 限制 65536 时 该报告无法导出到 Excel 该报告已经具有带有组页脚的分组级别 我尝试在表达式上添加一个带有分页符的额外分组级别 ceiling rownumber not
  • 线太长。姜戈 PEP8

    PEP8信息 models py 10 80 E501 line too long 83 gt 79 characters 模型 py field TreeForeignKey self null True blank True relat
  • 展开/折叠 ttk Treeview 分支

    我想知道 ttk Treeview 中折叠和展开分支的命令 这是一个简约的示例代码 coding utf 8 import tkinter as tk from tkinter import ttk root tk Tk tree ttk
  • 沿直线或路径移动 SVG 对象

    我想要为 SVG 对象设置动画 以便它遵循我从 d3 js 中的线条生成器构建的 SVG 路径 有什么简单的方法可以实现这一目标吗 特别是 我想获得与我的路径相对应的插值坐标 从那里 使用 tween js 或 d3 js 本身执行动画将很
  • 防止嵌套对象的 mongodb C# 驱动程序将 id 序列化为 _id

    我正在使用 C mongodb 驱动程序来更新 mongodb 中的记录 下面的代码对我来说工作正常 但它会自动将所有出现的 id 转换为 id var client GetMongoClient var collection1 GetMo
  • 使用 C# 压缩/解压字符串

    我是 net新手 我正在用 C 进行字符串压缩和解压 有一个 XML 我正在转换为字符串 然后进行压缩和解压缩 我的代码中没有编译错误 除非我解压代码并返回字符串时 它只返回 XML 的一半 下面是我的代码 有错误的地方请指正 Code c
  • 如何使用数据库更改更新 edmx 文件?

    我有一个 edmx 文件 并且更改了数据库中的一个表 我知道有一个 从数据库更新模型 向导 但在许多情况下这是无用的 例如 如果我将字段从非空更改为可为空 或者如果我删除字段 则更新模型不会反映更改 我必须删除实体并将其添加回来才能使更改出
  • 如何获取外部页面优惠券/优惠券表格以在 OpenCart 中使用?

    我的 OpenCart 环境中有另一个页面 比如说 关于我们 页面 其中包含下面这些表单 假设用户的购物车中有商品 这些表单应该可以工作 但不能 在此输入您的优惠券代码