GuideAdresser
Adresseforslag i Contact Form 7
Contact Form 7 har ikke en adressetype, så adressen er almindelige tekstfelter. Giv dem et id med form-tagget, og lad adressefeltet finde dem: brugeren vælger adressen, og postnummer og by står klar — rigtigt stavet.
Kaldet i guiden
På denne side6 trin
Opret en offentlig nøgle
Feltet kalder Grundfast direkte fra kundens browser, så det bruger en offentlig nøgle (gf_pub_live_). Den må gerne stå i sidens kildekode, fordi den kun virker fra de domæner, du skriver på den, og kun til adresseopslag. Opret den under Nøgler i dashboardet: vælg Offentlig og skriv dine domæner, fx firma.dk og www.firma.dk.
Byg og test med en offentlig testnøgle (gf_pub_test_), som aldrig faktureres, og skift til live-nøglen, når feltet virker. Reglerne for domæner — www, underdomæner med *. og porte — står i dokumentationen for adressefeltet.
Felterne i formularen
I formularens fane Form skriver du adressen som tre tekstfelter. id: sætter inputtets id, så scriptet kan finde feltet; navnet (adresse, postnr, by) er det, du bruger i mailen. Et skjult felt kan tage BFE-nummeret med:
<label> Adresse
[text* adresse id:gf-adresse] </label>
<label> Postnummer
[text* postnr id:gf-postnr] </label>
<label> By
[text* by id:gf-by] </label>
[hidden bfe]
[submit "Send"]Et id må kun findes én gang på siden. Har du to formularer med adresse på samme side, så giv dem hver deres id’er — eller brug klasser med class: og ret selektorerne til klasser.
Indsæt scriptet
Læg koden i temaets functions.php (helst i et child-tema) eller i et plugin til kodestumper. Den skriver script-tagget nederst på de sider, hvor der står en Contact Form 7-formular:
<?php
add_action('wp_footer', function () {
$post = get_post();
if (!$post || !has_shortcode($post->post_content, 'contact-form-7')) {
return;
}
?>
<script
src="https://grundfast.dk/widget/v1/grundfast-adresse.js"
defer
data-key="gf_pub_live_..."
data-felt="#gf-adresse"
data-postnr="#gf-postnr"
data-by="#gf-by"
data-bfe='input[name="bfe"]'
></script>
<?php
});Står formularen i en widget, en sidebygger eller en skabelon i stedet for i sidens indhold, finder has_shortcode den ikke. Så fjern tjekket — scriptet gør ingenting på sider uden feltet.
Adressen i mailen
I fanen Mail bruger du felternes navne som mail-tags, også det skjulte felt:
Adresse: [adresse]
[postnr] [by]
BFE-nummer: [bfe]BFE-nummeret er ejendommens nummer i de offentlige registre. Med det kan du slå ejendommen op bagefter — bygninger, areal, vurdering — uden at skulle tolke adressen igen. Skriver brugeren adressen uden at vælge et forslag, er feltet tomt.
Tjek nøglen fra en terminal
Før du leder i platformens indstillinger, kan du se, om nøglen og domænet passer sammen. Kaldet nedenfor er det samme, feltet laver. Origin er dit domæne, præcis som browseren skriver det:
curl -G "https://api.grundfast.dk/v1/adresse/search" \
--data-urlencode "q=Vestergade 10" \
--data-urlencode "token=$GRUNDFAST_PUBLIC_KEY" \
-H "Origin: https://www.firma.dk"Svarer det med adresser, er nøglen i orden. Et 403 med origin … is not allowed betyder, at domænet ikke står på nøglen — ret listen i dashboardet; det slår igennem inden for et halvt minut.
Hvis der ikke kommer forslag
- Åbn browserens konsol (F12, fanen Console). Feltet skriver én linje, der begynder med
[grundfast-adresse], med årsagen fra API’et. no public key— scriptet blev indlæst udendata-key.- Ingen linje og ingen liste — feltet blev ikke fundet. Tjek at selektoren i
data-feltrammer feltet: skrivdocument.querySelectorAll('…')med den samme selektor i konsollen. - Listen vises, men felterne udfyldes ikke — selektorerne i
data-postnrogdata-byrammer ikke noget. De slås op i samme formular som adressefeltet først, derefter på hele siden.
Feltet stopper aldrig formularen: fejler et kald, lukker listen, og kunden kan skrive adressen i hånden som før.
Var denne side nyttig?
Ofte stillede spørgsmål
Ja. Forslagene er en hjælp, ikke et krav. Feltet virker som et almindeligt tekstfelt, og Contact Form 7 validerer som altid. Vælger brugeren ikke et forslag, udfyldes postnummer, by og BFE-nummer ikke af sig selv.
Contact Form 7 er lavet til felter og tekst, ikke til scripts, og WordPress fjerner ofte script-tags fra indhold, som redaktører gemmer. functions.php er den sikre vej.
Ja. Formularen bliver stående på siden, og feltet bliver hængende på inputtet. Efter en vellykket indsendelse tømmer Contact Form 7 felterne som normalt.
Ja. Tilføj to tekstfelter med hver deres id og peg på dem med data-etage og data-doer på script-tagget. Uden dem står etage og dør i adressefeltet efter husnummeret.
Prøv det på rigtige data
Gratis op til 5.000 kald/md · intet kreditkort · data fra Klimadatastyrelsen/Datafordeler, CC BY 4.0
Relateret