2017-05-24 4 views
1

お客様は通常、ダッシュボードのメンバーシップをキャンセルできます。特定のメンバーシップに対してこれを制限するにはどうすればよいですか?WooCommerceのメンバーシップはWordPressでキャンセルします

私はCANCELボタンを一般的な非表示のために、このコードを発見し、これまでの仕事の:多分この機能を持つ

function sv_edit_my_memberships_actions($actions) 
{ 
    unset($actions['cancel']); 
    return $actions} 
add_filter('wc_memberships_my_account_my_memberships_actions', 'sv_edit_my_memberships_actions'); 
} 

wc_memberships_is_user_active_member($current_user_id, 'membership-name') 

答えて

-1
function sv_edit_my_memberships_actions($actions) { 
    unset($actions['cancel']); 
    return $actions; 
} 
add_filter('wc_memberships_members_area_my_memberships_actions', 'sv_edit_my_memberships_actions'); 
0

あなたは、ほとんどがあります。 @mujeebが指定したいくつかの構文上の間違いはすでに行っています。次のコードを試してください

function sv_edit_my_memberships_actions($actions) 
{ 
    $user_id = get_current_user_id(); 
    if(wc_memberships_is_user_active_member($user_id, 'silver')){// Instead of silver you can give your membership type 
     unset($actions['cancel']); 
    } 
    return $actions; 
} 
add_filter('wc_memberships_my_account_my_memberships_actions', 'sv_edit_my_memberships_actions'); 
+0

これはONEメンバーシップでうまく動作します。ユーザーが複数のメンバーシップを持っている場合、特定のメンバーシップを制限したいだけです! –

+0

キャンセルボタンが利用できるメンバシップの配列を作成します。その配列をループして、wc_memberships_is_user_active_member($ user_id、 'your_membership')をチェックします。そうでない場合はアクションを解除する – Alice

+0

問題は、sv_edit_my_memberships_actions関数自体が、ダッシュボード内の完全なアクティブメンバーシップリストに対して可能なアクションを返すということだと思います。 1つのメンバシップが未設定になった場合、他のメンバシップリストアイテムに対しても設定されていませんでした。 –

関連する問題