WordPress 官方文档:我们骄傲地向你提供一个自由分发,标准兼容, 快速,轻量级以及免费的个人发布平台,还有合理的默认设置和特性,终极定制核心。

即便如此,拿 WordPress 来开发一个模拟联合国会议的报名系统,还是有点扭曲的过分了。这不仅涉及到对用户系统的大规模改造(而且还无法完全排除误操作可能引发的问题),同时也缺乏相应的流程引导体系,只能诱导用户手动进行操作。不过怎么说,这样一个报名系统还能被完整的做出来,我也不得不对自己扭曲的想法感到佩服。

简单说一下改造的思路。整个改造过程其实是通过安装大量插件的方式实现的,最终达到的效果如下:

  • 个人代表可以注册账户、填写报名信息、填写学测;
  • 后台管理员人工查看和提醒新报名代表,提醒学术人员分配席位;
  • 学术人员浏览报名、学测信息,手动填入席位(无系统查重机制),更新代表状态;
  • 代表收到席位状态更新的邮件,登录系统缴费,手动填入流水号;
  • 后台管理员手动核验缴费流水号,锁定席位;
  • 代表收到席位状态更新的邮件,报名流程完成。

可以看到,当中仍旧存在着大量的手动步骤,然而这些手动步骤几乎全部是由后台管理员完成的。对于代表而言,唯一的问题就是正确找到下一步操作在哪里。

整个系统使用了以下插件:

  • User Meta Pro:核心插件,为用户信息增加新的字段,以满足报名信息和学测和每个代表对应的需要;同时能够生成前台信息输入与查看页面,避免代表进入后台。
  • User Role Editor:核心插件,新建用户组,用来区分代表报名的多个阶段(未分配席位、已分配席位待缴费、已缴费)。
  • User Specific Content:核心插件,用于为每个页面确定访问权限,保护需要登录才可访问的页面,或者只有主席、或已完成缴费等的代表才能看到的页面。
  • Better Notifications for WordPress:辅助插件,用于自定义席位状态更新(用户角色变更)时的提示邮件。
  • Ping++ 支付集成插件:辅助插件,用于接入支付宝等的支付端口,利用 JavaScript 以确保用户无需访问支付宝等的后台,即可直接获取流水号。
  • SMTP Mailer:可选插件,视服务器情况而异,用于发送邮件。
  • Google Font Fix:可选插件,视服务器情况而异,用于解决 Google Fonts 在中国难以访问的情况。
  • Slim Stat Analytics:可选插件,视服务器情况而异,用于统计浏览情况。

而报名步骤导引,是完全依靠人工文字提示完成的。

这一系统同时还可以完成背景文件发放、会前作业收集(需更改用户权限以允许其上传文件)的功能。理论而言,如果报名系统属于一个站点群,那么其用户信息也可以直接用于会议期间的 WordPress 新闻网站。但考虑到用户管理交叉之后的复杂性,同时站点群中可能还会包含其他不适合代表注册账户访问的网站,因此这种方式不一定可取。

相比较邮件报名,这种方式虽然难以减轻太多后台管理员的工作量,但自动的资料统整、信息收集与维护工作将不再需要手动进行。对于没有能力完整开发一套报名系统的会议来说,这也可以说是一种选择。