适用人群
- 你是个搞WordPress的站长,手里有个WooCommerce网店,想卖会员、搞订阅、锁内容,但一搜教程全是废话。
- 你是个刚入门的菜鸟,连插件怎么装都颤颤巍巍,但又不甘心花钱请人。
- 你是个被各种“专业教程”坑过无数遍的老油条,就想找个直球方案,别跟我扯什么代码。
行,收起你的小本本,哥带你从头到尾硬撸一套WooCommerce会员系统,30分钟搞不定你来骂我。

艹!别再问会员系统怎么搭了,跟哥走,30分钟搞定WooCommerce会员系统!
完整搭建步骤(一步都不能少,少了别怪我骂你)
第一步:装插件,别废话
进你WordPress后台 → 插件 → 安装插件,搜索并安装以下两个(免费):
- WooCommerce(别告诉我你没有,没有就先去装)
- Paid Memberships Pro(简称PMPro,免费版够用)
激活后,WooCommerce会自动跑设置向导,如果你已经配置过了,跳过,没有的话点“下一步”完成基本商店设置——货币选你卖的币种,地址填对,税率先关掉(以后再说)。注意:支付网关先配个PayPal或者Stripe,不然后面会员付不了钱,你赔吗?
第二步:创建会员级别(这是你的核心)
去PMPro菜单 → “Membership Levels” → 点击“Add New Level”。
- Name:填“青铜会员”“黄金会员”随便你,哥建议搞两个级别:一个免费(用来限制内容预览),一个付费。
- Description:简单介绍这个会员能干嘛。
- Price:付费的那个填价格,比如29美元/月。
- Billing:选“Recurring Subscription” → 周期填1 Month,然后设置“Trial”要不要?不要就跳过。
- Expiration:如果不想循环,设成“Never”或者固定天数,看你自己。
保存,重复操作建第二个免费级别(价格填0,周期不选)。
重点来了:免费会员级别要勾选“Disable checkout page?”,这样用户注册后直接获得免费身份,不用填支付信息。
第三步:设置内容限制(锁文章、锁页面、锁产品)
打开你要限制的一篇文章或页面,往下翻,你会看到一个“Membership”的meta框(没有?去PMPro设置 → Advanced里把“Show membership levels in post/page editor”打钩)。
- 勾选哪些会员级别可以看,比如只让“黄金会员”看,那就只勾黄金。
- 不想用meta框?PMPro提供了短代码,在内容里插入
[membership level="1"][/membership],里面包起来的部分只有1级(黄金)能看,哥建议新手直接用meta框,别作死。
注意:WooCommerce产品本身也能限制,在产品编辑页同样有Membership框,你可以让某个产品只对特定会员可见,甚至用PMPro的“Member Discounts”功能给会员打折——别急,后面配置要点会说。
第四步:创建注册/登录页面
PMPro会自动生成两个页面:“Membership Checkout”和“Membership Account”,去后台“页面”看看有没有,没有的话去PMPro设置 → Pages → 点“Create Default Pages”。
然后去菜单里添加这两个页面,再加上一个“Log In”页面(PMPro自带,或者用WP默认登录)。
老子的建议:把“Membership Checkout”改个名字叫“成为会员”,URL搞短一点,别整那些“checkout-2”之类的二逼链接。
第五步:配置WooCommerce与PMPro的联动(关键)
PMPro自带一个强大的功能:给会员打折。
去PMPro设置 → “Membership Discounts” → 勾选“Enable membership discounts for WooCommerce products”。
然后去WooCommerce任意产品编辑页,你会看到“PMPro Member Discounts”的meta框。
- 选一个会员级别,填上折扣价,比如原价100元,黄金会员只要70元。
- 保存。
这样用户登录后购物车就自动打折。但是注意:你必须保证用户登录后才能看到折扣价,所以网站最好强制登录才能购买(或者在产品页加“登录查看会员价”提示,用PMPro的短代码实现,别问我,自己查文档)。
第六步:支付网关搞定
PMPro的付费会员需要支付网关,去PMPro设置 → “Payment Settings” → 选“Stripe”或“PayPal Standard”或“PayPal Express”。
- 填API密钥(测试模式先搞上,别用正式Key)。
- 确保你的网站有SSL证书(https),不然浏览器会骂人,用户也会骂你。
WooCommerce的支付网关也要配好,因为用户可能通过WooCommerce买普通商品,PMPro和WooCommerce的支付可以各走各的,互不干扰。
第七步:测试测试测试!
- 以管理员身份创建一个测试用户(或者用另一个浏览器开无痕模式)。
- 去注册页面,买个付费会员,付一毛钱测试(Stripe测试模式用卡号4242...)。
- 支付成功后,去一个被限制的页面看看能不能看到内容。
- 去WooCommerce产品页看看会员折扣价有没有生效。
- 用免费会员账号登录,看看能不能看到付费内容(应该是不能)。
如果失败,别慌,看下面配置要点。
配置要点(记不住就截屏)
-
PMPro的“Gateways”和“WooCommerce”的关系
PMPro的会员付费走的是PMPro自己的网关设置,不是WooCommerce的,所以你在PMPro里配了Stripe,用户注册会员时调用的就是Stripe,跟WooCommerce的支付网关无关,WooCommerce的网关只负责普通商品购买。别搞混,否则会员付了钱但没权限,你等着售后骂街。 -
会员级别的过期与续费
如果你设定了循环订阅,PMPro会自动在到期前给用户发提醒(需要配置SMTP邮件),过期后用户权限自动撤销,除非他续费。一定要测试过期后的权限变化,有时候缓存会导致权限滞后。 -
动态折扣与购物车叠加
不要同时开启PMPro的折扣和WooCommerce的优惠券,可能会叠加出负数价格,哥见过有人搞出免费送钱——你赔得起吗? -
免费会员与付费会员的注册流程
免费会员注册不要走支付页面,PMPro设置里把免费级别的“Checkout”关掉,让用户直接填邮箱密码就注册,付费会员必须走PMPro的Checkout页面,不能走WooCommerce的购物车(除非你用PMPro的WooCommerce Add-on,但新手别碰,麻烦)。
常见踩坑提醒(哭着看完)
坑1:会员登录后看不到折扣价
原因:缓存插件(WP Rocket、W3 Total Cache等)把HTML缓存了,导致未登录和登录用户看到同样的价格,解决:在缓存插件里排除WooCommerce页面、PMPro相关URL,或者用动态缓存模式(比如禁用登录用户缓存)。哥的经验:先把缓存关掉测试,确认正常了再开缓存。
坑2:用户付款成功,权限没加上
原因:PMPro的支付回调没正确处理,检查PMPro日志(PMPro设置 → Logging → 启用日志),看是否有回调错误,常见原因:Stripe Webhook没配置,去Stripe后台添加Webhook指向你的网站域名/wp-json/pmpro/v1/webhook。哥就栽过这跟头,白教了。
限制对已登录会员不生效
原因:你没用对方法,用PMPro的短代码或者meta框是对的,但有人在主题文件里硬写if (pmpro_hasMembershipLevel('1'))之类的函数,结果函数名拼写错。哥建议新手别碰函数,用可视化方式,meta框最稳。**
坑4:注册页面跳转回首页,没进入支付
原因:PMPro的Checkout页面被其他插件或者主题重定向了,检查是否有“强制登录”插件把未登录用户跳转了,或者有安全插件拦截了表单提交。简单粗暴:把PMPro的Checkout页面设为无侧栏、无缓存、无任何第三方拦截。
坑5:WooCommerce下单后,PMPro会员权限自动消失
原因:有些用户用了“WooCommerce Subscriptions”插件跟PMPro打架。解决方案:要么只用PMPro做会员,要么只用WooCommerce Subscriptions,别混着用,两个软件都想当大哥。
哥再BB几句
这套方案跑起来之后,你就能用WooCommerce卖特色商品,同时用PMPro锁住独家内容——课程、下载、论坛专区都行,任何时候出问题,先检查:
- 缓存清了吗?
- 支付测试环境对了没?
- 插件版本冲突了吗?(PMPro和WooCommerce定期更新,别装古早版本)
搞不定?你别来找哥,哥也烦,但要是按上面步骤一步步来,再踩坑那就只能说明你脑子还没生锈。别墨迹,现在就去搞!
发表评论