1. Startseite
  2. Wissensdatenbank
  3. Personalisierung
  4. Benachrichtigungsname und E-Mail-Adresse automatisch aus benutzerdefinierten Feldern ausfüllen

Benachrichtigungsname und E-Mail-Adresse automatisch aus benutzerdefinierten Feldern ausfüllen

Open User Map verfügt über eine optionale Benachrichtigungsfunktion, mit der Nutzer eine E-Mail erhalten können, sobald ihr übermittelter Standort genehmigt bzw. veröffentlicht wurde.

In manchen Fällen erfassen Sie den Namen und die E-Mail-Adresse des Benutzers möglicherweise bereits über benutzerdefinierte Felder. Um zu vermeiden, dass Benutzer dieselben Daten zweimal eingeben müssen, können Sie den folgenden JavaScript-Code verwenden.

Das Skript kopiert die Werte aus Ihren benutzerdefinierten Feldern in die internen Open User Map-Benachrichtigungsfelder, sobald der Benutzer das Kontrollkästchen für die Benachrichtigung aktiviert.

Um das Skript auf Open User Map anzuwenden, können Sie es kopieren und dort einfügen unter Öffnen Sie User Map > Einstellungen > Erweitert > Custom JS. Vergiss nicht, es anzupassen.

JavaScript-Schnipsel

JavaScript
(function () {
  'use strict';

  /**
   * OUM Notification Autofill
   *
   * This script copies name and email values from custom fields
   * into the internal Open User Map notification fields.
   */
  const config = {
    /**
     * Set your custom field IDs here.
     *
     * You can find these IDs in the HTML source of the form.
     * Example:
     * name="oum_location_custom_fields[1234567890]"
     */
    customFieldIds: {
      firstName: 'CUSTOM_FIELD_ID_FIRST_NAME',
      lastName: 'CUSTOM_FIELD_ID_LAST_NAME',
      email: 'CUSTOM_FIELD_ID_EMAIL',
    },

    /**
     * Set this to true if you want to hide the internal
     * notification name and email fields from the form.
     *
     * The fields will still be filled and submitted in the background.
     */
    hideNotificationFields: true,
  };

  const form = document.querySelector('#oum_add_location');

  if (!form) {
    return;
  }

  const notificationToggle = form.querySelector('#oum_location_notification');
  const notificationName = form.querySelector('#oum_location_author_name');
  const notificationEmail = form.querySelector('#oum_location_author_email');
  const notificationWrapper = form.querySelector('#oum_author');

  const firstNameField = form.querySelector(
    '[name="oum_location_custom_fields[' + config.customFieldIds.firstName + ']"]'
  );

  const lastNameField = form.querySelector(
    '[name="oum_location_custom_fields[' + config.customFieldIds.lastName + ']"]'
  );

  const emailField = form.querySelector(
    '[name="oum_location_custom_fields[' + config.customFieldIds.email + ']"]'
  );

  if (
    !notificationToggle ||
    !notificationName ||
    !notificationEmail ||
    !firstNameField ||
    !lastNameField ||
    !emailField
  ) {
    return;
  }

  if (config.hideNotificationFields && notificationWrapper) {
    notificationWrapper.style.display = 'none';
  }

  notificationName.readOnly = true;
  notificationEmail.readOnly = true;

  function getValue(field) {
    return field && field.value ? field.value.trim() : '';
  }

  function updateNotificationFields() {
    if (!notificationToggle.checked) {
      return;
    }

    const fullName = [getValue(firstNameField), getValue(lastNameField)]
      .filter(Boolean)
      .join(' ');

    notificationName.value = fullName;
    notificationEmail.value = getValue(emailField);
  }

  notificationToggle.addEventListener('change', updateNotificationFields);

  firstNameField.addEventListener('input', updateNotificationFields);
  lastNameField.addEventListener('input', updateNotificationFields);
  emailField.addEventListener('input', updateNotificationFields);

  form.addEventListener('submit', updateNotificationFields);
})();

Konfiguration

Nur der Konfigurationsabschnitt am Anfang des Codeausschnitts muss angepasst werden.

Ersetzen Sie diese Werte durch die IDs Ihrer eigenen benutzerdefinierten Felder:

JavaScript
customFieldIds: {
  firstName: 'CUSTOM_FIELD_ID_FIRST_NAME',
  lastName: 'CUSTOM_FIELD_ID_LAST_NAME',
  email: 'CUSTOM_FIELD_ID_EMAIL',
},

Zum Beispiel:

JavaScript
customFieldIds: {
  firstName: '1782165049671',
  lastName: '1782165779886',
  email: '1782165793135',
},

Die ID des benutzerdefinierten Feldes finden Sie im HTML-Quellcode des Formulars. Suchen Sie nach einem Eingabefeld, das so aussieht:

HTML
<input name="oum_location_custom_fields[1782165793135]">

In diesem Beispiel lautet die ID des benutzerdefinierten Feldes:

1782165793135

Interne Benachrichtigungsfelder ausblenden

Standardmäßig zeigt Open User Map die eigenen Felder für Benachrichtigungsname und E-Mail-Adresse an, wenn die Benachrichtigungsoption aktiviert ist.

Falls Sie Name und E-Mail-Adresse bereits über benutzerdefinierte Felder erfassen, möchten Sie diese internen Felder möglicherweise ausblenden.

Um sie auszublenden, verwende:

JavaScript
hideNotificationFields: true,

Damit sie sichtbar bleiben, verwende:

JavaScript
hideNotificationFields: false,

Auch wenn die Felder ausgeblendet sind, werden sie dennoch automatisch ausgefüllt und im Hintergrund übermittelt.

War dieser Artikel hilfreich?

Verwandte Artikel

Brauchen Sie Unterstützung?

Sie können die gesuchte Antwort nicht finden&#039?
Kontakt zum Support

DE