Hi everyone
I have a problem with the code on a Wedding RSVP page, which has left me no choice but to turn off RSVP’ing for the time being, as the invitations were sent early, and guests are now trying to RSVP, which with how it is currently functioning could see RSVP’s disappear into the ether. I only hope it was turned off in time and no RSVP’s have been lost.
I have another post ( https://www.wix.com/corvid/forum/community-discussion/code-trigerring-emails-when-it-shouldn-t ).
Essentially some of the problems have been resolved (no longer sending emails when email address already exists in the collection), but I am stilling having troubles with this code. I have tried everything suggested and it was still sending the emails when it shouldn’t, but the drop downs and the submit button ended up working ok (other than sending emails when it shouldn’t).
So I had a long, long look at the code and set some more console logs and came to the conclusion that the sendEmail code was executing regardless of the outcome of the code for the export function btn_Submit. So I set about trying to ensure that the promise was resolved before the remainder of code executed and to put the sendEmail code into a function, which is only called when the email address entered by a guest on the RSVP page does not exist in the collection and the required fields are not empty.
I have searched high and low for other posts that might help me resolve but I just can’t find what I need.
It has been tested by myself and a number of other people, and some times everything works perfectly and sometimes it doesn’t.
The errors that have occurred when RSVP’ing attending with 1 or more additional guest are:-
-
Only some guests data entered being returned to the collection (Guest1/main guest is returning) but RSVP Confirmation email sent, but no RSVP submitted email sent;
-
RSVP Confirmation being sent; RSVP email being sent, not all guests data being returned to collection;
-
No data being returned to collection, RSVP confirmation send, RSVP submitted email not sent.
As you can see the problems vary in different instances. Of particular concern is the data not returning to the collection. I could abandon the auto emails if I knew all the data was getting returned to the collection as I could do those manually, but without it, it’s a bit of a pickle.
Once more ANY suggestions or assistance would be greatly appreciated, as mentioned invites have been sent so I need this working ASAP. Thanks in advance.
Full page code below :
import wixlocation from ‘wix-location’;
import wixData from ‘wix-data’;
import {sendEmail} from ‘backend/email’;
$w.onReady( function () {
});
export function NoAddGuests_change_1(event){
if ($w(‘#NoAddGuests’).value=== “1”){
($w(‘#AddGuestsHead’)).expand();
($w(‘#Guest2Grp’)).expand();
($w(‘#Guest3Grp’)).collapse();
($w(‘#Guest4Grp’)).collapse();
($w(‘#Guest5Grp’)).collapse();
($w(‘#Guest6Grp’)).collapse();
($w(‘#Guest7Grp’)).collapse();
} else if ($w(‘#NoAddGuests’).value === “2”){
($w(‘#AddGuestsHead’)).expand();
($w(‘#Guest2Grp’)).expand();
($w(‘#Guest3Grp’)).expand();
($w(‘#Guest4Grp’)).collapse();
($w(‘#Guest5Grp’)).collapse();
($w(‘#Guest6Grp’)).collapse();
($w(‘#Guest7Grp’)).collapse();
} else if ($w(‘#NoAddGuests’).value === “3”){
($w(‘#AddGuestsHead’)).expand();
($w(‘#Guest2Grp’)).expand();
($w(‘#Guest3Grp’)).expand();
($w(‘#Guest4Grp’)).expand();
($w(‘#Guest5Grp’)).collapse();
($w(‘#Guest6Grp’)).collapse();
($w(‘#Guest7Grp’)).collapse();
} else if ($w(‘#NoAddGuests’).value === “4”){
($w(‘#AddGuestsHead’)).expand();
($w(‘#Guest2Grp’)).expand();
($w(‘#Guest3Grp’)).expand();
($w(‘#Guest4Grp’)).expand();
($w(‘#Guest5Grp’)).expand();
($w(‘#Guest6Grp’)).collapse();
($w(‘#Guest7Grp’)).collapse();
} else if ($w(‘#NoAddGuests’).value === “5”){
($w(‘#AddGuestsHead’)).expand();
($w(‘#Guest2Grp’)).expand();
($w(‘#Guest3Grp’)).expand();
($w(‘#Guest4Grp’)).expand();
($w(‘#Guest5Grp’)).expand();
($w(‘#Guest6Grp’)).expand();
($w(‘#Guest7Grp’)).collapse();
} else if ($w(‘#NoAddGuests’).value === “6”){
($w(‘#AddGuestsHead’)).expand();
($w(‘#Guest2Grp’)).expand();
($w(‘#Guest3Grp’)).expand();
($w(‘#Guest4Grp’)).expand();
($w(‘#Guest5Grp’)).expand();
($w(‘#Guest6Grp’)).expand();
($w(‘#Guest7Grp’)).expand();
} else if ($w(‘#NoAddGuests’).value===“0”){
($w(‘#AddGuestsHead’)).expand();
($w(‘#Guest2Grp’)).collapse();
($w(‘#Guest3Grp’)).collapse();
($w(‘#Guest4Grp’)).collapse();
($w(‘#Guest5Grp’)).collapse();
($w(‘#Guest6Grp’)).collapse();
($w(‘#Guest7Grp’)).collapse();
}
}
export function btnSubmit_click_1(event,$w) {
wixData.query(“YvonneandJosh”)
.eq(“email”, $w(‘#emailaddr’).value)
.find()
.then(res => { if (res.length > 0)
{
$w(‘#emailaddr’).value=“”
$w(‘#Guest1Name’).value=“”
$w(‘#Guest2Name’).value=“”
$w(‘#Guest3Name’).value=“”
$w(‘#Guest4Name’).value=“”
$w(‘#Guest5Name’).value=“”
$w(‘#Guest6Name’).value=“”
$w(‘#Guest7Name’).value=“”
$w(‘#Guest1Surname’).value=“”
$w(‘#Guest2Surname’).value=“”
$w(‘#Guest3Surname’).value=“”
$w(‘#Guest4Surname’).value=“”
$w(‘#Guest5Surname’).value=“”
$w(‘#Guest6Surname’).value=“”
$w(‘#Guest7Surname’).value=“”
$w(‘#Guest1Food’).value=“”
$w(‘#Guest2Food’).value=“”
$w(‘#Guest3Food’).value=“”
$w(‘#Guest4Food’).value=“”
$w(‘#Guest5Food’).value=“”
$w(‘#Guest6Food’).value=“”
$w(‘#Guest7Food’).value=“”
$w(‘#Guest1Songs’).value=“”
$w(‘#Guest2Songs’).value=“”
$w(‘#Guest3Songs’).value=“”
$w(‘#Guest4Songs’).value=“”
$w(‘#Guest5Songs’).value=“”
$w(‘#Guest6Songs’).value=“”
$w(‘#Guest7Songs’).value=“”
$w(‘#NoAddGuests’).value=0
$w(‘#ErrorMsgGrp’).expand()
return ;
// 5-24-2019 - Since e-mail address was found, they already got an RSVP (don’t send another)
} **else if** ($w('#Guest7Name').value !== "") {
//dataset 7 for Guest 7
$w(‘#dataset1’).save();
console.log(“Dataset1 is saving”)
$w(‘#dataset2’).save();
console.log(“Dataset2 is saving”)
$w(‘#dataset3’).save();
console.log(“Dataset3 is saving”)
$w(‘#dataset4’).save();
console.log(“Dataset4 is saving”)
$w(‘#dataset5’).save();
console.log(“Dataset5 is saving”)
$w(‘#dataset6’).save();
console.log(“Dataset6 is saving”)
$w(‘#dataset7’).save()
console.log(“Dataset7 is saving”)
confirmRSVP();
} else if ($w(‘#Guest6Name’).value !== “”) {
// Dataset 6 for Guest 6 details
$w(‘#dataset1’).save();
console.log(“Dataset1 is saving”)
$w(‘#dataset2’).save();
console.log(“Dataset2 is saving”)
$w(‘#dataset3’).save();
console.log(“Dataset3 is saving”)
$w(‘#dataset4’).save();
console.log(“Dataset4 is saving”)
$w(‘#dataset5’).save();
console.log(“Dataset5 is saving”)
$w(‘#dataset6’).save();
console.log(“Dataset6 is saving”)
confirmRSVP();
} else if ($w(‘#Guest5Name’).value !== “”) {
// Dataset 5 for Guest 5 details
$w(‘#dataset1’).save();
console.log(“Dataset1 is saving”)
$w(‘#dataset2’).save();
console.log(“Dataset2 is saving”)
$w(‘#dataset3’).save();
console.log(“Dataset3 is saving”)
$w(‘#dataset4’).save();
console.log(“Dataset4 is saving”)
$w(‘#dataset5’).save();
console.log(“Dataset5 is saving”)
confirmRSVP();
} else if ($w(‘#Guest4Name’).value !== “”) {
// Dataset 4 for Guest 4 details
$w(‘#dataset1’).save();
console.log(“Dataset1 is saving”)
$w(‘#dataset2’).save();
console.log(“Dataset2 is saving”)
$w(‘#dataset3’).save();
console.log(“Dataset3 is saving”)
$w(‘#dataset4’).save();
console.log(“Dataset4 is saving”)
confirmRSVP();
} else if ($w(‘#Guest3Name’).value !== “”) {
// Dataset 3 for Guest 3 details
$w(‘#dataset1’).save();
console.log(“Dataset1 is saving”)
$w(‘#dataset2’).save();
console.log(“Dataset2 is saving”)
$w(‘#dataset3’).save();
console.log(“Dataset3 is saving”)
confirmRSVP();
} else if ($w(‘#Guest2Name’).value !== “”) {
// Dataset 2 for Guest 2 details
$w(‘#dataset1’).save();
console.log(“Dataset1 is saving”)
$w(‘#dataset2’).save();
console.log(“Dataset2 is saving”)
confirmRSVP();
} else if ($w(‘#Guest1Name’).value !== “”) {
//dataset 1 for Guest 1 details
$w(‘#dataset1’).save();
console.log(“Dataset1 is saving”)
confirmRSVP();
}
});
}
function confirmRSVP(){
let myprovider = “gmail”; // The alias you used for this service in emailJS
let mytemplate = “yjrsvpconfirmation”; // The template name you defined in emailJS
let myparams = {
“Email”: $w(‘#emailaddr’).value,
“Name1”: $w(‘#Guest1Name’).value,
“Surname1”: $w(‘#Guest1Surname’).value,
“Food1”: $w(‘#Guest1Food’).value,
“Songs1”: $w(‘#Guest1Food’).value,
“Name2”: $w(‘#Guest2Name’).value,
“Surname2”: $w(‘#Guest2Surname’).value,
“Food2”: $w(‘#Guest2Food’).value,
“Songs2”: $w(‘#Guest2Songs’).value,
“Name3”: $w(‘#Guest3Name’).value,
“Surname3”: $w(‘#Guest3Surname’).value,
“Food3”: $w(‘#Guest3Food’).value,
“Songs3”: $w(‘#Guest3Songs’).value,
“Name4”: $w(‘#Guest4Name’).value,
“Surname4”: $w(‘#Guest4Surname’).value,
“Food4”: $w(‘#Guest4Food’).value,
“Songs4”: $w(‘#Guest4Songs’).value,
“Name5”: $w(‘#Guest5Name’).value,
“Surname5”: $w(‘#Guest5Surname’).value,
“Food5”: $w(‘#Guest5Food’).value,
“Songs5”: $w(‘#Guest5Songs’).value,
“Name6”: $w(‘#Guest6Name’).value,
“Surname6”: $w(‘#Guest6Surname’).value,
“Food6”: $w(‘#Guest6Food’).value,
“Songs6”: $w(‘#Guest6Songs’).value,
“Name7”: $w(‘#Guest7Name’).value,
“Surname7”: $w(‘#Guest7Surname’).value,
“Food7”: $w(‘#Guest7Food’).value,
“Songs7”: $w(‘#Guest7Songs’).value,
“Attending1”: $w(‘#Guest1Response’).value,
“Attending2”: $w(‘#Guest2Response’).value,
“Attending3”: $w(‘#Guest3Response’).value,
“Attending4”: $w(‘#Guest4Response’).value,
“Attending5”: $w(‘#Guest5Response’).value,
“Attending6”: $w(‘#Guest6Response’).value,
“Attending7”: $w(‘#Guest7Response’).value,
};
sendEmail (myprovider, mytemplate, myparams);
let myprovider1= “gmail”;
let mytemplate1 = “yjrsvpsubmitted”; // The template name you defined in emailJS
let myparams1 = {
“Name1”: $w(‘#Guest1Name’).value,
“Surname1”: $w(‘#Guest1Surname’).value,
“Food1”: $w(‘#Guest1Food’).value,
“Songs1”: $w(‘#Guest1Food’).value,
“Name2”: $w(‘#Guest2Name’).value,
“Surname2”: $w(‘#Guest2Surname’).value,
“Food2”: $w(‘#Guest2Food’).value,
“Songs2”: $w(‘#Guest2Songs’).value,
“Name3”: $w(‘#Guest3Name’).value,
“Surname3”: $w(‘#Guest3Surname’).value,
“Food3”: $w(‘#Guest3Food’).value,
“Songs3”: $w(‘#Guest3Songs’).value,
“Name4”: $w(‘#Guest4Name’).value,
“Surname4”: $w(‘#Guest4Surname’).value,
“Food4”: $w(‘#Guest4Food’).value,
“Songs4”: $w(‘#Guest4Songs’).value,
“Name5”: $w(‘#Guest5Name’).value,
“Surname5”: $w(‘#Guest5Surname’).value,
“Food5”: $w(‘#Guest5Food’).value,
“Songs5”: $w(‘#Guest5Songs’).value,
“Name6”: $w(‘#Guest6Name’).value,
“Surname6”: $w(‘#Guest6Surname’).value,
“Food6”: $w(‘#Guest6Food’).value,
“Songs6”: $w(‘#Guest6Songs’).value,
“Name7”: $w(‘#Guest7Name’).value,
“Surname7”: $w(‘#Guest7Surname’).value,
“Food7”: $w(‘#Guest7Food’).value,
“Songs7”: $w(‘#Guest7Songs’).value,
“Attending1”: $w(‘#Guest1Response’).value,
“Attending2”: $w(‘#Guest2Response’).value,
“Attending3”: $w(‘#Guest3Response’).value,
“Attending4”: $w(‘#Guest4Response’).value,
“Attending5”: $w(‘#Guest5Response’).value,
“Attending6”: $w(‘#Guest6Response’).value,
“Attending7”: $w(‘#Guest7Response’).value,
};
sendEmail (myprovider1, mytemplate1, myparams1);
if (($w(‘#Guest1Response’).value === “Attending”) ^ ($w(‘#Guest2Response’).value.value === “Attending”) ^ ($w(‘#Guest3Response’).value.value === “Attending”) ^ ($w(‘#Guest4Response’).value.value === “Attending”) ^ ($w(‘#Guest5Response’).value.value === “Attending”) ^ ($w(‘#Guest6Response’).value.value === “Attending”) ^ ($w(‘#Guest7Response’).value.value === “Attending”))
{
wixlocation.to(“/yvonneandjosh-thankyou”);
} else {
wixlocation.to(“/yvonneandjosh-sorry”);
}
}
export function ClearForm_click(event) {
$w(‘#ErrorMsgGrp’).collapse()
}