# Update membership level with pmpro and wp-discourse

**URL:** https://meta.discourse.org/t/update-membership-level-with-pmpro-and-wp-discourse/150583
**Category:** WordPress
**Created:** [May 6, 2020, 11:56am UTC](https://meta.discourse.org/t/update-membership-level-with-pmpro-and-wp-discourse/150583 "2020-05-06T11:56:25Z")
**Posts on this page:** 1
**Showing post:** 7

<div class="post-metadata">

### Author: ![waffleslop](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/waffleslop/32/244974_2.png) [@waffleslop](https://meta.discourse.org/u/waffleslop)
#### Post date: [May 8, 2020, 10:13am UTC](https://meta.discourse.org/t/update-membership-level-with-pmpro-and-wp-discourse/150583/7 "2020-05-08T10:13:47Z")

</div>

this is the same function used by [Simon Cossar] ([https://meta.discourse.org/u/Simon\_Cossar](https://meta.discourse.org/u/Simon_Cossar))[team](https://meta.discourse.org/g/team) see this link

> [Manage group membership in Discourse with WP Discourse SSO](https://meta.discourse.org/t/managing-discourse-group-membership-with-wp-discourse/74724)

ihave used the same function please need help .i have posted code also see above message  
This is my update membershiplevel code  
function action\_pmpro\_after\_change\_membership\_level( $level\_id, $user\_id, $cancel\_level ) {

```
	$group_name = dcpmp_get_level_for_id( $level_id );
	if ( is_wp_error( $group_name ) ) {

		return null;
	}
	$groupname = DiscourseUtilities::get_discourse_user( $user_id, false );

	// Removes the user.
    $result = DiscourseUtilities::remove_user_from_discourse_group( $user_id, $groupname );
    if ( ! empty( $result->success ) ) {
       // Remove the membership level metadata key.
        delete_user_meta( $user_id, "dcpmp_group_{$groupname}" );
    }
    
    $result1 = DiscourseUtilities::add_user_to_discourse_group( $user_id, $group_name );

    if ( ! empty( $result1->success ) ) {

        // If the user has been added to the group, add a metadata key/value pair that can be used later.
        add_user_meta( $user_id, "dcpmp_group_{$group_name}", 1, true );
    }

```

return $result;  
return $result1;

}  
add\_action( ‘pmpro\_after\_change\_membership\_level’, ‘action\_pmpro\_after\_change\_membership\_level’, 10, 3 );

---

_[View the full topic](https://meta.discourse.org/t/update-membership-level-with-pmpro-and-wp-discourse/150583)._
