这个页面是用户在购物流程中,在填写完收货信息后,最终确认订单并支付的关键环节,它主要展示了订单的摘要信息,包括商品列表、价格明细、收货地址等。

(图片来源网络,侵删)
下面我将从 页面位置、核心功能、文件结构、自定义修改 四个方面进行详细说明。
页面位置
在 DedeCMS 的默认模板中,订单确认页面通常位于以下目录:
/templets/default/dedecar/confirm.htm
/templets/: DedeCMS 的模板根目录。/default/: 默认使用的模板风格目录。/dedecar/: 这是 DedeCMS 内置的“购物车”模块的目录,包含了与购物流程相关的所有页面模板,如购物车页面 (carlist.htm)、订单确认页面 (confirm.htm)、支付成功页面 (paysuccess.htm) 等。
注意:如果你的网站使用了自定义的模板风格,那么路径会是 /templets/你的模板名称/dedecar/confirm.htm。

(图片来源网络,侵删)
核心功能与页面元素
一个典型的订单确认页面包含以下几个核心部分:
-
收货信息区域
- 功能:显示用户在前一步选择的收货地址、收货人姓名、联系电话。
- 实现:这部分数据通常从
cart(购物车) Session 中获取,或者通过地址选择的接口传递过来,用户在这里只能查看,不能直接修改(修改通常在“收货地址管理”页面完成)。
-
商品列表区域
- 功能:清晰列出用户本次购买的所有商品,包括商品图片、商品名称、单价、购买数量、小计金额。
- 实现:这是页面的核心数据,通过循环
{dede:global name='items'/}或类似的全局变量来渲染,这个变量是一个数组,包含了购物车中所有商品的信息。
-
费用明细区域
- 功能:汇总订单的所有费用,让用户一目了然。
- 通常包含:
- 商品总价:所有商品单价 × 数量的总和。
- 运费:根据商品重量、目的地或免运费规则计算得出。
- 折扣/优惠券:如果有使用优惠券或享受折扣,会在这里减去相应金额。
- 应付金额:
商品总价 + 运费 - 折扣,这是用户最终需要支付的金额。
- 实现:这些金额都是通过 PHP 逻辑计算后,以全局变量的形式传递给模板的,
{dede:global.name='price_sale'/}代表应付金额。
-
支付方式选择区域
- 功能:提供多种支付方式供用户选择,如支付宝、微信支付、银行转账、货到付款等。
- 实现:后台管理员可以在“系统 -> 支付插件”中管理可用的支付方式,前端通过循环
{dede:global name='paymentlist'/}变量来展示这些选项,用户单选即可。
-
提交订单按钮
- 功能:用户确认所有信息无误后,点击此按钮,将订单数据提交到服务器。
- 实现:通常是一个
<form>表单的提交按钮,表单的action属性指向处理订单的 PHP 文件(如car.php或flow.php,具体取决于 DedeCMS 版本),并附带dopost=confirm等参数。
文件结构与关联逻辑
订单确认页面的工作流程是 前端模板 + 后端逻辑 的结合。
模板文件 (confirm.htm)
这是一个标准的 HTML 文件,其中嵌套了 DedeCMS 的模板标签。
<!-- 确认订单页面头部 -->
{dede:include filename="head.htm"/}
<!-- 主要内容区 -->
<div class="confirm-main">
<!-- 收货信息 -->
<div class="address-info">
<h3>收货信息</h3>
<p>收货人:{dede:global.name='addr_name'/}</p>
<p>电话:{dede:global.name='addr_tel'/}</p>
<p>地址:{dede:global.name='addr_address'/}</p>
</div>
<!-- 商品列表 -->
<div class="goods-list">
<h3>商品清单</h3>
<table>
<thead>
<tr>
<th>商品图片</th>
<th>商品名称</th>
<th>单价</th>
<th>数量</th>
<th>小计</th>
</tr>
</thead>
<tbody>
<!-- 循环输出购物车中的每一件商品 -->
{dede:global name='items' function='GetCarList(@me)'/}
<!-- 或者更简单的循环,具体取决于变量结构 -->
<!-- {dede:foreach from=$items item=item} -->
<!-- <tr>...</tr> -->
<!-- {/dede:foreach} -->
</tbody>
</table>
</div>
<!-- 费用明细 -->
<div class="price-detail">
<h3>费用明细</h3>
<p>商品总额:<span class="price">{dede:global.name='price_total'/}</span></p>
<p>运费:<span class="price">{dede:global.name='price_fare'/}</span></p>
<p>优惠:<span class="price">- {dede:global.name='price_discount'/}</span></p>
<p class="final-price">应付金额:<strong>{dede:global.name='price_sale'/}</strong></p>
</div>
<!-- 支付方式 -->
<div class="payment-method">
<h3>支付方式</h3>
{dede:global name='paymentlist' function='GetPaymentList(@me)'/}
</div>
<!-- 提交按钮 -->
<form action="/car.php" method="post">
<input type="hidden" name="dopost" value="saveorder">
<button type="submit" class="submit-btn">提交订单</button>
</form>
</div>
<!-- 页面底部 -->
{dede:include filename="foot.htm"/}
后端逻辑文件
当用户访问订单确认页面时,通常由一个 PHP 文件来处理数据并加载模板,这个文件可能是:
car.php(在较老或某些版本的 DedeCMS 中)flow.php(在较新版本中,作为“流程”控制器)
工作流程:
- 访问页面:用户点击“去结算”或类似链接,访问
car.php?dopay=confirm。 - 验证数据:PHP 文件首先检查用户的购物车是否为空,用户是否登录等。
- 计算费用:调用相应的函数(如
GetShippingFee()计算运费,GetDiscount()计算折扣)来生成最终的订单金额。 - 获取数据:从数据库或 Session 中获取收货地址、商品列表、支付方式列表等信息。
- 分配变量:将所有计算好的数据和获取的信息,通过
assign或SetVar等方法,赋值给模板引擎的全局变量。 - 加载模板:
Display('dedecar/confirm.htm'),将数据渲染到confirm.htm模板文件中,并输出给用户。
如何自定义修改
如果你想要修改订单确认页面的样式或功能,可以遵循以下步骤:
修改样式和布局
最常见的需求是修改页面的外观,使其与网站的整体设计风格保持一致。
- 方法:直接编辑
/templets/default/dedecar/confirm.htm文件。 - 技巧:
- 使用浏览器开发者工具 (F12):在浏览器中打开确认页面,右键点击你想要修改的元素(如商品列表、价格区域),选择“检查”,可以直观地看到该元素的 HTML 代码和对应的 CSS 样式。
- 修改 HTML 结构:可以增删
div、table等标签来调整布局。 - 添加/修改 CSS:你可以在
confirm.htm文件内部添加<style>标签来写一些临时的样式,但最佳实践是在网站的公共 CSS 文件(如/templets/default/style/dedecar.css)中添加或修改样式,以保持代码的整洁和可维护性。
修改显示内容
你希望在商品列表中增加“规格”一列,或者修改“应付金额”的显示文本。
- 方法:编辑
confirm.htm文件,找到对应的模板标签部分进行修改。 - 限制:这种方法只能显示后端已经计算好并传递过来的数据,如果你需要增加后端没有提供的数据(比如商品的库存),你就需要修改后端 PHP 逻辑。
添加新的功能
这是一个更高级的操作,
-
增加“留言”功能:允许用户在提交订单时给商家留言。
- 前端:在
confirm.htm表单中添加一个<textarea>输入框。 - 后端:修改处理订单提交的 PHP 文件,接收这个新字段,并将其保存到订单数据表中相应的字段里。
- 前端:在
-
修改支付方式:比如想移除“货到付款”选项。
- 前端:编辑
confirm.htm,找到支付方式循环的部分,根据条件判断来决定是否输出某个支付方式的 HTML。 - 后端:更彻底的方法是修改生成支付方式列表的 PHP 代码,直接从列表中移除你不需要的支付方式。
- 前端:编辑
DedeCMS 的订单确认页面是一个由 confirm.htm (视图) 和 car.php/flow.php (控制器/逻辑) 共同驱动的模块。
- 对前端展示和简单交互的修改,主要操作
confirm.htm文件。 - 对数据逻辑、费用计算或新功能的增加,则需要深入到后端的 PHP 文件中进行修改。
在进行任何修改前,强烈建议先备份原始文件,以防修改出错导致网站功能异常。
