{"id":354879,"date":"2026-08-23T19:25:43","date_gmt":"2026-08-23T19:25:43","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/xtreme-locator-search\/"},"modified":"2026-08-23T19:43:05","modified_gmt":"2026-08-23T19:43:05","slug":"xtreme-locator-search","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/xtreme-locator-search\/","author":7346485,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.8.6","stable_tag":"1.8.6","tested":"7.1","requires":"5.0","requires_php":"7.0","requires_plugins":null,"header_name":"Xtreme Locator Search","header_author":"Xtreme Locator","header_description":"Displays a fully customizable Xtreme Locator search box (Zip, Zip + Distance, International, or Near Me) on any post, page, or widget area as plain HTML (no iframe), and shows the results on your own WordPress site in a sandboxed, admin-configurable iframe. Requires a free or paid Xtreme Locator account.","assets_banners_color":"","last_updated":"2026-08-23 19:43:05","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/xtremelocator.com\/wordpress-plugin\/","header_author_uri":"https:\/\/xtremelocator.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":45,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.8.6":{"tag":"1.8.6","author":"williqs","date":"2026-08-23 19:43:05"}},"upgrade_notice":{"1.8.6":"<p>Renamed the &quot;Site ID (sid)&quot; field label to &quot;Account ID (sid)&quot; on the Settings page. Cosmetic only \u2014 the setting itself is unchanged.<\/p>","1.8.5":"<p>Fixed a real bug from 1.8.4: the centering\/label-font script never actually loaded on the page (attached to a WordPress handle already printed before it ran). It now attaches correctly and loads every time.<\/p>","1.8.4":"<p>Custom Search Form: found and fixed the real centering cause (a page-builder flex layout, not our CSS) and made field labels follow your Font family\/size instead of the pasted code&#039;s own hardcoded, !important styling.<\/p>","1.8.3":"<p>Custom Search Form: the search box and results iframe now use an explicit width instead of a cap, so both actually resize per the settings and center correctly even on narrow\/custom page templates.<\/p>","1.8.2":"<p>Custom Search Form: the search box now stays centered like the results iframe, and the Custom search box width setting reliably resizes pasted tables\/forms that previously ignored it.<\/p>","1.8.1":"<p>Custom Search Form fixes: the Clear\/Reset button now respects the Button color setting, results no longer sit flush left, and a new Custom search box width setting sizes it independently of the standard search box.<\/p>","1.8.0":"<p>Adds an optional Custom Search Form: paste any Xtreme Locator embed snippet under Settings and deploy it with [xtreme_locator_custom_search] \u2014 results load into an in-page iframe, same as the built-in search types.<\/p>","1.7.4":"<p>&quot;Advanced Search&quot; now loads inside your site&#039;s own sandboxed iframe results page, like the regular search, instead of sending visitors to app.xtremelocator.com.<\/p>","1.7.3":"<p>Fixes the Button color setting not applying to the Search button\/Advanced Search link on themes that ship their own conflicting button styles.<\/p>","1.7.2":"<p>Removes the &quot;Powered By XtremeLocator&quot; credit link feature entirely (setting, code, and markup) \u2014 it no longer exists in any form.<\/p>","1.7.1":"<p>Updated field defaults (new installs only \u2014 existing saved settings are untouched) and confirmed compatibility with WordPress 7.1.<\/p>","1.7.0":"<p>Removes the hard-coded default Site ID \u2014 every site must now enter its own under Settings \u2192 Xtreme Locator. Adds account\/trial links, plus WordPress.org submission fixes (enqueued assets, uninstall cleanup, opt-in credit link, documented external services).<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3662284,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3662284,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.8.6"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"The customizable search box (Zip type shown), rendered as plain HTML with no iframe.","2":"The Settings \u2192 Xtreme Locator admin page.","3":"Search results shown on your own site in a sandboxed iframe after a visitor searches."}},"plugin_section":[],"plugin_tags":[6109,18301,8611,6102,18319],"plugin_category":[],"plugin_contributors":[90990],"plugin_business_model":[],"class_list":["post-354879","plugin","type-plugin","status-publish","hentry","plugin_tags-business-locator","plugin_tags-location-finder","plugin_tags-locator","plugin_tags-store-locator","plugin_tags-zip-code-search","plugin_contributors-williqs","plugin_committers-williqs"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/xtreme-locator-search\/assets\/icon-128x128.png?rev=3662284","icon_2x":"https:\/\/ps.w.org\/xtreme-locator-search\/assets\/icon-256x256.png?rev=3662284","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>This plugin outputs <a href=\"https:\/\/xtremelocator.com\/\">Xtreme Locator<\/a>'s embed forms directly into your page's HTML \u2014 the same markup Xtreme Locator normally distributes for direct embedding, packaged as a WordPress shortcode and widget so it can be dropped in anywhere without editing theme files or using an iframe on the search box itself.<\/p>\n\n<h4>Requires an Xtreme Locator account<\/h4>\n\n<p>This plugin is the WordPress integration for Xtreme Locator's location search service \u2014 it does not include location data or search logic of its own. You'll need a Site ID from an Xtreme Locator account to configure it:<\/p>\n\n<ul>\n<li><strong>New to Xtreme Locator?<\/strong> <a href=\"https:\/\/xtremelocator.com\/free-trial\/\">Start a free trial<\/a>. Xtreme Locator's free plan supports up to 15 locations at no cost, so smaller businesses can use this plugin without paying anything.<\/li>\n<li><strong>Already have an account?<\/strong> Enter your Site ID under Settings \u2192 Xtreme Locator after installing.<\/li>\n<\/ul>\n\n<p>Until a Site ID is entered, the plugin shows a short setup reminder to site admins only; regular visitors simply won't see the search box.<\/p>\n\n<h4>Search types<\/h4>\n\n<p>Four search types are supported, chosen via the <code>type<\/code> shortcode attribute or the site-wide default in Settings \u2192 Xtreme Locator:<\/p>\n\n<ul>\n<li><code>zip<\/code> \u2014 a single zip\/postal code field (the original default).<\/li>\n<li><code>zip_distance<\/code> \u2014 zip code plus a distance\/radius field.<\/li>\n<li><code>international<\/code> \u2014 a country dropdown plus a postal code field, powered by Xtreme Locator's own country-picker script.<\/li>\n<li><code>near_me<\/code> \u2014 a single \"Locations Near Me\" button that uses the visitor's browser location (no typing required).<\/li>\n<\/ul>\n\n<h4>Results stay on your site<\/h4>\n\n<p>When a visitor searches, they are NOT sent to app.xtremelocator.com. Instead the plugin loads a page on your own WordPress site (same domain, wrapped in your theme's header\/footer) that shows the results inside a sandboxed iframe pointed at Xtreme Locator. The address bar stays on your site the whole time, and the results content (including any script Xtreme Locator uses for a map or dynamic list) runs isolated inside that iframe rather than directly inside your page. This applies to all four search types, including \"Near Me\" \u2014 Xtreme Locator's own code normally opens that one in a new tab on their domain, but this plugin routes it through the same in-site results page as the others. The optional \"Advanced Search\" link uses the same in-site iframe pattern too.<\/p>\n\n<p>A \"Results not showing? Open in a new tab\" link is included under the iframe as a fallback, in case a visitor's browser or an ad-blocker interferes with the embedded frame.<\/p>\n\n<h4>Fully customizable<\/h4>\n\n<p>Go to Settings \u2192 Xtreme Locator to customize the search box's text (heading, field labels\/placeholders for each search type, button\/link text), colors and appearance (button, heading, text, background, border, font, width), layout (inline vs. stacked), and to control the results iframe \u2014 its width, height, and whether it shows a scrollbar (auto \/ always \/ never). Any setting can also be overridden per-instance with a shortcode attribute.<\/p>\n\n<p><strong>Known limitations:<\/strong><\/p>\n\n<ul>\n<li>Only one \"International\" search box can be placed per page. Xtreme Locator's country-picker script (<code>searchByCountryJS.php<\/code>) targets fixed field IDs, so a second instance on the same page would conflict with the first.<\/li>\n<li>I wasn't able to inspect Xtreme Locator's <code>searchByCountryJS.php<\/code> or <code>api\/search.js<\/code> scripts directly (they didn't return readable source through my tools), so the International and Near Me search types are implemented based on the embed code you provided plus reasonable assumptions about how those scripts behave. Please test both after installing \u2014 in particular, confirm the International search box still submits to your own site rather than being redirected elsewhere by Xtreme Locator's script, and that the Near Me results page renders a proper results page inside the iframe rather than raw data.<\/li>\n<li>The \"Postal code search not available for this country\" message (see below) assumes Xtreme Locator's script disables or read-onlys the postal code field when a country doesn't support postal code search \u2014 that's the standard pattern for this kind of widget, but since I can't inspect their script directly, please verify it actually shows for an unsupported country after installing. If their script signals unavailability a different way, let me know what you observe and I can adjust the detection.<\/li>\n<li>The Custom Search Form field (Settings \u2192 Xtreme Locator \u2192 Custom Search Form) is stored and displayed as entered \u2014 it is <strong>not<\/strong> filtered through WordPress's usual HTML sanitization, since that would strip the <code>&lt;form&gt;<\/code>\/<code>&lt;input&gt;<\/code>\/<code>&lt;select&gt;<\/code> elements a search form needs. Only paste code from a source you trust. A relative <code>&lt;form action=\"...\"&gt;<\/code> is automatically resolved against app.xtremelocator.com and results are routed into an iframe instead of navigating away, but surrounding markup (labels, layout, a stray \"Back\" link, etc.) is left exactly as pasted \u2014 trim a full copied page down to just the form and its buttons before pasting for the cleanest result.<\/li>\n<\/ul>\n\n<h3>External Services<\/h3>\n\n<p>This plugin is a WordPress front end for Xtreme Locator's location search service and connects to Xtreme Locator's servers (app.xtremelocator.com) to function. No location data is stored or processed by this plugin itself \u2014 it just points the visitor's browser at Xtreme Locator's service using the Site ID configured under Settings \u2192 Xtreme Locator.<\/p>\n\n<p>Specifically:<\/p>\n\n<ul>\n<li><strong>Search form submission and results.<\/strong> When a visitor submits a search, their browser loads an iframe pointed at <code>https:\/\/app.xtremelocator.com\/visitor\/findLocations.php<\/code> (Zip, Zip + Distance, and International search types) or <code>https:\/\/app.xtremelocator.com\/api\/search.php<\/code> (Near Me proximity search), passing the search terms they entered (zip\/postal code, distance, country, or coordinates) and the site's configured Site ID as query parameters. Xtreme Locator returns the results HTML, which is displayed inside the iframe on your own site.<\/li>\n<li><strong>Country picker (International search type only).<\/strong> Loads <code>https:\/\/app.xtremelocator.com\/visitor\/searchByCountryJS.php<\/code> as an enqueued script, which populates the country dropdown and validates postal code availability per country.<\/li>\n<li><strong>Browser geolocation (Near Me search type only).<\/strong> Loads <code>https:\/\/app.xtremelocator.com\/api\/search.js<\/code> as an enqueued script, which requests the visitor's location via their browser's Geolocation API (with the browser's own permission prompt) and returns coordinates used to build the results URL above.<\/li>\n<li><strong>Advanced Search link (optional, off by default).<\/strong> Like the main search, this loads <code>https:\/\/app.xtremelocator.com\/visitor\/advanced.php<\/code> inside the same sandboxed iframe on your own site's results page \u2014 not a direct new-tab link to app.xtremelocator.com.<\/li>\n<li><strong>Custom search form (optional \u2014 only if you've pasted code under Settings \u2192 Xtreme Locator \u2192 Custom Search Form).<\/strong> Submits to whichever Xtreme Locator URL is in the pasted form's <code>action<\/code> attribute (an app.xtremelocator.com address in Xtreme Locator's own embed code), with whatever fields that form collects, loaded into an iframe next to the form.<\/li>\n<\/ul>\n\n<p>None of these requests are made server-side by this plugin's PHP code \u2014 they're all loaded directly in the visitor's browser (iframe <code>src<\/code> or <code>&lt;script src&gt;<\/code>), the same way they would be if Xtreme Locator's embed code were pasted into the page directly.<\/p>\n\n<p>This service is provided by Xtreme Locator: <a href=\"https:\/\/xtremelocator.com\/terms-and-conditions\/\">terms of service<\/a>, <a href=\"https:\/\/xtremelocator.com\/policies\/\">privacy policy<\/a>. <a href=\"https:\/\/xtremelocator.com\/free-trial\/\">Start a free trial<\/a> if you don't have an account yet (free for up to 15 locations).<\/p>\n\n<h3>Usage<\/h3>\n\n<p><strong>Shortcode (posts, pages, any block that supports shortcodes):<\/strong><\/p>\n\n<pre><code>[xtreme_locator_search]\n<\/code><\/pre>\n\n<p>Every setting on the admin settings page (see below) can also be overridden per-instance as a shortcode attribute \u2014 handy if you want different pages to use different search types, colors, or layouts:<\/p>\n\n<pre><code>[xtreme_locator_search type=\"zip_distance\" title=\"Find Nearest Location\" layout=\"stacked\" button=\"#c0392b\" form_width=\"320px\"]\n[xtreme_locator_search type=\"international\"]\n[xtreme_locator_search type=\"near_me\" title=\"\"]\n<\/code><\/pre>\n\n<p>Available attributes: <code>sid<\/code>, <code>type<\/code> (\"zip\", \"zip_distance\", \"international\", or \"near_me\"), <code>title<\/code>, <code>zip_label<\/code>, <code>zip_placeholder<\/code>, <code>dist_label<\/code>, <code>dist_placeholder<\/code>, <code>country_label<\/code>, <code>postal_unavailable_text<\/code>, <code>near_me_button_text<\/code>, <code>button_text<\/code>, <code>advanced<\/code> (\"yes\"\/\"no\"), <code>advanced_text<\/code>, <code>button<\/code> (hex), <code>button_text_color<\/code> (hex), <code>heading_color<\/code> (hex), <code>heading_font_size<\/code> (CSS length), <code>text_color<\/code> (hex), <code>background_color<\/code> (hex, blank for transparent), <code>border_color<\/code> (hex, blank for none), <code>border_width<\/code> (CSS length), <code>font_family<\/code>, <code>form_width<\/code> (CSS length), <code>layout<\/code> (\"inline\" or \"stacked\"). Attributes that don't apply to the chosen <code>type<\/code> are simply ignored.<\/p>\n\n<p><strong>Gutenberg block editor:<\/strong> add a \"Shortcode\" block and paste <code>[xtreme_locator_search]<\/code>.<\/p>\n\n<p><strong>Classic editor:<\/strong> paste <code>[xtreme_locator_search]<\/code> directly into the content.<\/p>\n\n<p><strong>Widget areas:<\/strong> go to Appearance \u2192 Widgets and add the \"Xtreme Locator Search\" widget to any sidebar or footer widget area.<\/p>\n\n<p><strong>Custom search form:<\/strong> for a search form with a different field set than the four built-in types, paste an Xtreme Locator embed snippet under Settings \u2192 Xtreme Locator \u2192 Custom Search Form, then place it with:<\/p>\n\n<pre><code>[xtreme_locator_custom_search]\n<\/code><\/pre>\n\n<p>The pasted form's fields, labels, and layout are yours to define; the plugin still applies your font, form width, and button color settings, and still keeps results on your own site (loaded into an iframe next to the form instead of navigating away). See the field description under Settings for what to paste and what's handled automatically.<\/p>\n\n<p><strong>Settings (Settings \u2192 Xtreme Locator):<\/strong><\/p>\n\n<p><em>Text &amp; Labels<\/em> \u2014 Site ID, default Search type, Heading, Zip\/Postal Code field label &amp; placeholder, Distance field label &amp; placeholder, Country field label, Postal code unavailable message, \"Near Me\" button text, Search button text, Advanced Search link (on\/off + text).<\/p>\n\n<p><em>Colors &amp; Appearance<\/em> \u2014 Button color, Button text color, Heading color, Heading font size, Label\/text color, Background color (blank = transparent), Border color (blank = none) + width, Font family, Form width.<\/p>\n\n<p><em>Layout<\/em> \u2014 Inline (label, field, and button side by side) or Stacked (each on its own line, full width \u2014 good for narrow sidebars\/mobile).<\/p>\n\n<p><em>Custom Search Form<\/em> \u2014 Raw HTML embed code for the <code>[xtreme_locator_custom_search]<\/code> shortcode (see above), plus its own Custom search box width (independent of \"Form width\" above).<\/p>\n\n<p><em>Results Iframe<\/em> \u2014 Iframe width (e.g. <code>100%<\/code>, <code>960px<\/code>, <code>90vw<\/code>), Iframe height (e.g. <code>900px<\/code>, <code>80vh<\/code> \u2014 increase this if results feel cramped), Scrollbar (Auto \/ Always \/ Never). Also used by the custom search form's results iframe.<\/p>\n\n<p>Any of these can be overridden per-instance with a matching shortcode attribute (see Usage above).<\/p>\n\n<!--section=installation-->\n<ol>\n<li>If you don't already have an Xtreme Locator account, <a href=\"https:\/\/xtremelocator.com\/free-trial\/\">start a free trial<\/a> (free for up to 15 locations) to get your Site ID.<\/li>\n<li>In your WordPress admin, go to Plugins \u2192 Add New Plugin \u2192 Upload Plugin (or search \"Xtreme Locator Search\" if installing from the WordPress.org plugin directory).<\/li>\n<li>Install and Activate the plugin.<\/li>\n<li>Go to Settings \u2192 Xtreme Locator and enter your Site ID.<\/li>\n<li>Add the shortcode <code>[xtreme_locator_search]<\/code> to any page or post, or add the \"Xtreme Locator Search\" widget to a sidebar.<\/li>\n<li>Optionally revisit Settings \u2192 Xtreme Locator to adjust the search box's text, colors, layout, and the results iframe's width\/height\/scrollbar.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20an%20xtreme%20locator%20account%3F\"><h3>Do I need an Xtreme Locator account?<\/h3><\/dt>\n<dd><p>Yes. This plugin is the WordPress integration for Xtreme Locator's location search service; it needs a Site ID from an Xtreme Locator account to know which locations to search. <a href=\"https:\/\/xtremelocator.com\/free-trial\/\">Start a free trial<\/a> if you don't have one \u2014 the free plan supports up to 15 locations at no cost.<\/p><\/dd>\n<dt id=\"is%20there%20a%20free%20plan%3F\"><h3>Is there a free plan?<\/h3><\/dt>\n<dd><p>Yes, Xtreme Locator's free plan supports up to 15 locations. Larger location counts require a paid plan \u2014 see <a href=\"https:\/\/xtremelocator.com\/\">xtremelocator.com<\/a> for pricing.<\/p><\/dd>\n<dt id=\"nothing%20shows%20up%20where%20i%20placed%20the%20shortcode%20%E2%80%94%20what%27s%20wrong%3F\"><h3>Nothing shows up where I placed the shortcode \u2014 what's wrong?<\/h3><\/dt>\n<dd><p>Most likely no Site ID has been entered yet. Site admins will see a short setup reminder in place of the search box; other visitors simply won't see anything until it's configured. Go to Settings \u2192 Xtreme Locator and enter your Site ID.<\/p><\/dd>\n<dt id=\"does%20this%20use%20an%20iframe%3F\"><h3>Does this use an iframe?<\/h3><\/dt>\n<dd><p>The search box itself is plain HTML \u2014 no iframe. After a visitor searches, the results are shown on your own site inside a sandboxed iframe pointed at Xtreme Locator, so the results (which can include a map or other embedded script) stay isolated from the rest of your page.<\/p><\/dd>\n<dt id=\"can%20i%20have%20more%20than%20one%20search%20box%2C%20or%20different%20search%20types%20on%20different%20pages%3F\"><h3>Can I have more than one search box, or different search types on different pages?<\/h3><\/dt>\n<dd><p>Yes. Add the shortcode with a <code>type<\/code> attribute wherever you like, e.g. <code>[xtreme_locator_search type=\"near_me\"]<\/code>. The one exception is the \"International\" search type, which can only appear once per page (see Known Limitations).<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.8.6<\/h4>\n\n<ul>\n<li>Renamed the \"Site ID (sid)\" field label to \"Account ID (sid)\" on the Settings \u2192 Xtreme Locator page. Cosmetic only \u2014 the underlying <code>sid<\/code> setting, shortcode attribute, and everywhere else it's referenced are unchanged.<\/li>\n<\/ul>\n\n<h4>1.8.5<\/h4>\n\n<ul>\n<li>Fixed: the 1.8.4 centering\/label-font script was never actually reaching the page at all. It was attached to WordPress's own <code>jquery<\/code> script handle, which most themes have already printed in <code>&lt;head&gt;<\/code> by the time a shortcode runs \u2014 and <code>wp_add_inline_script()<\/code> silently does nothing once its target handle has already been printed, so the fix never loaded no matter what the pasted embed code looked like. It's now attached to this plugin's own dedicated handle (loaded in the footer, after the shortcode has definitely run), the same technique already used by the \"Near Me\" script elsewhere in this plugin. Verified this time that the script tag itself is actually present in the rendered page.<\/li>\n<\/ul>\n\n<h4>1.8.4<\/h4>\n\n<ul>\n<li>Fixed (for real this time \u2014 verified live against a reported page): the Custom Search Form still wasn't centering on some pages even after 1.8.2\/1.8.3. Root cause traced to a page-builder layout where the content column is a flex item that hugs its own content width and doesn't center itself within its row \u2014 something CSS from inside that column can't correct, since the ancestor doing the misplacement is outside anything this plugin renders. A small script now runs once the page loads, finds that specific situation at runtime (only when it's actually present \u2014 it does nothing on a normal theme layout), and centers it. Verified against the reported page: box now sits centered instead of flush left.<\/li>\n<li>Added: field labels in pasted Custom Search Form code now follow the plugin's Font family setting and use the same readable label size as the built-in search types (1.1em), instead of whatever the pasted embed code hardcodes. Xtreme Locator's own embed markup typically sets each label's font-size inline with its own <code>!important<\/code>, which no CSS rule \u2014 however specific or <code>!important<\/code> \u2014 can out-rank; only editing the element's own inline style directly can, so this is handled by the same runtime script as the centering fix above.<\/li>\n<\/ul>\n\n<h4>1.8.3<\/h4>\n\n<ul>\n<li>Fixed: on a page whose theme\/page-builder template wraps content in a column narrower than the \"Custom search box width\" setting (seen on a page using a page-builder \"full width\"\/blank-canvas template), the setting had no visible effect at all. The previous CSS only ever shrank the box to fit its container (a max-width cap); it's now an explicit width, so the box actually resizes as configured, growing past a narrow container if needed.<\/li>\n<li>Fixed: once a box is wider than its immediate container, plain CSS centering (<code>margin: auto<\/code>) can't center it \u2014 it just hangs off the container's right edge. The Custom Search Form's search box and results iframe now use a centering technique that works correctly even when the box is wider than the column it sits in.<\/li>\n<\/ul>\n\n<h4>1.8.2<\/h4>\n\n<ul>\n<li>Fixed: the \"Custom search box width\" setting had no visible effect on some pasted embed code. The outer search-box container was resizing correctly, but a pasted <code>&lt;table&gt;<\/code> or <code>&lt;form&gt;<\/code> with its own fixed width (common in older Xtreme Locator embed markup) was silently overriding it. Both are now forced to fill (not exceed) the box, so the width setting actually controls what's visible.<\/li>\n<li>Fixed: the search box (both the built-in search types and the Custom Search Form) sat flush against the left edge of its container instead of centering. It now centers the same way the results iframe does.<\/li>\n<\/ul>\n\n<h4>1.8.1<\/h4>\n\n<ul>\n<li>Fixed: the Custom Search Form's Reset\/Clear button (when the pasted embed code has one) wasn't styled by the Button color setting at all. It now gets the plugin's own \"xlocator-clear\" class automatically, using the same Button color as the Search button \u2014 styled as an outline so the two stay visually distinguishable.<\/li>\n<li>Fixed: the Custom Search Form's results iframe sat flush against the left edge of the page instead of centering the way the built-in search types' results page does. The results iframe now centers itself within its container.<\/li>\n<li>Added a new \"Custom search box width\" setting (Settings \u2192 Xtreme Locator \u2192 Custom Search Form), so the Custom Search Form's box can be sized independently of \"Form width\" under Colors &amp; Appearance, which still controls only the four built-in search types. Defaults to 600px.<\/li>\n<\/ul>\n\n<h4>1.8.0<\/h4>\n\n<ul>\n<li>Added an optional \"Custom Search Form\" feature for search forms with a different field set than the four built-in types (Zip \/ Zip and Distance \/ International \/ Near Me). Paste an Xtreme Locator embed snippet into the new Settings \u2192 Xtreme Locator \u2192 Custom Search Form textarea, then place it on a page with the new <code>[xtreme_locator_custom_search]<\/code> shortcode.<\/li>\n<li>The pasted form's results are routed into an on-page iframe next to the form (results stay on your own site) via the form's <code>target<\/code> attribute \u2014 no parsing of the form's individual fields is required, so any field set works.<\/li>\n<li>A relative <code>&lt;form action=\"...\"&gt;<\/code> in the pasted code (e.g. <code>findLocations.php<\/code>) is automatically resolved against app.xtremelocator.com.<\/li>\n<li>The pasted form's Submit button automatically picks up this plugin's button color\/text color styling from Settings \u2192 Xtreme Locator \u2192 Colors &amp; Appearance, matching the built-in search types.<\/li>\n<li><code>&lt;script&gt;<\/code> tags in the pasted code are stripped automatically; everything else is output as entered. This field is admin-only (Settings page, <code>manage_options<\/code>) and is intentionally not run through WordPress's usual HTML sanitization, since that would strip the <code>&lt;form&gt;<\/code>\/<code>&lt;input&gt;<\/code>\/<code>&lt;select&gt;<\/code> elements a search form needs \u2014 documented in both the field description and this readme.<\/li>\n<\/ul>\n\n<h4>1.7.4<\/h4>\n\n<ul>\n<li>The \"Advanced Search\" link now routes through the plugin's own in-site results page (same sandboxed-iframe pattern used for regular searches) instead of navigating the visitor directly to app.xtremelocator.com.<\/li>\n<\/ul>\n\n<h4>1.7.3<\/h4>\n\n<ul>\n<li>Fixed the Button color setting (Settings \u2192 Xtreme Locator \u2192 Colors &amp; Appearance) not visibly applying to the Search button or the Advanced Search link on some themes. The plugin's own button color\/text-color\/border styling now takes precedence over theme button styles that were silently overriding it.<\/li>\n<\/ul>\n\n<h4>1.7.2<\/h4>\n\n<ul>\n<li>Removed the \"Powered By XtremeLocator\" credit link feature entirely \u2014 the Settings checkbox, the option, and the front-end markup are all gone. It no longer exists in any form, on by default or otherwise.<\/li>\n<\/ul>\n\n<h4>1.7.1<\/h4>\n\n<ul>\n<li>Updated defaults: Zip\/Postal Code label defaults to \"Zip Code\" and placeholder to \"Enter your zip code\"; Distance placeholder defaults to \"Enter search distance\"; Advanced Search link defaults to off; results iframe defaults to 900px wide by 1100px tall. (Only affects sites that have never saved Settings \u2192 Xtreme Locator \u2014 existing saved settings are never overwritten.)<\/li>\n<li>Tested up to WordPress 7.1.<\/li>\n<\/ul>\n\n<h4>1.7.0<\/h4>\n\n<ul>\n<li>Removed the hard-coded default Site ID (previously baked in for a single private install). The plugin now ships with no default Site ID, and clearly prompts site admins to enter their own under Settings \u2192 Xtreme Locator \u2014 with a link to start a free Xtreme Locator trial (free for up to 15 locations) if they don't have an account yet.<\/li>\n<li>Added a setup reminder shown to site admins (only) wherever the shortcode\/widget is placed, or on the results page, if no Site ID is configured yet. Regular visitors simply see nothing until it's set up.<\/li>\n<li>Updated plugin metadata (Plugin URI, Author URI) and prepared the plugin\/readme for listing in the WordPress.org plugin directory.<\/li>\n<li>The \"International\" search type's country-picker script is now properly enqueued via <code>wp_enqueue_script()<\/code> instead of being printed as a raw <code>&lt;script&gt;<\/code> tag.<\/li>\n<li>Added <code>uninstall.php<\/code> so the plugin's one stored option is removed when the plugin is deleted (not just deactivated).<\/li>\n<li>Added an optional \"Powered By XtremeLocator\" credit link under the search box, off by default \u2014 an admin must explicitly opt in under Settings \u2192 Xtreme Locator. (Settings-only by design \u2014 not a shortcode attribute \u2014 so only the site administrator's own action can turn it on.)<\/li>\n<li>Fixed a Plugin Check error (missing translators comment) and two warnings (latitude\/longitude sanitization not recognized by the automated scanner) flagged during WordPress.org submission review.<\/li>\n<li>On the Plugins list screen, this plugin's row now reads \"Xtreme Locator by IQServices.com\" in place of WordPress' default \"By Xtreme Locator\" credit line.<\/li>\n<li>Fixed inconsistent short description (\"results shown instead of an iframe\" vs. the actual sandboxed-iframe results page).<\/li>\n<li>The \"Powered By XtremeLocator\" credit link is now off by default; showing it requires an explicit admin opt-in (was previously on by default).<\/li>\n<li>The International search type's postal-availability watcher script is now attached via <code>wp_add_inline_script()<\/code> instead of a raw inline <code>&lt;script&gt;<\/code> tag.<\/li>\n<li>Added direct links to Xtreme Locator's terms of service and privacy policy in the readme's External Services section (previously linked only to the homepage).<\/li>\n<li>Removed the <code>show_powered_by<\/code> shortcode attribute. The \"Powered By XtremeLocator\" credit link can now only be enabled from the site admin's own Settings \u2192 Xtreme Locator checkbox \u2014 not overridable via shortcode, so only the administrator's explicit action can turn it on.<\/li>\n<\/ul>\n\n<h4>1.6.1<\/h4>\n\n<ul>\n<li>Fixed a black box appearing around the search box on some themes: many themes apply a default border\/background to bare <code>&lt;form&gt;<\/code> elements (e.g. for comment\/contact forms), which was leaking into the search box since the plugin's own box styling lives on an inner wrapper, not the outer <code>&lt;form&gt;<\/code> tag. The outer element now explicitly resets border\/background\/box-shadow so only this plugin's own settings (or none, by default) show.<\/li>\n<\/ul>\n\n<h4>1.6.0<\/h4>\n\n<ul>\n<li>International search type: the postal code field's placeholder now switches to a configurable message (\"Postal code search not available for this country\" by default, editable under Settings \u2192 Xtreme Locator or via the <code>postal_unavailable_text<\/code> shortcode attribute) whenever Xtreme Locator's own script disables that field for the selected country.<\/li>\n<\/ul>\n\n<h4>1.5.0<\/h4>\n\n<ul>\n<li>Added three more search types alongside the original Zip search: Zip and Distance, International (country + postal code), and Near Me (one button using the visitor's browser location). Choose the default under Settings \u2192 Xtreme Locator, or per-instance with a shortcode's <code>type<\/code> attribute.<\/li>\n<li>All four search types now route their results through your own site's iframe results page \u2014 including Near Me, which Xtreme Locator's own code normally opens in a new tab on their domain.<\/li>\n<li>Added matching text settings\/shortcode attributes: <code>dist_label<\/code>, <code>dist_placeholder<\/code>, <code>country_label<\/code>, <code>near_me_button_text<\/code>.<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>Added full customization for the search box under Settings \u2192 Xtreme Locator (and matching shortcode attributes): text\/labels (heading, zip field label &amp; placeholder, button text, advanced link text), colors &amp; appearance (button, heading, text, background, border colors; border width; font family; form width), and layout (inline vs. stacked).<\/li>\n<li>Rebuilt the search box markup from an HTML <code>&lt;table&gt;<\/code> to a semantic, flexbox-based layout for cleaner styling and better responsiveness.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Added a Settings \u2192 Xtreme Locator admin page: configure the default Site ID, heading, Advanced Search link, and button color used by the shortcode\/widget, plus the results iframe's width, height, and scrollbar behavior (auto \/ always \/ never).<\/li>\n<li>Widened the search box table and made the zip field\/table responsive so the box no longer looks cramped in narrow columns.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Results now display on your own WordPress domain inside a sandboxed iframe, instead of a raw server-side passthrough. This avoids running Xtreme Locator's results-page scripts with full trust in your site's page, while still keeping the visitor's address bar on your domain throughout.<\/li>\n<li>Added a \"Open results in a new tab\" fallback link under the iframe.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>(Superseded by 1.2.0) Results rendered on your own WordPress domain via a server-side fetch\/passthrough instead of a redirect to app.xtremelocator.com.<\/li>\n<li>Added a friendly error message if the results service is unreachable or returns an unexpected response.<\/li>\n<li>Added a page title for the results page.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release. Converts the original XtremeLocator embed snippet (sid 1462) into a shortcode + widget, with escaping\/sanitization and an external stylesheet in place of inline styles.<\/li>\n<\/ul>","raw_excerpt":"Customizable Xtreme Locator search box (no iframe) with results shown on your own site in a sandboxed iframe. Requires an account.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/354879","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=354879"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/williqs"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=354879"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=354879"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=354879"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=354879"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=354879"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=354879"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}