New APIs Are on The Way for wix-members.v2 - Spoiler

As from now I will start posting some updates/spoilers about new APIs that Wix is working on.

This update pushed 17h ago. (Hidden in Docs)

What we have currently with members?

and more.


And currently in new v2 APIs we only have Badges and Events category. But with new update we will also have Members category in new v2 APIs.

Here are the new v2 APIs in Members category:

  • createMember *new
  • updateMember
  • deleteMember
  • queryMembers *new
  • joinCommunity *new
  • leaveCommunity *new
  • deleteMemberAddress

I hope Wix will publish this asap so we can all see new APIs together. When I have more info I will post it here.


Keep in mind that I’m not an official resource just sharing what I find with you :slight_smile:

New APIs docs published.

Members - Velo API Reference - Wix.com

Hey! Thanks for sharing.

For “import { webMethod, Permissions } from ‘wix-web-module’;” why am I getting “Cannot find module ‘wix-web-module’ or its corresponding type declarations.”

I am trying to use this (updateMember - Velo API Reference - Wix.com) API to change the status of user from PRIVATE to PUBLIC.

// API Reference: https://www.wix.com/velo/reference/api-overview/introduction
// “Hello, World!” Example: https://learn-code.wix.com/en/article/1-hello-world

import wixData from 'wix-data';
import { Permissions, webMethod } from 'wix-web-module';
import { members } from 'wix-members.v2';


    $w('#repeater1').onItemReady(($item, itemData, index) => {
        const owner = itemData._owner;
        console.log(`Retrieved _owner value for container ${index} from Jobs`);

        wixData.query("Members/FullData")
            .eq("_id", owner)
            .find()
            .then(membersResults => {
                if (membersResults.items.length > 0) {
                    const slug = membersResults.items[0].slug;
                    const nickname = membersResults.items[0].nickname;
                    const privacyStatus = membersResults.items[0].privacyStatus; // Retrieve privacyStatus

                    if (privacyStatus === "PRIVATE") {
                        // Update privacyStatus to "PUBLIC"
                        const updatedMember = {
                            privacyStatus: "PUBLIC"
                        };

                        // Call updateMember function to update privacyStatus
                        myUpdateMemberFunction(owner, updatedMember)
                            .then(() => {
                                console.log(`Updated privacyStatus to PUBLIC for container ${index}`);
                            })
                            .catch(error => {
                                console.error("Error updating privacyStatus: " + error);
                            });
                    }

                    const formattedUrl = 'https://www.firstcontact.lgbt/profile/' + slug + '/profile';
                    console.log(`Formatted URL (${formattedUrl}) for container ${index}`);

                    wixData.query("Jobs")
                        .eq("_owner", owner)
                        .find()
                        .then(jobsResults => {
                            if (jobsResults.items.length > 0) {
                                const jobRecord = jobsResults.items[0];
                                const updatedJobRecord = {
                                    ...jobRecord,
                                    title: nickname,
                                    profileUrl: formattedUrl
                                };

                                wixData.update("Jobs", updatedJobRecord)
                                    .then(() => {
                                        console.log(`Updated job record for container ${index}`);
                                    })
                                    .catch(error => {
                                        console.error("Error updating job record in Jobs collection: " + error);
                                    });
                            } else {
                                console.error("No matching record found in Jobs collection for container " + index);
                            }
                        })
                        .catch(error => {
                            console.error("Error querying Jobs database: " + error);
                        });

                    $item("#title").text = nickname;
                } else {
                    console.error("No matching record found in Members/FullData database for container " + index);
                }
            })
            .catch(error => {
                console.error("Error querying Members/FullData database: " + error);
            });
    });
});

// Function to update member privacyStatus
export const myUpdateMemberFunction = webMethod(
  Permissions.Anyone, (id, member) => {
  return members.updateMember(id, member)
    .then((member) => {
      return member;
    })
    .catch((error) => {
      console.error(error);
    });
});