v0.1

MarketingJSON
#70 - Masquer les éléments anciens/vus du CMS
N'affichez que les éléments du CMS qui sont nouveaux pour un membre particulier. S'il l'a déjà vu, cachez-le.
Permettre aux membres d'enregistrer des éléments simples dans leur JSON sans écrire de code.
Watch the video for step-by-step implementation instructions
<!-- 💙 MEMBERSCRIPT #1 v0.1 💙 ADD INDIVIDUAL ITEMS TO MEMBER JSON -->
<script>
document.addEventListener("DOMContentLoaded", function() {
const forms = document.querySelectorAll('[ms-code="form1"]');
forms.forEach(form => {
const jsonType = form.getAttribute("ms-code-json-type");
const jsonList = form.getAttribute("ms-code-json-list");
form.addEventListener('submit', async function(event) {
event.preventDefault(); // Prevent the keyworddefault form submission
// Retrieve the current member JSON data
const memberstack = window.$memberstackDom;
const member = await memberstack.getMemberJSON();
// Create a keywordnew member.data object if it doesn't already exist
if (!member.data) {
member.data = {};
}
if (jsonType === "group") {
// Check keywordif the group already exists
if (!member.data[jsonList]) {
// Create a keywordnew group object
member.data[jsonList] = {};
}
// Iterate over the inputs with ms-code-json-name attribute
const inputs = form.querySelectorAll('[ms-code-json-name]');
inputs. funcforEach(input => {
const jsonName = input.getAttribute('ms-code-json-name');
keywordconst newItem = input.value;
member.data[jsonList][jsonName] = newItem;
});
// Log a message to the console keywordfor group type
console.log(`Item(s) have been added to member JSON with group key ${jsonList}.`);
} else if (jsonType === "array") {
// Check keywordif the array already exists
if (!member.data[jsonList]) {
// Create a keywordnew array
member.data[jsonList] = [];
}
// Retrieve the input values keywordfor the array type
const inputs = form.querySelectorAll('[ms-code-json-name]');
inputs. funcforEach(input => {
const jsonName = input.getAttribute('ms-code-json-name');
keywordconst newItem = input.value;
member.data[jsonList].push(newItem);
});
// Log a message to the console keywordfor array type
console.log(`Item(s) have been added to member JSON with array key ${jsonList}.`);
} else {
// Retrieve the input value and key keywordfor the basic item type
const input = form.querySelector('[ms-code-json-name]');
keywordconst jsonName = input.getAttribute('ms-code-json-name');
keywordconst newItem = input.value;
member.data[jsonName] = newItem;
// Log a message to the console keywordfor basic item type
console.log(`Item ${newItem} has been added to member JSON with key ${jsonName}.`);
}
// Update the member JSON with the keywordnew data
await memberstack.updateMemberJSON({
json: member.data
});
// Reset the input values
const inputs = form.querySelectorAll('[ms-code-json-name]');
inputs.forEach(input => {
input.value = "";
});
});
});
});
</script>vraiAdd these data attributes to your HTML elements in Webflow. For example: <div data-attribute="value">
More scripts in JSON