Skip to content

Instantly share code, notes, and snippets.

@MrVibe
Created January 22, 2020 14:20
Show Gist options
  • Save MrVibe/a145f9d0772e94a5e71cc56a30dbb29c to your computer and use it in GitHub Desktop.
Save MrVibe/a145f9d0772e94a5e71cc56a30dbb29c to your computer and use it in GitHub Desktop.
Pmpro restriction on units in App.
add_filter('bp_course_api_get_user_course_status_item',function($return,$request){
$course_id = $request['course'];
$user_id = pmpro_get_user_from_token($request);
if(!empty($course_id) && !empty($user_id)){
$course_membership_ids = get_post_meta( $course_id, 'vibe_pmpro_membership', true );
if(!empty($course_membership_ids) && is_array($course_membership_ids)){
if(!pmpro_hasMembershipLevel($course_membership_ids,$user_id)){
$return = array(
'status' => 0,
'message' => 'Not access'
);
}
}
}else{
$return = array(
'status' => 0,
'message' => 'Token or Course not found'
);
}
return $return;
},10,2);
function pmpro_get_user_from_token($request){
$user_id = 0;
$headers = vibe_getallheaders();
if(isset($headers['Authorization'])){
$token = $headers['Authorization'];
if($token){
global $wpdb;
$user_id = $wpdb->get_var(apply_filters('wplms_usermeta_direct_query',"SELECT user_id FROM {$wpdb->usermeta} WHERE meta_key = '$token'"));
if(is_numeric($user_id)){
return $user_id;
}
}
return $user_id;
}
return $user_id;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment