77 lines
2.7 KiB
JavaScript
77 lines
2.7 KiB
JavaScript
// phpcs:disable
|
|
/**
|
|
* addOnSubmit.
|
|
* Adds the submit function to subscribe contact forms
|
|
* @package CreativeMail
|
|
*/
|
|
function setSummaryText(parentElement, name, text) {
|
|
if (!text) return;
|
|
const element = parentElement.getElementsByClassName(name)[0];
|
|
if (element) element.textContent = text;
|
|
}
|
|
|
|
function setSummary(parentElement, values) {
|
|
for (const [key, value] of Object.entries(values)) {
|
|
setSummaryText(parentElement, key, value);
|
|
}
|
|
}
|
|
|
|
(function addOnSubmit() {
|
|
let submitButtons = document.getElementsByClassName("cm-contact-form");
|
|
for (let element of submitButtons) {
|
|
element.onsubmit = (e) => {
|
|
e.preventDefault();
|
|
let formElement = e.target;
|
|
let firstName = formElement.getElementsByClassName("firstName")[0]?.value;
|
|
let lastName = formElement.getElementsByClassName("lastName")[0]?.value;
|
|
let email = formElement.getElementsByClassName("email")[0]?.value;
|
|
let telephone = formElement.getElementsByClassName("telephone")[0]?.value;
|
|
let consent = formElement.getElementsByClassName("consent_check")[0]
|
|
?.checked;
|
|
let listId =
|
|
formElement.getElementsByClassName("list_id")[0]?.value || null;
|
|
jQuery
|
|
.post(ce4wp_form_submit_data?.url, {
|
|
action: "ce4wp_form_submission",
|
|
nonce: ce4wp_form_submit_data?.nonce,
|
|
first_name: firstName,
|
|
last_name: lastName,
|
|
email: email,
|
|
telephone: telephone,
|
|
consent: consent,
|
|
list_id: listId,
|
|
})
|
|
.done(function() {
|
|
let parentElement = formElement.parentElement;
|
|
const onSubmissionSetting = parentElement.getElementsByClassName(
|
|
'onSubmissionSetting'
|
|
)[0]?.value;
|
|
|
|
if (onSubmissionSetting === "redirect") {
|
|
var pattern = new RegExp('^(https?)://');
|
|
let redirectValue = parentElement.getElementsByClassName(
|
|
"redirect"
|
|
)[0]?.value;
|
|
if(!pattern.test(redirectValue)) {
|
|
redirectValue = "https://" + redirectValue;
|
|
}
|
|
window.location.href = redirectValue;
|
|
} else {
|
|
formElement.style.visibility = "hidden";
|
|
if (onSubmissionSetting === "summary") {
|
|
setSummary(parentElement, {
|
|
firstNameSummary: firstName ? firstName + " ": null,
|
|
lastNameSummary: lastName,
|
|
telephoneSummary: telephone,
|
|
emailSummary: email,
|
|
});
|
|
}
|
|
let onSubmission = parentElement.getElementsByClassName(
|
|
"onSubmission"
|
|
)[0];
|
|
onSubmission.style.display = "block";
|
|
}
|
|
});
|
|
};
|
|
}
|
|
})();
|