# ![Ideal Postcodes Ninja Forms Integration](https://img.ideal-postcodes.co.uk/NinjaForms%20Integration@3x.png)

Add address autocompletion and postcode lookup to your Ninja Forms pages.

![Activate Address Finder on your address collection forms-screenshot](https://img.ideal-postcodes.co.uk/ninja-forms-addressfinder-demo.gif)

![Quickly populate your address fields-screenshot](https://img.ideal-postcodes.co.uk/ninja-forms-postcode-lookup.png)

## Installation[​](#installation "Direct link to Installation")

This integration works by adding our Address Validation tools using WordPress' form editor. Below are the instructions to add Address Finder.

### Enable Dev Mode[​](#enable-dev-mode "Direct link to Enable Dev Mode")

On your WordPress dashboard, click on the 'Ninja Forms' tab, followed by 'Settings'. Here, scroll down to 'Advanced Settings' and check the box for 'Form Builder "Dev Mode"'. This will be required when using the `name` attribute for your input fields.

![Enable Dev Mode-screenshot](https://img.ideal-postcodes.co.uk/ninja-forms-form-builder-dev-mode.png)

### Create Address Inputs[​](#create-address-inputs "Direct link to Create Address Inputs")

Add address input fields to your form. To do so, select the 'Single Line Text' field and drag it into the form. Once clicked, you can update the label text.

A basic address form to capture a correct UK address should have the following fields:

* Address line one (required)
* Address line two
* Address line three
* Post town (required)
* Postcode (required)

![Create address fields-screenshot](https://img.ideal-postcodes.co.uk/ninja-forms-address-form.png)

You can optionally include additional fields, which are listed in the [Address data guide](/docs/data/paf.md).

### Add Custom Name Attributes[​](#add-custom-name-attributes "Direct link to Add Custom Name Attributes")

For Address Finder to identify the output fields, add `name` attributes to your address fields. To do so, click on the address field, and then the 'Advanced' dropdown. Here, you will find the `CUSTOM NAME ATTRIBUTE` field, which you can update. Remember to click on 'DONE' when complete.

![Add a custom name attribute-screenshot](https://img.ideal-postcodes.co.uk/ninja-forms-custom-name-attribute.png)

### Add Address Finder[​](#add-address-finder "Direct link to Add Address Finder")

#### Install and Initialise Plugin[​](#install-and-initialise-plugin "Direct link to Install and Initialise Plugin")

On the WordPress admin dashboard, click on the 'Pages' tab, followed by 'Add New'. Now, click on the 'Add block' icon and look for the 'Custom HTML' option.

![Custom HTML block-screenshot](https://img.ideal-postcodes.co.uk/ninja-forms-html-block.png)

Subsequently, add the following two script tags within the HTML block to load the plugin and then to initialise it.

Lastly, click on ‘Append a Ninja Form’ dropdown which is on the ‘Page’ tab and select your Ninja Form.

```
<script src="https://cdn.jsdelivr.net/npm/@ideal-postcodes/address-finder-bundled"></script>



<script>

	document.addEventListener("DOMContentLoaded", function (event) {

		jQuery(document).on("nfFormReady", function () {

			IdealPostcodes.AddressFinder.setup({

				apiKey: "ak_test",

				outputFields: {

					line_1: 'input[name="address_line_one"]',

					line_2: 'input[name="address_line_two"]',

					line_3: 'input[name="address_line_three"]',

					post_town: 'input[name="post_town"]',

					postcode: 'input[name="postcode"]',

				},

			});

		});

	});

</script>
```

caution

Take special care to:

1. Insert your API Key in the `apiKey` field
2. Match the names of your address fields. If your Address Line One has the shortcode `[text* line_1]`, ensure that `line_1` reads `'input[name="line_1"]'`
3. Ensure `inputField` points to the same field as `line_1` to have the Address Finder appear there

If you wish to add an additional field, include the parameter name [from our documentation](/docs/data/paf.md). For instance, adding a county field with name `county` will look like:

```
outputFields: {

  line_1: 'input[name="line_1"]',

  line_2: 'input[name="line_2"]',

  line_3: 'input[name="line_3"]',

  post_town: 'input[name="post_town"]',

  county: 'input[name="county"]',

  postcode: 'input[name="postcode"]'

}
```

### Add Postcode Lookup[​](#add-postcode-lookup "Direct link to Add Postcode Lookup")

#### Add Postcode Lookup HTML elements[​](#add-postcode-lookup-html-elements "Direct link to Add Postcode Lookup HTML elements")

In your Ninja Forms dashboard, click on 'ADD NEW' to create a new form.

On top of your address fields, add a HTML layout field. Under the HTML panel, click on the code editor button and paste in the below HTML to scaffold your postcode search field, search button and address dropdown for the plugin.

```
<div>

	<!-- Postcode search field will appear below -->

	<div>

		<input

			type="text"

			placeholder="Lookup your postcode"

			id="idpc_input"

		/>

	</div>



	<br />



	<!-- Search button will appear below -->

	<div>

		<input

			type="button"

			id="idpc_button"

			value="Lookup Postcode"

		/>

	</div>



	<br />



	<!-- Address dropdown field will appear below -->

	<div id="idpc_dropdown"></div>

	<!-- Any error messages will appear here -->

	<div id="idpc"></div>

</div>
```

![Enter HTML into the code editor-screenshot](https://img.ideal-postcodes.co.uk/ninja-forms-html-code.png)

#### Install Plugin[​](#install-plugin "Direct link to Install Plugin")

On the WordPress admin dashboard, click on the 'Pages' tab and click on 'Add New'. Next, click on the 'Add block' icon and look for the 'Custom HTML' option. Paste in the below script tag:

```
<script src="https://cdn.jsdelivr.net/npm/@ideal-postcodes/postcode-lookup-bundled@2"></script>



<script>

	document.addEventListener("DOMContentLoaded", function (event) {

		jQuery(document).on("nfFormReady", function () {

			IdealPostcodes.PostcodeLookup.setup({

				apiKey: "ak_test",

				context: "#idpc",

				input: "#idpc_input",

				button: "#idpc_button",

				selectContainer: "#idpc_dropdown",

				outputFields: {

					line_1: 'input[name="address_line_one"]',

					line_2: 'input[name="address_line_two"]',

					line_3: 'input[name="address_line_three"]',

					post_town: 'input[name="post_town"]',

					postcode: 'input[name="postcode"]',

				},

			});

		});

	});

</script>
```

Finally, click on ‘Append a Ninja Form’ dropdown which is on the ‘Page’ tab and select your Ninja Form.

caution

Take special care to:

1. Insert your API Key in the `apiKey` field
2. Match the names of your address fields. If your Address Line One has the shortcode `[text* line_1]`, ensure that `line_1` reads `'input[name="line_1"]'`
3. Ensure `inputField` points to the same field as `line_1` to have the Address Finder appear there

If you wish to add an additional field, choose a parameter [from our UK Address data guide](/docs/data/paf.md). For instance, adding a county field with name `county` will look like:

```
outputFields: {

  line_1: 'input[name="line_1"]',

  line_2: 'input[name="line_2"]',

  line_3: 'input[name="line_3"]',

  post_town: 'input[name="post_town"]',

  county: 'input[name="county"]',

  postcode: 'input[name="postcode"]'

}
```

## Configuration[​](#configuration "Direct link to Configuration")

See our [Address Finder Plugin Documentation](/docs/address-finder.md) if you wish to customise Address Finder.

See our [Postcode Lookup Plugin Documentation](/docs/postcode-lookup.md) if you wish to customise Postcode Lookup.

info

Still need help? Contact our support team via live chat on our website or email <support@ideal-postcodes.co.uk>.
