Verification link in email using wix

401 Views Asked by At

I'm new in wix https://manage.wix.com. I'm have created a registration page that sends an email to the user containing a link to confirm his account that he is doing. I coded the sending of the email well, but I could not put an activation link inside the email message so that it send it to the confirmation page and verify his account. here are my codes:

Verify Registration page:

import wixLocation from 'wix-location';
import wixUsersBackend from 'wix-users';
import {doApproval} from 'backend/register';

  $w.onReady( () => {
  // get the token from the URL
    let token = wixLocation.query.token;
    doApproval(token)
    .then( (result) => {
      if (result.approved){
  // log the user in
   wixUsersBackend.applySessionToken(result.sessionToken);
   console.log("Approved");
     }
   else {
     console.log("Not approved!");
           }
      } );
   } );

Register page:

  import wixData from 'wix-data';
  import wixWindow from 'wix-window';
  import wixUsers from 'wix-users';
  import wixUsersBackend from 'wix-users';
  import {doRegistration} from 'backend/register';
  import {sendEmail, sendEmailWithRecipient} from 'backend/email';

  /* send confirmation email to client to activate his account*/ 

       function sendFormData() {
       let subject = `Activate your account ${$w("#firstname").value}`;
       let body = `Dear ${$w("#firstname").value} ${$w("#lastname").value},
            
            Thank you for registering on TIMLANDS, we hope you find it rewarding!
            Please note that your account at TIMLANDS needs to be activated.
            Please click on the following URL: xxxxxxxxxx
            If the link above does not work, try copying and pasting it into the address bar 
            in your browser.
              This email is to confirm your registration. If you have received this email by 
               mistake, please notify us.
         
         TIMLANDS Team`;

        const recipient = $w("#email").value;

       /* send confirmation email to client to activate his account*/ 

        sendEmailWithRecipient(subject, body, recipient)
         .then(response => console.log(response)); 

        sendEmail(subject, body)
           .then(response => console.log(response));
     }

email.jsw

           import {sendWithService} from 'backend/sendGrid';

                export function sendEmail(subject, body) {
                   const key = "SG.IIM7kezyQXm4UD........";
                   const sender = "[email protected]";
                   const recipient = "[email protected]";
                   return sendWithService(key, sender, recipient, subject, body);
                  }

                 export function sendEmailWithRecipient(subject, body, recipient) {
                     const key = "SG.IIM7kezyQXm4UD......";  
                     const sender = "[email protected]";
                     return sendWithService(key, sender, recipient, subject, body);
                  }

register.jsw

        import wixUsersBackend from 'wix-users-backend';

          export function doRegistration(email, password, firstName, lastName) {
               
         // register the user
                return wixUsersBackend.register(email, password, {
                  "contactInfo": {
                      "firstName": firstName,
                      "lastName": lastName
                     }
                   } )
                 .then( (results) => {
         // user is now registered and pending approval
         // send a registration verification email
         wixUsersBackend.emailUser('verifyRegistration', results.user.id, {
         "variables": {
             "name": firstName,
             "verifyLink": `http://timlands/verificationpage?token=${results.approvalToken}`
             }
        } );
    } );
 }
       export function doApproval(token) {
         // approve the user
            return wixUsersBackend.approveByToken(token)
         // user is now active, but not logged in
         // return the session token to log in the user client-side
            .then( (sessionToken) => {
                   return {sessionToken, "approved": true};
            } )
           .catch( (error) => {
                return {"approved": false, "reason": error};
         } );
      }

I want to put the the activation link in the register.jsw to the message body in the register page. as shown in picture below any help, please! enter image description here

1

There are 1 best solutions below

0
Roqaia Alrfou On BEST ANSWER

The problem was that I didn't make a variable on the triggered email , https://support.wix.com/en/article/triggered-emails-getting-started Hope someone can benefit from this.