Lifetime Extra Chill Membership Management
Manage Lifetime Extra Chill Memberships for users. Grant or revoke membership status via REST API with admin-only access. Primary benefit of this membership is an ad-free experience.
Endpoints
List Lifetime Memberships
Endpoint: GET /wp-json/extrachill/v1/admin/lifetime-membership
Purpose: Retrieve a paginated list of users with Lifetime Extra Chill Memberships.
Permission: Requires manage_options capability (network administrators only)
Parameters:
search(string, optional) – Search term for username, email, or display namepage(integer, optional) – Page number (default: 1)
Response (HTTP 200):
{
"members": [
{
"ID": 123,
"user_login": "username",
"user_email": "[email protected]",
"purchased": "2024-10-27 14:30:00",
"order_id": 12345
}
],
"total": 15,
"total_pages": 1
}
File: inc/routes/admin/lifetime-membership.php
Grant Lifetime Membership
Endpoint: POST /wp-json/extrachill/v1/admin/lifetime-membership/grant
Purpose: Grant a Lifetime Extra Chill Membership to a user by username or email address.
Permission: Requires manage_options capability (network administrators only)
Parameters:
user_identifier(string, required) – Username or email address of the user to grant membership to
Request Example:
{
"user_identifier": "artist_name"
}
Response (HTTP 200):
{
"message": "Lifetime Extra Chill Membership granted to artist_name",
"user_id": 123,
"username": "artist_name",
"email": "[email protected]"
}
Error Responses:
400– Missing identifier or invalid request404– User not found409– User already has a Lifetime Extra Chill Membership403– Permission denied (not a network administrator)
Implementation Details:
- Accepts either username or email as identifier
- Stores membership data as
extrachill_lifetime_membershipuser meta - Membership includes purchase timestamp and username reference
File: inc/routes/admin/lifetime-membership.php
Revoke Lifetime Membership
Endpoint: DELETE /wp-json/extrachill/v1/admin/lifetime-membership/{user_id}
Purpose: Revoke a Lifetime Extra Chill Membership from a user.
Permission: Requires manage_options capability (network administrators only)
Parameters:
user_id(integer, required) – The user ID to revoke membership from
Response (HTTP 200):
{
"message": "Lifetime Extra Chill Membership revoked for artist_name",
"user_id": 123,
"username": "artist_name"
}
Error Responses:
400– Missing user ID404– User not found or user doesn’t have a Lifetime Extra Chill Membership403– Permission denied (not a network administrator)
Implementation Details:
- Deletes the
extrachill_lifetime_membershipuser meta - Returns 404 if user has no active membership
File: inc/routes/admin/lifetime-membership.php
Usage Notes
Membership Storage:
- Memberships are stored as WordPress user meta under the key
extrachill_lifetime_membership - Meta contains purchase timestamp and order reference
Integration:
- Used by platform to control ad-serving behavior across sites (membership provides ad-free experience)
- Consumed by plugins checking
get_user_meta( $user_id, 'extrachill_lifetime_membership', true )
Related Endpoints:
- User Profile – Get user profile with membership status