Wordpress Woocommerce会员资格限制为一个会员
我有一个Wordpress会员网站,是建立在 WooCommerce与WooCommerce会员插件 情景:Wordpress Woocommerce会员资格限制为一个会员,wordpress,woocommerce,hook-woocommerce,membership,woocommerce-memberships,Wordpress,Woocommerce,Hook Woocommerce,Membership,Woocommerce Memberships,我有一个Wordpress会员网站,是建立在 WooCommerce与WooCommerce会员插件 情景: - Membership Plan = Gold-Plan-Membership / 1-month - simple Product = Gold-Product-Membership / €10,00 当客户购买产品时,“黄金产品会员” 激活订阅“黄金计划会员资格”1个月。 到目前为止还不错 我想限制成员一次只能有一个活动成员。 我想做的是阻止创建任何新的会员购买 如果任何其
- Membership Plan = Gold-Plan-Membership / 1-month
- simple Product = Gold-Product-Membership / €10,00
当客户购买产品时,“黄金产品会员”
激活订阅“黄金计划会员资格”1个月。
到目前为止还不错
我想限制成员一次只能有一个活动成员。
我想做的是阻止创建任何新的会员购买
如果任何其他会员资格处于活动状态。
现在。
下面的代码
检查活动的客户成员计划及其状态
(“有效”、“免费”、“待定”、“免费试用”),
并且会员资格不会为此订单创建新的用户会员资格。
以下代码将检查所有成员身份状态
可以访问受限内容的
但只检查会员计划,而不是购买其产品
我会解释的。
客户购买产品“黄金产品会员资格”
,
完成结帐程序并实际执行付款,
该产品的订单已处理。
实际上,“黄金计划成员资格”
未激活
显然,这是一个问题
我正在寻找一种对该产品有效的解决方案
但同时它与会员计划地位的关系也融为一体
- 我想限制成员一次只能有一个活动成员。
/**
* There are two ways we could prevent purchasing more than one membership:
* 1. prevent access if the customer already has an active membership
* 2. prevent access if the customer already has any membership
*
* This snippet shows the second scenario.
*/
/**
* Do not grant membership access to purchasers if they already hold any membership, regardless of status
*
* @param bool $grant_access true if the purchaser should get memberships access from this order
* @param array $args {
* @type int $user_id purchaser's WordPress user ID
* @type int $product_id the ID of the access-granting product
* @type int $order_id the ID of order for this purchase
* }
* @return bool $grant_access
*/
function sv_wc_memberships_limit_to_one_membership( $grant_access, $args ) {
// get all active memberships for the purchaser, regardless of status
$memberships = wc_memberships_get_user_memberships( $args['user_id'] );
// if there are any memberships returned, do not grant access from purchase
if ( ! empty( $memberships ) ) {
return false;
}
return $grant_access;
}
add_filter( 'wc_memberships_grant_access_from_new_purchase', 'sv_wc_memberships_limit_to_one_membership', 1, 2 );