var AddressFinderConfig = {};
AddressFinderConfig.key_nz = ‘BGAF6DL8TH73KCJVNMU4’;
AddressFinderConfig.key_au = ‘URMP68DHJ9XNC3A4EYW7’;
// The AddressFinder plugin for WooCommerce adds an autocomplete capability to the
// delivery and billing address fields of your online store.
//
// https://wordpress.org/plugins/addressfinder-woo/
//
// VERSION: 1.0.14
(function(){
var initialiseWidget = function(prefix, key, code, onSelectFn) {
var widget = new AddressFinder.Widget(
document.getElementById(prefix + “address_1”),
key,
code
);
widget.on(“result:select”, onSelectFn);
widget._getPosition = function(){
var coords = jQuery(this.element).offset();
coords.top += jQuery(this.element).outerHeight();
return coords;
}
return widget;
}
var bindToAddressPanel = function(panelPrefix){
var nullWidget = {
enable: function() { },
disable: function() { },
on: function() { }
}
var widgets = {};
if(AddressFinderConfig[‘key_nz’]){
widgets.nz = initialiseWidget(panelPrefix, AddressFinderConfig[‘key_nz’], ‘nz’, selectNewZealand);
}
else {
widgets.nz = nullWidget;
}
if(AddressFinderConfig[‘key_au’]){
widgets.au = initialiseWidget(panelPrefix, AddressFinderConfig[‘key_au’], ‘au’, selectAustralia);
widgets.au.prefix = panelPrefix;
}
else {
widgets.au = nullWidget;
}
widgets.nz.prefix = panelPrefix;
widgets.au.prefix = panelPrefix;
var countryChangeHandler = function(clear){
if(jQuery(this).val() == “NZ”){
widgets.nz.enable();
} else {
widgets.nz.disable();
}
if(jQuery(this).val() == “AU”){
widgets.au.enable();
} else {
widgets.au.disable();
}
clear = clear === undefined ? true : clear;
if (clear) {
clearFields(widgets.au.prefix);
}
};
var countryElement = jQuery(“#” + panelPrefix + “country”);
// Sometimes there is no countryElement. Not calling the changeHandler means
// that it can remain enabled.
if(countryElement[0]){
countryElement.change(countryChangeHandler);
// Run the countryChangeHandler first to enable/disable the currently selected country
countryChangeHandler.bind(countryElement)(false);
}
};
var checkFieldPresent = function(prefix, field) {
return !!document.getElementById(prefix + field)
}
var clearFields = function(prefix) {
var fields = [
‘address_1’,
‘address_2’,
‘city’,
‘postcode’
];
for (var i = 0; i 0) {
jQuery(select).select2().val(value).trigger(“change”);
} else {
setFieldValue(prefix + “state”, value);
}
}
var selectNewZealand = function(address, metaData) {
var prefix = this.prefix;
/* clear address fields */
// clearFields(prefix);
/* split and trim */
var address = metaData.postal || metaData.a;
var addressLines = address.split(‘,’);
for(var i=0; i 1 && checkFieldPresent(prefix, ‘address_2’)){
setFieldValue(prefix + ‘address_2’, addressLines.pop());
}
else {
setFieldValue(prefix + ‘address_2’, “”);
}
/* set address1 */
setFieldValue(prefix + ‘address_1’, addressLines.join(“, “));
var region_code = {
“Auckland Region”: “AK”,
“Bay Of Plenty Region”: “BP”,
“Canterbury Region”: “CT”,
“Gisborne Region”: “GI”,
“Hawke’s Bay Region”: “HB”,
“Manawatu-Wanganui Region”: “MW”,
“Marlborough Region”: “MB”,
“Nelson Region”: “NS”,
“Northland Region”: “NL”,
“Otago Region”: “OT”,
“Southland Region”: “SL”,
“Taranaki Region”: “TK”,
“Tasman Region”: “TM”,
“Waikato Region”: “WA”,
“Wellington Region”: “WE”,
“West Coast Region”: “WC”,
“No Region (Chatham Islands)”: null
}[metaData.region]
selectState(prefix, region_code);
};
var selectAustralia = function(address, metaData) {
var prefix = this.prefix;
// Set fields to new values
if (metaData.address_line_2 != null) {
if (checkFieldPresent(prefix, ‘address_2’)) {
setFieldValue(prefix + ‘address_1’, metaData.address_line_1);
setFieldValue(prefix + ‘address_2’, metaData.address_line_2);
} else {
var combinedAddressLine1And2 = metaData.address_line_1 + ‘, ‘ + metaData.address_line_2;
setFieldValue(prefix + ‘address_1’, combinedAddressLine1And2);
}
} else {
setFieldValue(prefix + ‘address_1’, metaData.address_line_1);
setFieldValue(prefix + ‘address_2’, ”);
}
setFieldValue(prefix + ‘city’, metaData.locality_name || ”);
selectState(prefix, metaData.state_territory);
setFieldValue(prefix + ‘postcode’, metaData.postcode);
};
var setFieldValue = function(elementId, value) {
var field = document.getElementById(elementId);
if (field) {
field.value = value;
return;
}
var errorMessage = “AddressFinder Error – unable to find an element with id: ” + elementId;
if (AddressFinderConfig.debug) {
alert(errorMessage);
return;
}
if (window.console) {
console.log(errorMessage);
}
}
var initialisePlugin = function(){
if(document.getElementById(‘billing_address_1’)){
bindToAddressPanel(‘billing_’);
}
if(document.getElementById(‘shipping_address_1’)){
bindToAddressPanel(‘shipping_’);
}
};
jQuery(document).ready(function(){
var script = document.createElement(‘script’);
script.src = ‘https://api.addressfinder.io/assets/v3/widget.js’;
script.onreadystatechange = function() {
if (script.readyState === ‘complete’ || script.readyState === ‘loaded’){
initialisePlugin();
}
};
script.onload = initialisePlugin;
document.body.appendChild(script);
});
})();
ul.af_list {
z-index: 999;
}
From: $56.76
From: $56.76
Subtotal | $15.84 (incl. tax) |
---|---|
Shipping |
|
Total | $44.99 (includes $4.09 GST) |
Some large products may require freight to be organised separately. eg. long membrane rolls 2.74M or 3M in length. For those products, only Local Pickup will be available under shipping.
Please contact us before or after your purchase has been made to assist with freight costs.