你知唔知我系靓仔

我要当oneman

WHMCS 安装、配置与功能扩展指南

本文提供 WHMCS 的安装、配置以及功能扩展的详细教程,包括批量删除用户和产品、限制未验证邮箱用户操作、以及在用户中心显示账户余额等功能。


一、WHMCS 安装与配置

  1. 环境准备

    • 使用宝塔面板创建虚拟主机,绑定域名,选择 PHP 7.4 版本,并安装 ionCube 插件。
  2. WHMCS 安装

  3. 安装开心许可证

    • 下载许可证文件:License8112.php
    • 将文件重命名为 License.php,并放置到 /vendor/whmcs/whmcs-foundation/lib/ 目录中。
  4. 安装后台中文语言包

    • 下载中文包:chinese.php
    • 放置到 /admin/lang/ 目录中。
  5. 解决 CDN 加速后登录问题

    • 关闭 CDN 或回源访问。
    • 进入 Setup -> General Settings -> Security,勾选 Disable Session IP Check
    • 重新开启 CDN。
  6. Turnstile 验证码工具

    • 工具地址:whmcs-turnstile
    • 功能:在登录、注册、结账等页面启用 Turnstile 验证码,支持主题切换和自定义配置。

二、批量删除用户和产品插件

  1. 插件介绍

  2. 安装与使用

    • 下载插件并解压,将 batch_delete 目录上传到 /modules/addons/ 目录中。
    • 在 WHMCS 后台激活插件,进入插件管理页面即可批量删除用户或产品。

三、限制未验证邮箱用户操作

  1. 启用邮箱验证

    • 在 WHMCS 后台启用 用户注册或更改邮箱时需要验证邮箱地址 选项。
  2. 安装插件

  3. 配置插件

    • 修改插件文件中的参数,例如是否禁止未验证用户下单、是否停用账户等。
  4. 效果预览

    • 未验证邮箱的用户在结账时会收到提示,无法提交账单。

四、用户中心显示账户余额

  1. 创建 Hook 文件

    • /includes/hooks/ 目录中新建一个 PHP 文件,例如 balance.php
  2. 添加代码

    • 将以下代码复制到文件中:

      <?php
      use WHMCS\View\Menu\Item as MenuItem;
      
      if (App::getCurrentFilename() == 'clientarea' && $_SESSION['uid']) {
       add_hook('ClientAreaPrimarySidebar', 10, function(MenuItem $primarySidebar) {
           $client = getClientsDetails();
           if ($client) {
               $newMenu = $primarySidebar->addChild(
                   'account-info',
                   array(
                       'name' => 'Home',
                       'label' => '账户详情',
                       'order' => 10,
                       'icon' => 'fa-balance-scale',
                   )
               );
               $newMenu->addChild(
                   'account_balance',
                   array(
                       'name' => 'account_balance',
                       'label' => "账户余额: " . formatCurrency($client['credit']),
                       'order' => 0,
                   )
               );
           }
       });
      }
      
      add_hook('ClientAreaFooterOutput', 1, function($vars) {
       $command = "getclientsdetails";
       $adminuser = "tanyuliang"; // 替换为您的管理员用户名
       $values["clientid"] = $_SESSION['uid'];
       $results = localAPI($command, $values, $adminuser);
       if ($_SESSION['uid']) {
           $footer_return = '
           <script>
               jQuery(document).ready(function() {
                   $($(".pull-right.nav")[1]).after(\' 余额: ¥' . $results['credit'] . ' RMB\');
               });
           </script>';
           return $footer_return;
       }
      });
  3. 效果预览

    • 在用户中心侧边栏和顶部导航栏中显示账户余额。

五、删除 WHMCS 用户中心“注册新域名”模块

  1. 定位文件

    • 打开 WHMCS 安装目录,找到以下文件:
      templates/six/clientareahome.tpl
  2. 删除代码

    • 在文件中找到以下代码段:
      <div class="col-sm-6">
       {foreach $panels as $item}
           {if $item@iteration is even}
               {outputHomePanels}
           {/if}
       {/foreach}
      </div>
    • 将这段代码完全删除。
  3. 保存文件

    • 保存修改后的 clientareahome.tpl 文件。

六、删除 WHMCS 用户中心“伺服器資訊,要求撤销”默认模块

  1. 定位文件

    • 打开 WHMCS 安装目录,找到以下文件:
      templates/six/clientareaproductdetails.tpl
  2. 删除代码

    • 在文件中找到以下代码段:

    • 1

      <div class="tab-content product-details-tab-container">

      从下方的domain开始删除

    • 2

      {if $showcancelbutton}
      <div class="col-xs-12">
          <a href="clientarea.php?action=cancel&amp;id={$id}" class="btn btn-block btn-danger {if $pendingcancellation}disabled{/if}">
              <i class="fas fa-ban"></i>
              {if $pendingcancellation}
                  {lang key='cancellationrequested'}
              {else}
                  {lang key='clientareacancelrequestbutton'}
              {/if}
          </a>
      </div>
      {/if}

七、总结

通过本指南,您可以完成 WHMCS 的安装与配置,并扩展其功能,包括批量删除用户和产品、限制未验证邮箱用户操作、以及在用户中心显示账户余额。这些功能将帮助您更好地管理和优化 WHMCS 系统。如有问题,欢迎联系 WHMCS 社区或开发者获取支持。