diff --git a/extensions/directus-extension-skrift-orders/dist/index.js b/extensions/directus-extension-skrift-orders/dist/index.js index 1e3d272..0329335 100644 --- a/extensions/directus-extension-skrift-orders/dist/index.js +++ b/extensions/directus-extension-skrift-orders/dist/index.js @@ -1607,8 +1607,11 @@ const handler = (router, { services, getSchema, logger }) => { } if (!['muster', 'anfrage'].includes(kind)) return res.status(404).json({ error: 'Unbekannter Hook (muster|anfrage).' }); - const name = String(body.name || '').trim(); - const email = norm(body.email); + // WP schickt Vor-/Nachname GETRENNT: vorname + name(=Nachname). Anzeigename = beides. + const vorname = feldWert(body, 'vorname', 'first_name', 'firstname'); + const nachname = feldWert(body, 'name', 'nachname', 'last_name', 'lastname'); + const name = [vorname, nachname].filter(Boolean).join(' '); + const email = norm(feldWert(body, 'email', 'e_mail', 'e-mail', 'mail')); if (!name) return res.status(400).json({ error: 'Name fehlt.', felder: Object.keys(body) }); if (!isEmail(email)) return res.status(400).json({ error: 'Gültige E-Mail-Adresse fehlt.', felder: Object.keys(body) }); @@ -1622,26 +1625,32 @@ const handler = (router, { services, getSchema, logger }) => { filter: { email: { _eq: email } }, limit: 1, fields: ['id'], }))?.[0]; - const phone = clean(String(body.telefon || body.phone || '').trim()) || null; + const phone = clean(feldWert(body, 'telefon', 'phone', 'tel', 'telefonnummer')) || null; let record; let subject; let mailHtml; if (kind === 'muster') { - const produkt = body.produkt_interesse ? clean(String(body.produkt_interesse)) : null; + const produkt = feldWert(body, 'produkt_interesse', 'product', 'produkt'); + const strasse = feldWert(body, 'street', 'strasse', 'straße', 'adresse'); + const plz = feldWert(body, 'zipcode', 'zip', 'plz', 'postleitzahl'); + const ort = feldWert(body, 'ort', 'city', 'stadt', 'wohnort'); + const land = feldWert(body, 'country', 'land'); record = { - type: 'muster', name: clean(name), email, phone, product: produkt, message: null, + type: 'muster', name: clean(name), email, phone, product: produkt ? clean(produkt) : null, message: null, address: { - street: clean(String(body.street || '')), - zip: clean(String(body.zipcode || body.zip || '')), - city: clean(String(body.city || '')), - country: clean(String(body.country || '')), + first_name: clean(vorname), + last_name: clean(nachname), + street: clean(strasse), + zip: clean(plz), + city: clean(ort), + country: clean(land), }, status: 'neu', customer: customer?.id ?? null, }; subject = `Neue Musteranfrage: ${name}`; mailHtml = `
${clean(name)} (${email}${phone ? `, ${phone}` : ''})
` + - `Interesse: ${produkt || 'k. A.'}
` + - `${clean(String(body.street || ''))}, ${clean(String(body.zipcode || body.zip || ''))} ${clean(String(body.city || ''))}, ${clean(String(body.country || ''))}
`; + `Interesse: ${produkt ? clean(produkt) : 'k. A.'}
` + + `${clean(strasse)}, ${clean(plz)} ${clean(ort)}, ${clean(land)}
`; } else { const unternehmen = clean(String(body.unternehmen || '').trim()); const nachricht = clean(String(body.nachricht || body.message || '').trim());