You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改WHMCS价格小数分隔符?含PDF发票及需编辑文件指引

解决WHMCS发票PDF自定义小数分隔符的问题

我之前帮客户处理过类似的需求,WHMCS默认的货币格式确实限制较多,要实现自定义小数分隔符(非点/逗号),需要修改两处核心文件,下面是具体步骤:

1. 修改全局货币格式化函数

WHMCS所有价格显示(包括PDF)的核心逻辑在includes/functions.php里的formatCurrency函数,这是最关键的修改点:

  • 打开includes/functions.php文件,搜索function formatCurrency(定位到这个函数
  • 找到函数内的这段代码:
    $decimal_separator = $currency['decimalsep'];
    
  • 将其替换为你想要的自定义分隔符,比如如果你想用|作为小数分隔符,就改成:
    $decimal_separator = '|'; // 替换成你需要的字符
    
  • 同步检查函数里的number_format调用,确保第三个参数使用你定义的$decimal_separator,示例如下:
    $amount = number_format($amount, $currency['decimalplaces'], $decimal_separator, $thousand_separator);
    
    确保这里的小数分隔符参数不是硬编码的点或逗号。

2. 修正PDF发票的单独处理逻辑

部分WHMCS版本中,PDF发票模块会单独处理价格格式化,需要同步修改modules/invoices/PDFInvoice/pdf.php:

  • 打开这个文件,搜索处理价格的代码段,通常会有formatCurrency调用或直接使用number_format的地方
  • 如果是调用formatCurrency,那第一步的修改已经生效;如果是单独的number_format硬编码,比如:
    $formatted_amount = number_format($item['amount'], 2, '.', ',');
    
    把这里的小数分隔符(第三个参数)改成你自定义的字符即可。

3. 验证与缓存清理

  • 修改完成后,先清除WHMCS系统缓存(后台→系统设置→缓存管理→清除缓存)
  • 生成一张测试发票并导出PDF,检查价格的小数分隔符是否已替换为你设置的字符

⚠️ 注意:WHMCS版本更新会覆盖这些修改,建议把修改逻辑做成自定义钩子(Hook),或者在版本更新后重新同步修改。如果想更灵活,也可以在后台添加自定义配置项,然后在函数里读取该配置值作为分隔符,避免重复改代码。

内容的提问来源于stack exchange,提问作者eArmin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:59:30