------------------------------------------------------------------ Capture custom user fields and update call ------------------------------------------------------------------ // get saved $custom_fields = mgm_get_member_custom_fields($user_ID); // print echo '
Before
'; mgm_array_dump($custom_fields); // set , update // param@ : user_id // param@ : associative array of field=>value pair to update $success = mgm_set_member_custom_fields($user_ID, array('country'=>'IN')); // get saved $custom_fields = mgm_get_member_custom_fields($user_ID); // print echo '
After
'; mgm_array_dump($custom_fields); ---------------------------------------------------- Update user/member status ---------------------------------------------------- // get member object, this will onlt work when magicmember is active if(function_exists('mgm_get_member')){ // this will check the usermeta existence and return the saved if so found or create new empty instance of mgm_member class object $member = mgm_get_member($user_id); // set new status $member->status = MGM_STATUS_EXPIRED; // expired // or active $member->status = MGM_STATUS_ACTIVE; // active // status description $member->status_str = __('Subscription activated manually','mgm'); // active // save $member->save(); } ---------------------------------------------------- Update user/member membership type/level ---------------------------------------------------- // get member object, this will onlt work when magicmember is active if(function_exists('mgm_get_member')){ // this will check the usermeta existence and return the saved if so found or create new empty instance of mgm_member class object $member = mgm_get_member($user_id); // set new status $member->membership_type = $membership_type_code; // type code, which should be lowercase, spaces removed by underscore(_) type name // save $member->save(); } -------------------------------------------- Available statuses ------------------------------------------- MGM_STATUS_NULL = Inactive MGM_STATUS_ACTIVE = Active MGM_STATUS_EXPIRED = Expired MGM_STATUS_PENDING = Pending MGM_STATUS_TRIAL_EXPIRED = Trial Expired MGM_STATUS_CANCELLED = Cancelled MGM_STATUS_ERROR = Error MGM_STATUS_AWAITING_CANCEL = Awaiting Cancelled --------------------------------------------------- // update profile first name --------------------------------------------------- global $current_user; if($current_user->ID > 0) { //first name $_fname = "My First Name " .rand(1,100) ; //update wp default fields wp_update_user( array( 'ID' => $current_user->ID, 'first_name' => $_fname ) ); //update MM custom fields mgm_set_member_custom_fields($current_user->ID, array('first_name' => $_fname )); } /** * set member custom fields */ function mgm_set_member_custom_fields($user_id, $custom_fields=array()){ if(function_exists('mgm_get_member')){ // mgm_member $member = mgm_get_member($user_id); // set fields $member->set_custom_fields($custom_fields, true);// merge // save $member->save(); // return return true; } } --------------------------------------------------- // List of active payment gateways for a particular membership level --------------------------------------------------- //init $pack_id = 5; if(function_exists('mgm_get_class')){ // get object $packs_obj = mgm_get_class('subscription_packs'); //select pack $pack = $packs_obj->get_pack($pack_id); //display modules list i.e active payment gateways list mgm_pr($pack->modules); } --------------------------------------------------- // Coupon creation --------------------------------------------------- //Ex : 1 global $wpdb; $name = substr(md5(uniqid(mt_rand())), 0, 8); $source = array('name'=>$name); if(mgm_is_duplicate(TBL_MGM_COUPON, array('name'),'',$source )){ }else { $column_data = array( 'name' => $name, 'value' => 10, 'description' => 'coupon description', 'use_limit' => 1, 'product' => '', 'expire_dt' => '2014-07-06 00:00:00', 'create_dt' => '2014-07-07 11:30:47'); //insert $wpdb->insert(TBL_MGM_COUPON, $column_data) ; } //Ex : 2 global $wpdb; $name = substr(md5(uniqid(mt_rand())), 0, 8); $source = array('name'=>$name); if(mgm_is_duplicate(TBL_MGM_COUPON, array('name'),'',$source )){ }else { $column_data = array( 'name' => $name, 'value' => 'sub_pack#12_10_d_member', 'description' => 'test', 'product' => '{"clickbank_product_id":"","epoch_product_code":""}', 'create_dt' => '2014-07-07 11:32:10'); //insert $wpdb->insert(TBL_MGM_COUPON, $column_data) ; } --------------------------------------------------- $members = mgm_get_members_with('membership_type','vip'); I'm finding that this returns members who are inactive (never completed registration for the package) or cancelled. Should it return those? Is there a version that only returns active members? --------------------------------------------------- Ans : No there is no direct version avalible you can get the active members using below example. Ex : $vip_members = mgm_get_members_with('membership_type','vip'); mgm_pr($vip_members); $active_members = mgm_get_members_with('status', 'Active'); mgm_pr($active_members); $vip_active_members = array_intersect($vip_members, $active_members); mgm_pr($vip_active_members); --------------------------------------------------- // getting users specific membership types status --------------------------------------------------- Ex : //user id $user_id = 158; // member free $membership_type = 'member'; //response $response = mgm_get_user_membership_status($user_id,$membership_type); //display response mgm_pr($response); /** * getting users specific membership types status */ function mgm_get_user_membership_status ($user_id = NULL,$membership_type = NULL) { //check if($user_id !=NULL && $membership_type !=NULL ) { //member obj $member = mgm_get_member($user_id); //check member if(isset($member->membership_type) && $member->membership_type == $membership_type) { //return return array($member->membership_type=>$member->status); } // check other if(isset($member->other_membership_types) && is_array($member->other_membership_types) && count($member->other_membership_types) > 0) { // loop foreach ($member->other_membership_types as $key => $memtypes) { // convet if(is_array($memtypes)) { $memtypes = mgm_convert_array_to_memberobj($memtypes,$user_id); } //check if(isset($memtypes->membership_type) && $memtypes->membership_type == $membership_type) { //return return array($memtypes->membership_type=>$memtypes->status); } } } } //return return false; } --------------------------------------------------- // getting member using module transaction id --------------------------------------------------- Ex : $module = "mgm_paypal"; $txn_id = "7A986115KJ762523X"; $member = mgm_get_member_with_module_transaction_id($module,$txn_id); mgm_pr($member); /** * getting member using module transaction id */ function mgm_get_member_with_module_transaction_id($module='',$txn_id=''){ //check if(empty($module) || empty($txn_id) ) return false; // members $users = mgm_get_members_with('payment_module', $module); //loop foreach ($users as $user_id) { //member $member = mgm_get_member($user_id); //check if(isset($member->payment_info->txn_id) && $member->payment_info->txn_id == $txn_id){ //return return $member; } //check other if (isset($member->other_membership_types) && !empty($member->other_membership_types)) { // loop foreach ($member->other_membership_types as $key => $memtypes) { // convet if(is_array($memtypes)) $memtypes = mgm_convert_array_to_memberobj($memtypes,$user_id); //check if(isset($memtypes->payment_info->txn_id) && $memtypes->payment_info->txn_id == $txn_id){ //return return $memtypes; } } } //unset unset($member); } //return return false; } --------------------------------------------------- // getting all user data --------------------------------------------------- /** * Fetch all users info */ function users_info(){ //init $user_info = array(); //from cache $uids = wp_cache_get('all_user_ids', 'users'); //check if(!$uids) { $uids = mgm_get_all_userids(); wp_cache_set('all_user_ids', $uids, 'users'); } //loop foreach ($uids as $uid) { //store $user_info[]= mgm_get_member($uid); } //return return $user_info; } --------------------------------------------------- // fetch users info after transaction success --------------------------------------------------- /** * Fetch users info after transaction success */ function fetch_users_info($user_id,$trans_id){ //membership info $member = mgm_get_member($user_id); //user info $userdata = get_userdata($user_id); //transaction $transaction_info = mgm_get_transaction($trans_id); //your custom code } add_action( 'mgm_membership_transaction_success', 'fetch_users_info', 10, 2 );