Guide Adresser

# 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](https://grundfast.dk/docs/adressefelt) finde dem: brugeren vælger adressen, og postnummer og by står klar — rigtigt stavet.

Kaldet i guiden

- [GET /v1/adresse/search](https://grundfast.dk/docs/api/adresse-search)

3 min læsning 6 trin Opdateret 5. oktober 2026

## 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](https://grundfast.dk/dashboard/keys): 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](https://grundfast.dk/docs/adressefelt#offentlige-noegler).

## 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:

Fanen Form tekst

```
<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:

functions.php php

```
<?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:

Fanen Mail tekst

```
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:

bash

```
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 uden `data-key`.
- Ingen linje og ingen liste — feltet blev ikke fundet. Tjek at selektoren i `data-felt` rammer feltet: skriv `document.querySelectorAll('…')` med den samme selektor i konsollen.
- Listen vises, men felterne udfyldes ikke — selektorerne i `data-postnr` og `data-by` rammer 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

### Kan brugeren stadig skrive adressen selv?

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.

### Hvorfor ikke bare indsætte script-tagget i formularen?

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.

### Virker det med Contact Form 7’s AJAX-indsendelse?

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.

### Kan jeg få etage og dør i hvert sit felt?

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

En gratis nøgle giver adgang til alle registre med samme svarform. Testnøgler faktureres aldrig, så du kan bygge færdigt, før du skifter til produktion.

[Kom i gang gratis](https://grundfast.dk/dashboard?mode=register) [Se alle guides](https://grundfast.dk/guides)

Gratis op til 5.000 kald/md · intet kreditkort · data fra Klimadatastyrelsen/Datafordeler, CC BY 4.0

Relateret

- [Adressefelt til checkout og formularer Dokumentation](https://grundfast.dk/docs/adressefelt)
- [Adresseforslag i Gravity Forms Guide](https://grundfast.dk/guides/adressefelt-i-gravity-forms)
- [Adresseforslag i Elementor-formularer Guide](https://grundfast.dk/guides/adressefelt-i-elementor)
- [BFE-nummer Begreb](https://grundfast.dk/begreber/bfe-nummer)
- [Søg efter en adresse GET /v1/adresse/search](https://grundfast.dk/docs/api/adresse-search)

På denne side

1. Opret en offentlig nøgle
2. Felterne i formularen
3. Indsæt scriptet
4. Adressen i mailen
5. Tjek nøglen fra en terminal
6. Hvis der ikke kommer forslag
7. Ofte stillede spørgsmål

[API-dokumentation](https://grundfast.dk/docs)[Alle guides](https://grundfast.dk/guides)[Spørg os](https://grundfast.dk/kontakt)
