I have no experience coding (unless you count that one week I was in a coding class about 15 years ago...that I promptly dropped). It was still as challenging as I remember, but this time, I didn't give up.
I already had a Wix website, but I needed more functionality. We needed customers to be able to sign in to view their project status, update their information, and review documents. Adding member/client login pages is part of effort to trying to make all of our processes more systematic.
Unfortunately, the videos and tutorials posted online did not work for me. Obviously, no one can have tutorials for each specific situation. I still haven't figured out exactly why, but I did figure out how to work around the issues. So, in case any other coding newbies stumble upon this post, I hope my balding helps your efforts. (Yes, balding. I definitely lost some hair.) I definitely don't expect people to read this entire post, and I don't profess to have done it the "right" way. I just hope something here is useful to someone.
Issue #1: The onClick functions would not work to prompt the user to log in. Therefore, I needed to figure our a way around it. Making them member-only pages would have been great. But, then, how do they log out? How could I differentiate between existing clients to register and existing clients to login without leaving a cumbersome form on the page. Also, the disabled/hidden buttons would not enable/show without refreshing the page. The available Member Login app could have helped. However, every time I logged in, the log out button read, "Hello Test Log Out"...I was hoping it was only in preview mode, but nope. It was on my published site, too. That's not going to work either.
Issue#2: Even I used the Member Login app or made the page "members only", I still had to figure out how to make a new form for new clients to create a new item in the database, make a separate page/ form for read-only viewing of current information, and make a third page/form for them to update their information.
Issue #3: The tutorials and videos detailed a way for member to enter and update information on the same form. I needed something more advanced than that, more restrictive on the clients' side. That way, we can monitor and verify changes to client info.
Issue #5: If I never see another red circle or yellow triangle EVER AGAIN a day in my life...but I digress.
Solution #1: Logging In. I started with a regular page with my login/logout buttons. Since the onClick functions weren't working and my buttons would not update without a page reload, I added an onReady command to a separate pages that forces users to log in as soon when it loads. I have a registration form on one page for new users to sign up and lightbox for existing members to log in.
Solution #2: Separating page functions. Because of these wonderful things they call Datasets, we are able to create different forms, with different permission, performing different functions and still export all of the information back to the database. Wonderful! The first page is a regular page connected to the dynamic page by a button. That existing users click to view their information on the second page. This page is read-only. The third page is a form that new users complete in order to insert their information into the database. This is write-only.
Solution #3: Because of the way I set up solution #2, I was able to create a flow that works for what we need. I created a fourth page that existing members use to submit updates to their contact info. I connected this form to new fields in the database so that their new information doesn't overwrite the old. For example, when they sign up, the put their email in the "Email" field, but they update is in the "New Email" field. That way I am able to review and verify.
Solution #4. Customer-specific information. Because of these work-arounds, we are able to use Wix effectively for managing client profiles. Dynamic pages are the best thing since mp3 music files. I can listen to my entire music collection without carrying around a suitcase full of CDs. Well, in this case, I can manage dozens of customers without having to create dozens of separate password-protected pages.
Solutions #5: I don't have one. Yet, because I know I'll be coding more in the future. This was a frustrating and challenging undertaking, but the completion was rewarding.
If anyone is interested in any code I used, I'm definitely willing to share. And if anyone has any feedback about simpler solutions I may have missed, I'm open to that, as well.
Thanks for reading!
P.S. I didn't proofread this at all, so sorry in advance.