ssplugin / ss-membership
Craft CMS 会员与Stripe集成。
Requires
- php: ^8.0
- craftcms/cms: ^4.0
- stripe/stripe-php: 7.92.0
Requires (Dev)
- codeception/codeception: ^3.0
- vlucas/phpdotenv: ^3.0
README
会员网站可以限制对网站内容的访问,仅对付费用户开放。
SS Craft Membership插件可以轻松与Stripe集成,以便您接受会员付款并保护您的非订阅用户的内容。它将帮助您设置网站的会员集成。
要阅读插件文档,请访问SsMembership 文档要求
此插件需要Craft CMS 4或更高版本和PHP 8。
安装
要安装此插件,请按照以下说明操作。
- 在控制面板中,转到设置 → 插件,然后点击SsMembership的“安装”按钮。
SsMembership概述
它与Craft cms用户组和权限一起工作。您必须创建相关的组并将权限分配给每个组。例如,如果您的网站需要设置超级和高级会员,则需要创建用户组,如超级和高级。现在,创建一个会员计划并将其分配给用户组。
配置SsMembership
安装SS Craft Membership插件后,配置Stripe网关的公钥和私钥并保存配置。
会员计划
会员计划允许在用户订阅计划时管理用户组。在Craft CMS仪表板中,转到设置 -> 会员计划
插件将在Stripe仪表板上自动创建订阅计划。
测试模式计划在实时模式中不再可用,因此测试模式和实时模式的会员计划不同。
使用SsMembership
在twig模板中检查权限,您可以使用Craft cms核心功能来检查特定组权限。以下是一些示例。
{% if currentUser.isInGroup('groupHandle') %}
You are allowed to access this content.
{% endif %}
.can()方法在您需要检查特定权限或Craft cms部分权限时非常有用。
{# example 1 #}
{% if currentUser.can('permissionName') %}
You are allowed to access this content.
{% endif %}
{# example 2 #}
{% if currentUser.can("createEntries:#{section.uid}") %}
You are allowed to Create a new section.
{% endif %}
Twig模板
通过用户注册订阅
在用户注册过程中,添加stripe卡支付和会员计划下拉字段。用户在成功注册后将被自动订阅所选计划。带有会员字段的用户注册表单
Stripe支付字段
{{ craft.ssMembership.paymentField }}
会员计划字段
{{ craft.ssMembership.planField }}
登录用户订阅
我们已经了解了注册过程中的订阅工作方式。但如果用户已经注册呢?用户登录后可以订阅会员计划。
注意,如果已登录用户已订阅任何订阅计划,则无法订阅其他会员计划。
{# Make sure user is logged in #}
{% requireLogin %}
{% set plans = craft.ssMembership.getplan() %}
<form method="post" id="ss-membership-form">
{{ csrfInput() }}
{{ hiddenInput( 'action', 'ss-membership/subscription/switch' ) }}
{{ hiddenInput( 'firstName', craft.app.user.identity.firstName ) }}
{{ hiddenInput( 'lastName', craft.app.user.identity.lastName ) }}
{{ hiddenInput( 'username', craft.app.user.identity.username ) }}
{{ hiddenInput( 'email', craft.app.user.identity.email ) }}
<select name="planUid" required>
<option value=""> Select Plan </option>
{% for plan in plans %}
<option value="{{ plan.uid|hash }}"> {{ plan.name }} </option>
{% endfor %}
</select>
{# stripe card payment #}
{{ craft.ssMembership.paymentField() }}
<button type="submit" class="button link"> Subscribe </button>
</form>
取消订阅
立即取消用户的订阅。客户将不会再次被收取订阅费用。
请注意,但是,您已创建的任何待处理发票项目将在期末仍将被收取费用,除非手动删除。如果您已将订阅设置为在期末取消,则任何待处理的预付款也将保留并将在期末收取。但如果订阅设置为立即取消,则待处理的预付款将被删除。
为登录用户取消当前订阅{% requireLogin %}
已取消的订阅无法再次激活。
{# Make sure user is logged in #}
{% requireLogin %}
{% set subscription = craft.ssMembershipSubscription.getSubscription() %}
{% if subscription is not empty %}
<form method="post">
{{ csrfInput() }}
{{ hiddenInput( 'action', 'ss-membership/subscription/cancel' ) }}
{{ hiddenInput( 'subUid', subscription.uid|hash ) }}
<select name="cancelType" class="">
<option value="immediately"> Immediately </option>
<option value="period_end"> Cancel at period end </option>
</select>
<button type="submit" class="button link"> Cancel </button>
</form>
{% endif %}
由ssplugin提供