站长最近一直在折腾WordPress和WHMCS的整合,到目前为止,已经踩过不少坑,记录一下。
支持WHMCS正版
最初的时候从官方位置下载到最新版的WHCMS源码,然后从网上找来破解文件,安装了以后,遇到一个问题,普通用户注册后,一旦退出无论如何都无法再登录,即使确定注册和找回密码等流程设置了正确的密码,也还是登录不了。从网上找到的解决方案说是取消myssql 的严格模式,但是一直还是不行。
就在站长准备放弃的时候,花钱从官方购买了正版授权,并下载官方版本,然后在新的服务器上安装,就这样就可以了。不去追究是服务器原因还是非正版了,反正购买了正版就OK了。
强烈建议正式商用一定要购买正版!
WHMCS的不足之处
在不断接触中,发现了WHMCS的各种不足。
WHMCS不支持后台上传文件
没想到这么强大的一个程序,居然不支持在后台上传文件,写文章也不支持上传图片,搞得站长还另外搭建了一个图库,本以为将就着发布文章,没想到WHMCS对中文太不友好了(见下面一条),索性就用WordPress发布帮助文档。
WHMCS对中文不友好
1、关于PDF账单乱码已经很多人提到了,具体见: https://wzfou.com/whmcs-alipay/#PDF
2、WHMCS发布“常见问题”时,网址不支持中文,只要是标题中存在的中文都会被过滤掉;中文标签虽然可以显示,但是同样出现乱码,导致点击中文标签的网址,是无论如何也看不到关联的文章。
WHMCS不适合做SEO
也许从一开始,WHMCS就不打算在SEO这块做功夫,毕竟人家的定位是一个客户系统,也就是后台界面,前台的东西涉及比较少。没有针对每个页面的SEO功能,什么关键词、描述等都没有,或许可以通过插件扩展,但和WordPress相比,让站长没有了进一步扩展的兴趣。
WHMCS的产品不支持设置图片
想给产品设置一个头图之类的,没想到WHMCS不支持,不支持!可能通过自定义字段勉强可以去开发下,但是不是每个人都有能力去弄。
WordPress和WHMCS集成插件
WordPress和WHMCS的集成,的确很不容易,目前市面上有两套插件:
1、WHMpress(包含3个插件,购买总共需要101美元,700元人民币,一次性付款永久更新):该插件对于将WHMCS的相关页面直接集成到WordPress还是基本可以,但是如果WHCMS使用了一些第三方插件,这些插件添加到用户中心的页面功能有些就无法自动集成,此外,在用户数据同步和登录同步方面,支持不太好,仅支持在插件自身页面进行同步登录,不是真的支持WordPress和WHMCS两个系统独立登录。
2、WHMCS Bridge(有免费版,但是如果要同步登录等功能,需要购买收费版 80美元/年,每年都要续费)站长是后面才试用这个插件的高级版的(可以免费试用45天),这个插件相对于上一个,集成功能更加紧密,但是每个页面的打开速度有些慢,同步登录也仅支持自身插件生成的页面。
针对以上两个插件,如果你一定要用,个人比较推荐第二款,除了打开页面有些慢,其他都集成的不错。
站长采用的集成方案
站长最终两个插件都没用,采用了如下方案:
1、将WHMCS安装在主站的子目录下,作为站点下的一个组成部分,然后修改WHMCS的模板,使它的所有页面风格和主站统一,需要具备一定的前端能力。
2、菜单的集成也是重要的一环,让两个系统的菜单统一起来,用户访问各个页面都看到一样的菜单结构。WHMCS支持通过钩子去修改导航菜单的输出,但是对于新手来说,研究代码的时间成本太高,所以推荐一款非常好用的WHMCS插件:WHMCS Advanced Menu Manager(21美元)
3、关于用户系统,站长最终舍弃了WordPress注册和登录(仅供管理员维护内容),只对普通用户开放WHMCS的用户系统。这样还面临一个问题,就是用户中心的导航菜单如何“同步”:在WordPress程序发布的页面,也需要根据WHMCS的登录状态切换登录前和登录后的用户菜单。最终想到的一个勉强可用的方案就是通过Cookie判断用户在WHMCS系统的登录状态,然后WordPress根据这个Cookie来判断输出不同的用户菜单。
为什么要用WHMCS
最后可能有人要问了,为什么要用WHMCS,而不直接在WordPress上开发对应的功能。主要出于两方面考虑:
1、WHMCS在域名、主机和服务器销售的功能是比较完善的,也很方便集成这方面的其他面板和功能,很多主机商也提供WHMCS接口接入他们的产品,对于我们来说实在是太方便了。
2、WordPress如果要开发出和WHMCS差不多的功能,各种成本是非常高的,不是一个小团队可以折腾的。