Search...
createMember( )
Developer Preview
Creates a site member.
Description
After creation, you can use the sendSetPasswordEmail()
function in the Members Authentication API to email the member with a link to set their password.
The member can log in to the site once they set their password for the first time.
Note: When creating multiple members, set your requests at least 1 second apart to keep below rate limits.
This function is not a universal function and runs only on the backend.
Admin Method
This function requires elevated permissions to run. This function is not universal and runs only on the backend.
Syntax
function createMember(member: Member): Promise<CreateMemberResponse>
createMember Parameters
NAME
TYPE
DESCRIPTION
member
Member
Member to create.
Returns
Return Type:
Promise<
CreateMemberResponse
>NAME
TYPE
DESCRIPTION
member
Member
New member.
Was this helpful?
Create a new member with required parameter values (export from backend code)
Copy Code
1import { members } from 'wix-members.v2';2import { webMethod, Permissions } from 'wix-web-module';3import { elevate } from 'wix-auth';45const elevatedCreateMember = elevate(members.createMember);67/* Sample member value:8 * {9 * "member": {10 * "loginEmail": "examplemember@gmail.com",11 * "privacyStatus": "PUBLIC"12 * }13 * }14 */1516export const myCreateMemberFunction = webMethod(17 Permissions.Anyone,18 async (member) => {19 try {20 const newMember = await elevatedCreateMember(member);21 console.log('Created new member:', newMember);2223 return newMember;24 } catch (error) {25 console.error(error);26 // Handle the error27 }28 }29);3031/* Promise resolves to:32 * {33 * "_createdDate": "2024-02-29T09:42:31.000Z",34 * "_id": "29ae2752-73d2-4a07-8cba-677e1928ed52",35 * "_updatedDate": "2024-02-29T09:42:30.857Z",36 * "activityStatus": "ACTIVE",37 * "contact": {38 * "addresses": [],39 * "contactId": "29ae2752-73d2-4a07-8cba-677e1928ed52",40 * "customFields": {},41 * "emails": [],42 * "phones": []43 * },44 * "loginEmail": "examplemember@gmail.com",45 * "loginEmailVerified": false,46 * "privacyStatus": "PUBLIC",47 * "profile": {},48 * "status": "APPROVED"49 * }50 */
Create a new member with all parameter values (export from backend code)
Copy Code
1import { members } from 'wix-members.v2';2import { webMethod, Permissions } from 'wix-web-module';3import { elevate } from 'wix-auth';45const elevatedCreateMember = elevate(members.createMember);67/* Sample member value:8 * {9 * "member": {10 * "contact": {11 * "email": "jenny.smith@wixmembers.com",12 * "phone": "555-123-4567",13 * "address": "789 Member Lane, Townsville, USA",14 * "birthdate": "1985-07-15",15 * "company": "Wix Members Inc.",16 * "emails": [17 * "jenny.smith@wixmembers.com",18 * "jenny.smith@wix.com"19 * ],20 * "firstName": "Jenny",21 * "jobTitle": "Community Manager",22 * "lastName": "Smith",23 * "phones": [24 * "555-123-4567",25 * "555-987-6543"26 * ],27 * "addresses": [28 * {29 * "addressLine1": "123 Wix Way",30 * "addressLine2": "Suite 101",31 * "city": "Wixville",32 * "country": "US",33 * "postalCode": "54321",34 * "subdivision": "CA"35 * },36 * {37 * "addressLine1": "456 Wix Street",38 * "city": "Wixton",39 * "country": "US",40 * "postalCode": "12345",41 * "subdivision": "NY"42 * }43 * ],44 * "customFields": {45 * "membership_status": {46 * "name": "Membership Status",47 * "value": "Active"48 * },49 * "subscription_plan": {50 * "name": "Subscription Plan",51 * "value": "Premium"52 * }53 * }54 * },55 * "loginEmail": "jane.smith@wixmembers.com",56 * "privacyStatus": "PRIVATE",57 * "profile": {58 * "cover": {59 * "over": {60 * "_id": "wix_media_cover_789",61 * "height": 720,62 * "offsetX": 50,63 * "offsetY": 20,64 * "url": "https://wixmembers.com/cover.jpg",65 * "width": 128066 * },67 * "url": "https://wixmembers.com/cover.jpg",68 * "offsetX": 50,69 * "offsetY": 2070 * },71 * "photo": {72 * "_id": "wix_media_photo_456",73 * "height": 400,74 * "offsetX": 0,75 * "offsetY": 0,76 * "url": "https://wixmembers.com/photo.jpg",77 * "width": 40078 * },79 * "nickname": "JennyS",80 * "title": "Community Moderator"81 * }82 * }83 * }84 */8586export const myCreateMemberFunction = webMethod(87 Permissions.Anyone,88 async (member) => {89 try {90 const newMember = await elevatedCreateMember(member);91 console.log('Created new member:', newMember);9293 return newMember;94 } catch (error) {95 console.error(error);96 // Handle the error97 }98 }99);100101/* Promise resolves to:102 * {103 * "member": {104 * "_createdDate": "2024-03-01T14:41:09.000Z",105 * "_id": "44f427a2-d860-4b94-8618-5719be99fccd",106 * "_updatedDate": "2024-03-01T14:41:08.877Z",107 * "activityStatus": "ACTIVE",108 * "contact": {109 * "addresses": [110 * {111 * "_id": "",112 * "addressLine2": "Suite 101",113 * "city": "Wixville",114 * "subdivision": "CA",115 * "country": "US",116 * "postalCode": "54321"117 * },118 * {119 * "_id": "",120 * "city": "Wixton",121 * "subdivision": "NY",122 * "country": "US",123 * "postalCode": "12345"124 * }125 * ],126 * "birthdate": "1985-07-15",127 * "company": "Wix Members Inc.",128 * "customFields": {},129 * "emails": [],130 * "firstName": "Jenny",131 * "jobTitle": "Community Manager",132 * "lastName": "Smith",133 * "phones": [134 * "555-123-4567",135 * "555-987-6543"136 * ],137 * "contactId": "44f427a2-d860-4b94-8618-5719be99fccd"138 * },139 * "loginEmail": "jane.smith@wixmembers.com",140 * "loginEmailVerified": false,141 * "privacyStatus": "PRIVATE",142 * "profile": {143 * "cover": {144 * "_id": "",145 * "url": "https://wixmembers.com/cover.jpg",146 * "height": 0,147 * "width": 0148 * },149 * "nickname": "JennyS",150 * "photo": {151 * "_id": "wix_media_photo_456",152 * "url": "//static.wixstatic.com/media/wix_media_photo_456",153 * "height": 0,154 * "width": 0155 * },156 * "title": "Community Moderator"157 * },158 * "status": "APPROVED"159 * }160 * }161 */
Create members from a database
This code imports data from a Wix CMS collection and creates corresponding members using the createMember()
API.
Copy Code
1/**************************************2 * Backend code - createMember.web.js *3 **************************************/4import { members } from 'wix-members.v2';5import { webMethod, Permissions } from 'wix-web-module';6import { elevate } from 'wix-auth';7import wixData from 'wix-data';89const elevatedCreateMember = elevate(members.createMember);1011export const myCreateMemberFunction = webMethod(12 Permissions.Anyone,13 async (member) => {14 try {15 const newMember = await elevatedCreateMember(member);16 console.log('Created new member:', newMember);17 return newMember;18 } catch (error) {19 console.error();20 // Handle the error21 }22 }23 );2425export const importMembersFromCollection = webMethod(26 Permissions.Anyone,27 async function (collectionId) {28 try {29 let membersToImport = [];30 let currentPage = await wixData.query(collectionId).limit(1).find();31 membersToImport = [...membersToImport, ...currentPage.items];3233 while (currentPage.hasNext()) {34 currentPage = await currentPage.next();35 membersToImport = [...membersToImport, ...currentPage.items];36 }3738 for (const memberToImport of membersToImport) {39 await myCreateMemberFunction({40 loginEmail: memberToImport.loginEmail,41 privacyStatus: memberToImport.privacyStatus42 });43 }44 } catch (error) {45 console.error("An error occurred:", error);46 // Handle the error47 }48 }49);5051/*************52 * Page code *53 *************/5455import { importMembersFromCollection } from 'backend/createMember.web.js';5657$w.onReady(function () {5859 let collectionName = '';6061 //This example assumes there is a text input field called `collectionNameInput` on the site page.62 $w("#collectionNameInput").onInput(event => {63 collectionName = event.target.value;64 });6566 $w('#ButtonSiteMembersCollection').onClick(async () => {67 try {68 await importMembersFromCollection(collectionName);69 } catch (error) {70 console.error("An error occurred while handling button click:", error);71 // Handle the error72 }73 });74 });