如何在Prestashop 1.7结账页面调整支付方式的显示顺序
Prestashop 1.7 结账页面支付方式排列顺序修改教程
方法一:后台优先级配置修改(无需改代码,优先使用)
- 登录Prestashop 1.7管理后台,进入「模块」-「模块管理器」页面
- 筛选出所有已启用的支付类模块,依次点击每个支付模块的「配置」按钮
- 找到配置项里的 优先级/排序权重 选项,填写整数数值:数值越小,对应支付方式在结账页的展示位置越靠前
- 所有支付方式的优先级调整完成后,点击后台右上角的「清除缓存」按钮,刷新前端结账页面即可看到排序生效
方法二:主题模板覆写修改(适用于无后台排序配置的场景)
- 进入网站文件目录,找到当前使用主题的结账模板路径:
themes/[你的主题名]/templates/checkout/_partials/payment-methods.tpl,如果该路径下无对应文件,可以从默认经典主题路径themes/classic/templates/checkout/_partials/payment-methods.tpl复制文件到对应主题目录下 - 编辑该tpl文件,在支付方式遍历循环的代码前添加自定义排序逻辑,示例代码如下:
{* 自定义排序规则:按自定义的模块标识顺序排列 *} {$sort_rule = ['alipay', 'wxpay', 'stripe', 'paypal']} {$sorted_payments = []} {* 先按自定义规则筛选排序 *} {foreach from=$sort_rule item=module_key} {foreach from=$payment_options item=pay_option} {if strpos($pay_option.module_name, $module_key) !== false} {$sorted_payments[] = $pay_option} {/if} {/foreach} {/foreach} {* 未加入自定义规则的支付方式追加到列表末尾 *} {foreach from=$payment_options item=pay_option} {if !in_array($pay_option, $sorted_payments)} {$sorted_payments[] = $pay_option} {/if} {/foreach} {* 将原有循环的$payment_options替换为$sorted_payments即可 *}
- 保存文件后清理后台缓存,刷新前端页验证排序效果
注意:修改模板文件前请先备份原文件,避免操作失误导致页面异常。如果站点开启了CDN缓存,需要同步清理CDN缓存后再验证效果。
内容的提问来源于stack exchange,提问作者luciandex
相关产品推荐
相关产品推荐

