Получение нового контакта, дублированного в контактах Wix, при форматировании даты от .toString () до .toLocaleDateString ('en-GB') или .toDateString () - PullRequest
0 голосов
/ 29 января 2019

Я настроил активированную форму электронной почты, используя код с помощью Steve (Mod), который показан в конце этого поста.

Он в основном сохраняет входные данные пользователей в набор данных, а затем создаетновый контакт с настраиваемыми полями в контактах, которые также заполняются, затем отправляет по электронной почте инициированное электронное письмо с переменными обратно.

Все работает нормально, за исключением того, что в переменной электронной почты отображается текущая датаи время из поля набора данных, поскольку мы используем следующую строку:

"startDate": startDate.toString()

Принимая во внимание, что я предпочел бы использовать один из них ниже, чтобы дата форматировалась так, чтобы просто отображать дату в сгенерированном электронном письме:

"startDate": startDate.toLocaleDateString('en-GB')
"startDate": startDate.toDateString()

Однако, когда в коде вместо одной существующей строки используется любая из двух приведенных выше строк, по какой-то причине он создает два идентичных контакта для этого пользователя.

Одна показывает новыеконтактируйте только с указанным ярлыком, другой - их последнее действие на веб-сайте и все входные данные из формы ввода.

дубликат ввода Wix-контакта

Теперь очевидно, что не следует разбивать один контакт на два отдельных контакта, плюс в настоящее время нет способа объединения дублирующих контактов.Итак, должно быть простое исправление для этого!

Могу ли я просто где-то изменить существующий код или добавить в него что-то вроде этого:

let item = $w("#JoinUsForm").getCurrentItem();
let startDate = item.startDate;
startDate = startDate.toDateString(); // or startDate.toLocaleDateString('en-GB');

Или я могу как-то добавить его вBeforeInsert перехватывает набор данных и имеет его как data.js в моем бэкэнде?(В настоящее время у меня уже есть один, чтобы убедиться, что первая буква имени и фамилии являются заглавными буквами в разных наборах данных).

Или я могу установить пакеты узлов в свой бэкэнд и импортировать либо Moment.js, либо DatePicker.jsв код страницы или хук в бэкэнде?(Я уже пробовал установить оба и протестировать их в моем data.js в бэкэнде, однако он все еще создает дубликаты, поэтому, несомненно, его кодирование было неправильным, и оно не сработало, поэтому я удалил оба и удалил код.)

Это код, который я использую для своей формы, создания контакта и отправки сработавшего электронного письма:

import wixCRM from 'wix-crm';

$w.onReady(function () {
 $w("#JoinUsForm").onAfterSave(() => {
 let startDate = $w("#startDate").value;
 let firstName = $w('#firstName').value;
 let lastName = $w('#lastName').value;
 let email = $w("#email").value;
 let choirRole = $w("#choirRole").value;
 let readMusic = $w("#readMusic").value;
 let choirBefore = $w("#choirBefore").value;
 let startNow = $w("#startNow").value;

    wixCRM.createContact({ 
 "firstName": firstName,
 "lastName": lastName,
 "emails": [email],
 "Choir Role": choirRole,
 "Read Music": readMusic,
 "Choir Before": choirBefore,
 "Start Now": startNow,
 "Start Date": startDate
      }) 
      .then((contactId) => { 
 return wixCRM.emailContact('joiningusform', contactId, { 
  "variables": { 
 "firstName": firstName,
 "email": email,
 "choirRole": choirRole,
 "readMusic": readMusic,
 "choirBefore": choirBefore,
 "startNow": startNow,
 "startDate": startDate.toString()
          } 
        });  
      }) 
      .catch((err) => { 
 // handle the error if the email wasn't sent
        console.log(`Error: ${err}`);
      }); 
  }); 
}); 
...