1

A customer can usually cancel a membership in his dashboard. How can I restrict this (hide the cancel button) for a specific membership?

I found this code for general hide the cancel button, work's so far:

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' );
}

maybe with this function?

wc_memberships_is_user_active_member( $current_user_id, 'membership-name' )
mujuonly
  • 11,370
  • 5
  • 45
  • 75
web-e
  • 21
  • 2

2 Answers2

0

You are almost there. You already have done some syntactical mistakes which @mujeeb specified. Try following code

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' );
Alice
  • 1,422
  • 1
  • 18
  • 30
  • That works fine for ONE membership! If a user have multiple memberships, i only want to restrict a specific one! – web-e May 24 '17 at 11:14
  • then create an array of memberships for which cancel button will be available.... loop through that array and check wc_memberships_is_user_active_member( $user_id, 'your_membership' )... if it becomes true atleast once....don't unset or else unset the action – Alice May 24 '17 at 11:23
  • i think the problem is that the sv_edit_my_memberships_actions function itself returns the possible actions for the complete active membership list in dashboard. so if one membership trigger the unset, it was also unset for all other membership list items. – web-e May 24 '17 at 14:51
-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' );
mujuonly
  • 11,370
  • 5
  • 45
  • 75