{"id":11734,"date":"2025-10-28T19:38:38","date_gmt":"2025-10-28T19:38:38","guid":{"rendered":"https:\/\/www.windownation.com\/locations\/kansas\/"},"modified":"2026-09-17T21:30:45","modified_gmt":"2026-09-17T21:30:45","slug":"kansas","status":"publish","type":"nbly_state","link":"https:\/\/www.windownation.com\/locations\/kansas\/","title":{"rendered":"Kansas"},"content":{"rendered":"    <section class=\"wp-block-wn-state-intro\">\n        <div class=\"wn-state-intro-copy\">\n            <h1>Window Replacement Experts in Kansas<\/h1>\n            <div class=\"wn-state-intro-text\"><p>Kansas summers and cold winter winds can make drafty windows hard to ignore. With window replacement in Kansas from Window Nation, you can take a step toward better indoor comfort while giving your home a fresh look. Explore replacement window options that help reduce heat transfer, support energy efficiency, and complement your home\u2019s architecture. Whether you\u2019re updating a prairie-style home or a suburban ranch, find windows that bring natural light and everyday comfort to your favorite spaces.<\/p>\n<\/div>\n        <\/div>\n        <div class=\"wn-state-search\">\n            <form class=\"wn-state-search-form\" action=\"https:\/\/www.windownation.com\/locations\/\" method=\"get\">\n                <label for=\"wn-state-zip-1\">Find Your Local Window Nation:<\/label>\n                <input id=\"wn-state-zip-1\" name=\"zip\" type=\"text\" inputmode=\"numeric\" autocomplete=\"postal-code\" pattern=\"[0-9]{5}\" maxlength=\"5\" placeholder=\"Enter your zip code\" title=\"Please enter a 5-digit ZIP code.\" required>\n                <button class=\"primary-btn\" type=\"submit\">Search<\/button>\n                <p class=\"wn-state-search-status\" role=\"status\" aria-live=\"polite\"><\/p>\n            <\/form>\n        <\/div>\n    <\/section>\n    \n\n<section class=\"wp-block-wn-state-cities\"><h2>Cities Served in Kansas<\/h2><div class=\"wn-state-cities-layout\"><div class=\"wn-state-cities-list\"><ul><li><a href=\"https:\/\/www.windownation.com\/locations\/kansas\/lawrence\/\">Lawrence<\/a><\/li><li><a href=\"https:\/\/www.windownation.com\/locations\/kansas\/leavenworth\/\">Leavenworth<\/a><\/li><li><a href=\"https:\/\/www.windownation.com\/locations\/kansas\/leawood\/\">Leawood<\/a><\/li><li><a href=\"https:\/\/www.windownation.com\/locations\/kansas\/lenexa\/\">Lenexa<\/a><\/li><li><a href=\"https:\/\/www.windownation.com\/locations\/kansas\/merriam\/\">Merriam<\/a><\/li><li><a href=\"https:\/\/www.windownation.com\/locations\/kansas\/olathe\/\">Olathe<\/a><\/li><li><a href=\"https:\/\/www.windownation.com\/locations\/kansas\/overland-park\/\">Overland Park<\/a><\/li><li><a href=\"https:\/\/www.windownation.com\/locations\/kansas\/prairie-village\/\">Prairie Village<\/a><\/li><li><a href=\"https:\/\/www.windownation.com\/locations\/kansas\/shawnee\/\">Shawnee<\/a><\/li><\/ul><\/div><img class=\"wn-state-cities-image\" src=\"https:\/\/www.windownation.com\/locations\/wp-content\/plugins\/window-nation-blocks\/build\/state-cities\/assets\/cities-served-home.webp\" alt=\"Blue house with large illuminated windows at dusk\" width=\"640\" height=\"640\" loading=\"lazy\" decoding=\"async\"><\/div><\/section>\n\n\n<section class=\"wp-block-wn-mini-cta\"><div class=\"wn-block-container\"><div class=\"wn-mini-cta-content\"><h2>Save 50% on all windows<\/h2><p>And save even more with 0% interest for 60 months!<\/p><\/div><div class=\"wn-cta-buttons\">\n<div class=\"wp-block-wn-cta-button\"><a class=\"secondary-btn\" href=\"#request-quote\" data-quote-link=\"true\"><span>Get a Quote<\/span><\/a><\/div>\n<\/div><\/div><\/section>\n\n\n<section class=\"wp-block-nbly-locations-original wn-state-showrooms\"><h2>Window Nation Showrooms in Kansas<\/h2><div class=\"wn-block-container\"><div class=\"wp-block-nbly-locations-original-list\"><ul class=\"location-list\"><li class=\"location-item\">\n                <h4 class=\"location-title\">Window Nation Kansas City<\/h4>\n                <div class=\"wn-review-stars\">\n                <div class=\"wn-review-stars-container stars-full\" style=\"width:97px\">\n                    <span class=\"wn-review-star\">\u2605<\/span>\n                    <span class=\"wn-review-star\">\u2605<\/span>\n                    <span class=\"wn-review-star\">\u2605<\/span>\n                    <span class=\"wn-review-star\">\u2605<\/span>\n                    <span class=\"wn-review-star\">\u2605<\/span>\n                <\/div>\n                <div class=\"wn-review-stars-container stars-empty\">\n                    <span class=\"wn-review-star\">\u2606<\/span>\n                    <span class=\"wn-review-star\">\u2606<\/span>\n                    <span class=\"wn-review-star\">\u2606<\/span>\n                    <span class=\"wn-review-star\">\u2606<\/span>\n                    <span class=\"wn-review-star\">\u2606<\/span>\n                <\/div>\n            <\/div>\n                <p>\n                    15325 W 100th Terrace, Suite B<br \/>\n                    Lenexa, KS 62219<br \/>\n                    (913) 348-2340\n                <\/p>\n                <a class=\"primary-btn\" href=\"https:\/\/www.windownation.com\/locations\/missouri\/kansas-city\/\">Learn More<\/a>\n                <a class=\"primary-btn call-us\" href=\"tel:9133482340\">Call Us&nbsp;<\/a>\n            <\/li><\/ul><\/div><div class=\"wp-block-nbly-locations-original-map\"><div id=\"map\" role=\"presentation\"><\/div>\n                    <script>\n                        (g=>{var h,a,k,p=\"The Google Maps JavaScript API\",c=\"google\",l=\"importLibrary\",q=\"__ib__\",m=document,b=window;b=b[c]||(b[c]={});var d=b.maps||(b.maps={}),r=new Set,e=new URLSearchParams,u=()=>h||(h=new Promise(async(f,n)=>{await (a=m.createElement(\"script\"));e.set(\"libraries\",[...r]+\"\");for(k in g)e.set(k.replace(\/[A-Z]\/g,t=>\"_\"+t[0].toLowerCase()),g[k]);e.set(\"callback\",c+\".maps.\"+q);a.src=`https:\/\/maps.${c}apis.com\/maps\/api\/js?`+e;d[q]=f;a.onerror=()=>h=n(Error(p+\" could not load.\"));a.nonce=m.querySelector(\"script[nonce]\")?.nonce||\"\";m.head.append(a)}));d[l]?console.warn(p+\" only loads once. Ignoring:\",g):d[l]=(f,...n)=>r.add(f)&&u().then(()=>d[l](f,...n))})({\n                            key: \"AIzaSyAgutGJdUeN8A3K5pre71IrumEAXexIeKI\",\n                            v: \"weekly\",\n                        });\n                    <\/script>\n                    <script src=\"https:\/\/unpkg.com\/@googlemaps\/markerclusterer\/dist\/index.min.js\"><\/script>\n                    <script>\n                        var map;\n                        async function initMap() {\n                            const { Map, InfoWindow } = await google.maps.importLibrary(\"maps\");\n                            const { AdvancedMarkerElement, PinElement } = await google.maps.importLibrary(\"marker\",);\n                            map = new google.maps.Map(document.getElementById(\"map\"), {\n                                zoom: 3,\n                                center: { lat: -28.024, lng: 140.887 },\n                                streetViewControl: false,\n                                fullscreenControl: false,\n                                mapTypeControl: false,\n                                mapId: \"fe7cac85af94d16c\",\n                            });\n                            \n                            const stateName = \"Kansas\";\n                            if (!stateName) map.addListener(\"idle\", () => {\n                                var bounds = map.getBounds();\n                                let markerList = [];\n                                for (var i = 0; i < markers.length; i++) {\n                                    if (bounds.contains(markers[i].position) === true) {\n                                        locations.map((location, j) => {\n                                            if (markers[i].zIndex == location.id) {\n                                                console.log(location.title + \" \" + location.phone);\n                                                markerList.push({title:markers[i].title, url:location.url, address:location.address, phone:location.phone, phone_formatted:location.phone_formatted, reviews:location.reviews});\n                                            }\n                                        });\n                                    }\n                                }\n                                nblyBuildList(markerList);\n                            });\n\n                            const infoWindow = new google.maps.InfoWindow({\n                                content: \"\",\n                                disableAutoPan: true,\n                            });\n                            \n                            const locations = [{\"id\":17,\"title\":\"Window Nation Kansas City\",\"address\":\"15325 W 100th Terrace, Suite B\\u003Cbr \\\/\\u003ELenexa, KS 62219\",\"phone\":\"9133482340\",\"phone_formatted\":\"(913) 348-2340\",\"url\":\"https:\\\/\\\/www.windownation.com\\\/locations\\\/missouri\\\/kansas-city\\\/\",\"lat\":39.1,\"lng\":-94.579,\"reviews\":\"\\u003Cdiv class=\\u0022wn-review-stars\\u0022\\u003E\\n                \\u003Cdiv class=\\u0022wn-review-stars-container stars-full\\u0022 style=\\u0022width:97px\\u0022\\u003E\\n                    \\u003Cspan class=\\u0022wn-review-star\\u0022\\u003E\\u2605\\u003C\\\/span\\u003E\\n                    \\u003Cspan class=\\u0022wn-review-star\\u0022\\u003E\\u2605\\u003C\\\/span\\u003E\\n                    \\u003Cspan class=\\u0022wn-review-star\\u0022\\u003E\\u2605\\u003C\\\/span\\u003E\\n                    \\u003Cspan class=\\u0022wn-review-star\\u0022\\u003E\\u2605\\u003C\\\/span\\u003E\\n                    \\u003Cspan class=\\u0022wn-review-star\\u0022\\u003E\\u2605\\u003C\\\/span\\u003E\\n                \\u003C\\\/div\\u003E\\n                \\u003Cdiv class=\\u0022wn-review-stars-container stars-empty\\u0022\\u003E\\n                    \\u003Cspan class=\\u0022wn-review-star\\u0022\\u003E\\u2606\\u003C\\\/span\\u003E\\n                    \\u003Cspan class=\\u0022wn-review-star\\u0022\\u003E\\u2606\\u003C\\\/span\\u003E\\n                    \\u003Cspan class=\\u0022wn-review-star\\u0022\\u003E\\u2606\\u003C\\\/span\\u003E\\n                    \\u003Cspan class=\\u0022wn-review-star\\u0022\\u003E\\u2606\\u003C\\\/span\\u003E\\n                    \\u003Cspan class=\\u0022wn-review-star\\u0022\\u003E\\u2606\\u003C\\\/span\\u003E\\n                \\u003C\\\/div\\u003E\\n            \\u003C\\\/div\\u003E\"}]\n                            const markers = locations.map((position, i) => {\n                                const markerImg = document.createElement(\"img\");\n                                markerImg.src = \"https:\/\/www.windownation.com\/locations\/wp-content\/themes\/window-nation\/brands\/wn\/images\/map-view.svg\";\n                                markerImg.setAttribute(\"height\", \"30px\");\n                                markerImg.setAttribute(\"width\", \"30px\");\n                                const _marker = new google.maps.LatLng(position.lat, position.lng); \n                                const marker = new google.maps.marker.AdvancedMarkerElement({\n                                    position: _marker,\n                                    content: markerImg,\n                                    title: position.title,\n                                    zIndex: position.id\n                                });\n\n                                marker.addListener(\"gmp-click\", () => {\n                                    infoWindow.setContent(\"<div class='modal-body'><div class='modal-heading'>\" + position.title + \"<\/div><div class='modal-text'>\" + position.address + \"<\/div><div class='modal-cta'><a href='tel:\" + position.phone + \"'>\" + position.phone_formatted + \"<\/a><a href='\" + position.url + \"'>Learn More<\/a><\/div><\/div>\");\n                                    infoWindow.open(map, marker);\n                                    map.setCenter(marker.position);\n                                });\n                            \n                                return marker;\n                            });\n\n                            const svg = window.btoa(`<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" height=\"32\" width=\"32\"><circle class=\"c\" cx=\"16\" cy=\"16\" r=\"14\" fill=\"none\" stroke=\"#005BA7\" stroke-width=\"3\"\/><circle class=\"d\" cx=\"16\" cy=\"16\" r=\"5\" fill=\"#005BA7\" stroke=\"#005BA7\" stroke-width=\"10\"\/><\/svg>`);\n                            const renderer = {\n                                render: ({ count, position }) =>\n                                    new google.maps.Marker({\n                                        label: { text: String(count), color: \"#ffffff\", fontSize: \"13px\", fontWeight: \"600\" },\n                                        icon: {\n                                            url: `data:image\/svg+xml;base64,${svg}`,\n                                            scaledSize: new google.maps.Size(32, 32),\n                                        },\n                                        position,\n                                        zIndex: Number(google.maps.Marker.MAX_ZINDEX) + count,\n                                    })\n                            };\n\n                        const markerCluster = new markerClusterer.MarkerClusterer({ markers, map, renderer });\n\n                        let bounds = new google.maps.LatLngBounds();\n                        locations.forEach(function(LatLng) {\n                            bounds.extend(LatLng);\n                        });\n                        \n                        if (locations.length) map.fitBounds(bounds);\n                        if (markers.length == 1 && !stateName)\n                            map.setOptions({maxZoom: 9});\n                        if (stateName) {\n                            const stateBounds = {\"east\":-94.6108,\"north\":40.0016,\"south\":36.9948,\"west\":-102.0539};\n                            if (stateBounds) {\n                                map.fitBounds(stateBounds, 24);\n                            } else if (locations.length === 1) {\n                                map.setZoom(8);\n                            }\n                        }\n                        }\n\n                        initMap().then(() => {\n                            const zip = new URLSearchParams(window.location.search).get(\"zip\") || \"\";\n                            if (!\"Kansas\" && \/^[0-9]{5}$\/.test(zip)) {\n                                jQuery(() => {\n                                    jQuery(\"#location-search\").val(zip);\n                                    jQuery(\".nbly-do-find-location\").trigger(\"click\");\n                                });\n                            }\n                        });\n\n                        function nblyBuildList(markerList) {\n                            let list_contents = \"\";\n                            for (var i = 0; i < markerList.length; i++) {\n                                list_contents = list_contents + nblyBuildListItem(markerList[i]);\n                            }\n                            jQuery(\".location-list\").html(list_contents);\n                            if (markerList.length == 1) { \n                                jQuery(\".location-total-text span\").html(markerList.length + \" location found\");\n                            } else {\n                                jQuery(\".location-total-text span\").html(markerList.length + \" locations found\");\n                            }\n                        }\n\n                        function nblyBuildListItem(obj) {\n                            return \"<li class='location-item'><h4 class='location-title'>\" + obj.title + \"<\/h4> \" + obj.reviews + \"<p>\" + obj.address + \"<br \/>\" + obj.phone_formatted + \"<\/p><a class='primary-btn' a href='\" + obj.url + \"'>Learn More<\/a><\/li>\";\n                        }\n                    <\/script><\/div><\/div><\/section>\n\n    <section class=\"wp-block-wn-schedule-service wp-block-wn-schedule-service--landing\">\n        <div class=\"service-form-container\">\n            <div class=\"service-form\">\n                                    <h2>Get Your Free Estimate<\/h2>\n                                                <form class=\"wn-schedule-service-form\" name=\"homepageForm\" id=\"wn-schedule-service-2\" data-msevent=\"form_submitted\" data-mscategory=\"form_submitted\" data-msaction=\"form submission\" data-thank-you-url=\"\">\n                    <div>\n                        <div>\n                            <label for=\"wn-schedule-service-2-first-name\">First Name*<\/label>\n                            <input type=\"text\" id=\"wn-schedule-service-2-first-name\" data-wn=\"req-first-name\" placeholder=\"First Name*\" autocomplete=\"given-name\" maxlength=\"30\" pattern=\"[A-Za-z]+\" required>\n                        <\/div>\n                        <div>\n                            <label for=\"wn-schedule-service-2-last-name\">Last Name*<\/label>\n                            <input type=\"text\" id=\"wn-schedule-service-2-last-name\" data-wn=\"req-last-name\" placeholder=\"Last Name*\" autocomplete=\"family-name\" maxlength=\"50\" pattern=\"[A-Za-z]+\" required>\n                        <\/div>\n                    <\/div>\n                    <div>\n                        <div class=\"form-wide\">\n                            <label for=\"wn-schedule-service-2-email\">Email*<\/label>\n                            <input type=\"email\" id=\"wn-schedule-service-2-email\" data-wn=\"req-email\" placeholder=\"Email*\" autocomplete=\"email\" inputmode=\"email\" required>\n                        <\/div>\n                    <\/div>\n                    <div>\n                        <div>\n                            <label for=\"wn-schedule-service-2-phone\">Phone Number*<\/label>\n                            <input type=\"tel\" id=\"wn-schedule-service-2-phone\" data-wn=\"req-phone\" placeholder=\"Phone Number*\" autocomplete=\"tel\" inputmode=\"tel\" maxlength=\"14\" required pattern=\"\\([0-9]{3}\\) [0-9]{3}-[0-9]{4}\" title=\"Please enter a 10-digit phone number.\">\n                        <\/div>\n                        <div>\n                            <label for=\"wn-schedule-service-2-postal-code\">ZIP Code*<\/label>\n                            <input type=\"text\" id=\"wn-schedule-service-2-postal-code\" data-wn=\"req-postal-code\" placeholder=\"ZIP Code*\" autocomplete=\"postal-code\" inputmode=\"numeric\" maxlength=\"5\" required pattern=\"[0-9]{5}\" title=\"Please enter a 5-digit ZIP code.\">\n                        <\/div>\n                    <\/div>\n                                            <label class=\"service-form-consent\">\n                            <input type=\"checkbox\" name=\"consent\" required>\n                            <span>By submitting this form, you are giving your express written consent without obligation for Window Nation to contact you regarding our services using e-mail, phone, or text, including automated technology for calls and\/or texts to the mobile number(s) provided. For more details, including how to opt out, read our <a href=\"https:\/\/www.windownation.com\/privacy-policy\" target=\"_blank\">privacy policy<\/a>.<\/span>\n                        <\/label>\n                                        <button type=\"submit\" class=\"primary-btn wn-schedule-service\" title=\"Submit\">Submit<\/button>\n                                    <\/form>\n            <\/div>\n            <div class=\"service-form-success\">\n                <h2>Thank you for contacting us!<\/h2>\n                <p><\/p>\n            <\/div>\n        <\/div>\n    <\/section>\n    ","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-11734","nbly_state","type-nbly_state","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.windownation.com\/locations\/wp-json\/wp\/v2\/nbly_state\/11734","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.windownation.com\/locations\/wp-json\/wp\/v2\/nbly_state"}],"about":[{"href":"https:\/\/www.windownation.com\/locations\/wp-json\/wp\/v2\/types\/nbly_state"}],"author":[{"embeddable":true,"href":"https:\/\/www.windownation.com\/locations\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.windownation.com\/locations\/wp-json\/wp\/v2\/comments?post=11734"}],"version-history":[{"count":2,"href":"https:\/\/www.windownation.com\/locations\/wp-json\/wp\/v2\/nbly_state\/11734\/revisions"}],"predecessor-version":[{"id":41141,"href":"https:\/\/www.windownation.com\/locations\/wp-json\/wp\/v2\/nbly_state\/11734\/revisions\/41141"}],"wp:attachment":[{"href":"https:\/\/www.windownation.com\/locations\/wp-json\/wp\/v2\/media?parent=11734"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}