{"id":30280,"date":"2026-09-20T05:02:59","date_gmt":"2026-09-20T05:02:59","guid":{"rendered":"https:\/\/monanimaldamour.fr\/?p=30280"},"modified":"2026-09-20T05:02:59","modified_gmt":"2026-09-20T05:02:59","slug":"new-self-service-dog-wash-facility-opens-in-haverfordwest","status":"publish","type":"post","link":"https:\/\/monanimaldamour.fr\/?p=30280","title":{"rendered":"New self-service dog wash facility opens in Haverfordwest"},"content":{"rendered":"<p><\/p>\n<div id=\"subscription-content\">\n<p>\n  Wash Your Woofer, an unmanned self-service dog wash facility, officially opened its doors on September 17, offering dog owners a convenient alternative to washing muddy pets at home or booking a full grooming appointment.\n<\/p>\n<p>\n  The concept came from the owner, Yazmin Jones&#8217; own experience.\n<\/p>\n<p>\n  &#8220;I wanted somewhere I could easily wash my dog without having to use the same bath facilities that my children use,&#8221; said Yazmin.\n<\/p>\n<p>\n  &#8220;I also wanted somewhere that was quick and convenient, without having to plan ahead and wait for a grooming appointment.&#8221;\n<\/p>\n<p>\n  <img srcset=\"https:\/\/www.westerntelegraph.co.uk\/resources\/images\/21472881\/?type=mds-article-575 575w, https:\/\/www.westerntelegraph.co.uk\/resources\/images\/21472881\/?type=mds-article-962 962w, https:\/\/www.westerntelegraph.co.uk\/resources\/images\/21472881\/?type=mds-article-642 1400w, https:\/\/www.westerntelegraph.co.uk\/resources\/images\/21472881\/?type=mds-article-620 1401w\" sizes=\"(max-width: 575px) 575px, (max-width: 992px) 962px, (max-width: 1400px) 1400px, (min-width: 1401px) 1401px\" width=\"100%\" alt=\"A black and white dog looking happy with his fresh pamper in the bath that he is sat in.\"\/><span class=\"inline-image-caption\">One of Wash Your Woofer&#8217;s first customers, pictured after swapping muddy paws for a fresh new look. <em>(Image: Mart Jones- Darth Marty Media)<\/em><\/span>\n<\/p>\n<p>\n  Ms Jones said Haverfordwest was the ideal location thanks to the area&#8217;s large dog-owning community and its popularity with visitors travelling with pets.\n<\/p>\n<p>\n  &#8220;There are so many dog owners locally, as well as people visiting the area with their dogs. I felt there was an opportunity to provide something slightly different that wasn&#8217;t currently available in the town.&#8221;\n<\/p>\n<p>\n  Unlike a traditional grooming salon, Wash Your Woofer allows customers to wash their dogs themselves without the need for an appointment.\n<\/p>\n<p>\n  Ms Jones believes the flexibility of the self-service model will appeal to dog owners looking for a simple solution when their pets return home covered in mud.\n<\/p>\n<p>\n  &#8220;There are lots of occasions when your dog doesn&#8217;t necessarily need a full grooming appointment. They might just need a good wash,&#8221; she said.\n<\/p>\n<p>\n  &#8220;If you&#8217;ve been out for a walk and your dog has found every muddy puddle possible, you don&#8217;t necessarily want to take them home and carry that mud through the house.\n<\/p>\n<p>\n  &#8220;You can now stop at Wash Your Woofer, give them a wash and head home with a clean dog.&#8221;\n<\/p>\n<p>\n  <img srcset=\"https:\/\/www.westerntelegraph.co.uk\/resources\/images\/21472841\/?type=mds-article-575 575w, https:\/\/www.westerntelegraph.co.uk\/resources\/images\/21472841\/?type=mds-article-962 962w, https:\/\/www.westerntelegraph.co.uk\/resources\/images\/21472841\/?type=mds-article-642 1400w, https:\/\/www.westerntelegraph.co.uk\/resources\/images\/21472841\/?type=mds-article-620 1401w\" sizes=\"(max-width: 575px) 575px, (max-width: 992px) 962px, (max-width: 1400px) 1400px, (min-width: 1401px) 1401px\" width=\"100%\"\/><span class=\"inline-image-caption\">Founder Yazmin Jones spotted a gap in the market from her own experience as a dog owner and busy mum of 4. <em>(Image: Marty Jones- Darth Marty Media)<\/em><\/span>\n<\/p>\n<p>\n  She added that the service could be particularly useful for owners of larger dogs or those who find bathing pets at home difficult.\n<\/p>\n<p>\n  The business is the result of months of planning, renovations and investment.\n<\/p>\n<p>\n  Transforming the premises proved to be a larger project than first expected, involving significant building work, installation of specialist equipment, branding and signage.\n<\/p>\n<p>\n  &#8220;There were definitely some long days and plenty of challenges along the way, but every stage brought us closer to the finished business,&#8221; said Yazmin.\n<\/p>\n<p>\n  &#8220;Seeing the transformation from where we started to where we are now has made all of the hard work worthwhile.&#8221;\n<\/p>\n<p>\n  Although the facility has only recently opened, the response from customers has already been encouraging.\n<\/p>\n<p>\n  &#8220;It&#8217;s been fantastic to see people coming in and using the facilities and to hear their feedback,&#8221; they said.\n<\/p>\n<p>\n  &#8220;One of the nicest things has been seeing how interested people are in the concept and hearing people say that they can immediately think of occasions when they would use it.&#8221;\n<\/p>\n<p>\n  Launching the business required a significant financial and personal commitment, with Yazmin describing it as a &#8220;leap of faith&#8221;.\n<\/p>\n<p>\n  However, she said confidence in the idea came from recognising a genuine gap in the market.\n<\/p>\n<p>\n  &#8220;The idea came from a genuine need I had myself as a dog owner, and I felt that if I was looking for this type of service, there would hopefully be other people who were too.&#8221;\n<\/p>\n<p>\n  The response from the community has already been positive.\n<\/p>\n<p>\n  She said: &#8220;It\u2019s been fantastic to see people coming in and using the facilities and to hear their feedback.\n<\/p>\n<p>\n  &#8220;One of the nicest things has been seeing how interested people are in the concept and hearing people say that they can immediately think of occasions when they would use it.&#8221;\n<\/p>\n<p>\n  Looking ahead, she hopes to establish Wash Your Woofer as a trusted service in Haverfordwest and potentially expand to other locations in Pembrokeshire if demand is strong.\n<\/p>\n<p>\n  For now, she is focused on delivering a reliable, convenient service that helps dog owners keep their pets and their homes, clean and comfortable.\n<\/p>\n<\/div>\n<p><script type = \"text\/javascript\">\n( function () {\n    window._sp_ = {\n        config: {\n            baseEndpoint: '\n            accountId: 52,\n            targetingParams:{\n                subscribed: false,\n                privacy: false\n            },\n            gdpr: { },\n            events: {\n                onMessageReady: function (message_type) {\n                    trackSPEvents('event76');\n                },\n                onMessageChoiceSelect: function (message_type, choice_id, choice_type_id) {\n                    console.log('message_type: ', message_type);\n                    console.log('choice_id: ', choice_id);\n                    console.log('choice_type_id: ', choice_type_id);\n                    if ('yes' === 'yes') {\n                        if (choice_type_id === 12) {\n                            trackSPEvents('event83'); \/\/Consent Banner Reject All\n                            trackSPEvents('event82'); \/\/Journalism Message Shown\n                        }\n                        if (choice_type_id === 11) {\n                            trackSPEvents('event78');\n                        }\n                        if (choice_type_id === 9) {\n                            trackSPEvents('event77');\n                        }\n                    } else {\n                        \/\/ these are the second argument in non-gate\n                        if (choice_type_id === 12) {\n                            trackSPEvents('event77');\n                        }\n                        if (choice_type_id === 11) {\n                            trackSPEvents('event78');\n                        }\n                        if (choice_type_id === 13) {\n\t\t                    trackSPEvents('event83');\n                        }\n                    }\n                },\n                onPrivacyManagerActionStatus: function(message_type, status, actionType) {\n                    console.log('message_type: ' + message_type);\n                    console.log('status: ' + status);\n                    console.log('actionType: ' + actionType);\n                    if ('yes' === 'yes') {\n                        if (actionType === 11) {\n                            trackSPEvents('event79'); \/\/Privacy Manager Accept\n                        }\n                        if (actionType === 9) {\n                            trackSPEvents('event68'); \/\/Privacy Manager Redirect\n                        }\n                        if (actionType === 1) {\n                            trackSPEvents('event75'); \/\/Forced tcf String Change\n                        }\n                    } else {\n                    \/\/ these are the second argument in non-gate\n                        if (actionType === 13) {\n                            trackSPEvents('event81'); \/\/Privacy Manager Reject\n                        }\n                        if (actionType === 11) {\n                            trackSPEvents('event79'); \/\/Privacy Manager Accept\n                        }\n                        if (actionType === 1) {\n                            trackSPEvents('event80'); \/\/Privacy Manager Save & Exit\n                        }\n                    }\n                },\n                onPMCancel: function (message_type) {\n                    console.log('onPMCancel', message_type);\n                    trackSPEvents('event84'); \/\/Privacy Manager Back\n                },\n            }\n        }\n    }\n    if (typeof window.__tcfapi === 'function') {\n        window.__tcfapi('addEventListener', 2, function (tcData, success) {\n            console.log('SP: Event Listen:', tcData, success);\n            if (success && tcData.eventStatus === 'useractioncomplete') {\n                setTcfCookie(tcData.purpose.consents, tcData.purpose.legitimateInterests);\n                var csnt=\"none\";\n                if ($.cookie('_sp_enable_dfp_personalized_ads') === 'true') {\n                    csnt=\"yes\";\n                } else if ($.cookie('_sp_enable_dfp_personalized_ads') === 'false') {\n                    csnt=\"no\";\n                }\n                googletag.cmd.push(function() {\n                    \/\/ console.log('DFP: Cookie check - setting dfpcsnt to ', csnt);\n                    googletag.pubads().setTargeting('dfpcsnt', csnt);\n                });\n                \/\/ ready to start DFP\n                \/\/ console.log('PIANO: setting unrestricted via useractioncomplete');\n                \/\/ runPiano('unrestricted');\n                startAdvertising(tcData.listenerId);\n                var e = new Event('launch:cmp:choice-made');\n                window.dispatchEvent(e);\n            } else if (success && tcData.eventStatus === 'tcloaded') {\n                \/\/ tcloaded means a valid TCF v2.0 string is available\n                \/\/ console.log('PIANO: setting unrestricted via tcloaded');\n                \/\/ runPiano('unrestricted');\n                if (tcData.gdprApplies === false) {\n                    $.cookie('_sp_enable_dfp_personalized_ads', 'true', {domain: '.westerntelegraph.co.uk', path: \" expires: 100});\n                }\n                startAdvertising(tcData.listenerId);\n            } else if (success && tcData.eventStatus === 'useractionnotcomplete') {\n                \/\/ do nothing - this means the user has not made a choice yet\n            } else if (success && tcData.eventStatus === 'cmpuishown') {\n                \/\/ do nothing - this means the CMP UI has been shown\n            } else if (!success) {\n                \/\/ $.cookie('_sp_enable_dfp_personalized_ads', 'true', {domain: '.westerntelegraph.co.uk', path: \" expires: 100});\n                \/\/ startAdvertising();\n            } else {\n                \/\/ console.log('PIANO: setting restricted');\n                \/\/ runPiano('restricted');\n            }\n        });\n    }\n    document.addEventListener('click', function (e) {\n        const option = e.target.closest('.gdpr-option-v2');\n        if (!option) return;\n        e.preventDefault();\n        sendEvent76 = false;\n        const id = option.dataset.v2Id;\n        const isGate = option.dataset.isGate;\n        if (isGate === 'yes') {\n            trackSPEvents('event87');\n            _sp_.gdpr.loadPrivacyManagerModal(id);\n        } else {\n            trackSPEvents('event77');\n            _sp_.gdpr.loadPrivacyManagerModal(id);\n        }\n    });\n    function getTcfData() {\n        if (typeof window.__tcfapi !== 'function') {\n            console.warn('TCF API unavailable');\n            return;\n        }\n        window.__tcfapi('addEventListener', 2, function(data, success) {\n            if (!data.purpose || !data.purpose.consents || !data.purpose.legitimateInterests) {\n                \/\/ console.log('DFP: No TCF data found, not setting cookies');\n                return;\n            }\n            setTcfCookie(data.purpose.consents, data.purpose.legitimateInterests);\n        }, [755]);\n    }\n    getTcfData();\n    function setTcfCookie(data, legitimateInterests) {\n        var consents = [];\n        $.each(data, function(id, consent)  {\n            var c = (consent === true) ? 'yes' : 'no';\n            consents.push(c)\n        });\n        \/\/ console.log('DFP: consents length: ', consents.length);\n        if (consents.length !== 10) {\n            \/\/ consents = consents.fill('no', consents.length, 10);\n            for (var i = consents.length; i < 10; i++) {\n                consents[i] = 'no';\n            }\n        }\n        \/\/ console.log('DFP: Found consents to store in cookie:', consents);\n        $.cookie('prev-tcf-v2', consents.join(','), {domain: '.westerntelegraph.co.uk', path: \" expires: 100});\n\n        var consentEvent4 = 'none';\n        if (typeof data[4] !== 'undefined') {\n            consentEvent4 = data[4] ? 'true' : 'false';\n        }\n        $.cookie('_sp_enable_dfp_personalized_ads', consentEvent4, {domain: '.westerntelegraph.co.uk', path: \" expires: 100});\n\n        var legitInterest=\"none\";\n        if (legitimateInterests &#038;&#038; typeof legitimateInterests[2] !== 'undefined') {\n            legitInterest = legitimateInterests[2] ? 'true' : 'false';\n        }\n\n        $.cookie('_sp_legitimate_interests', legitInterest , {domain: '.westerntelegraph.co.uk', path: \" expires: 100});\n    }\n\n    var sendEvent76 = true;\n\n    function trackSPEvents(events) {\n        if (events === 'event76' &#038;&#038; !sendEvent76) {\n            return;\n        } else if (events === 'event76') {\n            sendEvent76 = false;\n        }\n\n        if (typeof window.s !== 'object') {\n            \/\/ console.log('DFP: No window.s object found, trying again in 1 second');\n            window.setTimeout(function () { trackSPEvents(events)} , 1000);\n            return;\n        }\n\n        \/\/ console.log(\"ADB: Tracking %s\", events);\n        \/\/ Re-create the Omniture object so the data can be tracked.\n        var s = window.s;\n\n        if (events.indexOf('event70') !== -1) {\n            \/\/ console.log('DFP: Events passed, added evars');\n            s.eVar35 = 'enabled';\n            s.prop35 = 'enabled';\n        }\n\n        s.events = events;\n        s.linkTrackEvents = events;\n        s.linkTrackVars = \"eVar2,eVar3,eVar4,eVar5,eVar6,evar7,evar8,evar9,eVar16,eVar19,eVar26,eVar35,eVar43,eVar67,prop35\";\n        s.suppressPageView = true;\n        s.tl(true,'o','Ad Block');\n    }\n\n    function startAdvertising(id)\n    {\n        if (typeof window.doNotAdvertise !== 'undefined' &#038;&#038; window.doNotAdvertise === true) {\n            return;\n        }\n\n        \/\/ console.log(\"DFP: Is the page fully loaded?\", window.googleReady);\n        if (window.googleReady !== true) {\n            window.setTimeout(function () {\n                \/\/ console.log('DFP: Google not fully loaded yet, pausing quarter of a second before trying again');\n                startAdvertising(id);\n            }, 250);\n            return;\n        }\n\n        \/\/ Ensure that we never run this code twice\n        if (window.advertisingStart === true) {\n            return;\n        }\n        \/\/ console.log('DFP: Running advertisement');\n        window.advertisingStart = true;\n\n        var googletag = window.googletag;\n        \/\/ init google objects and array\n        (function() {\n            var gads = document.createElement('script');\n            gads.async = true;\n            gads.type=\"text\/javascript\";\n            gads.src=\"https:\/\/securepubads.g.doubleclick.net\/tag\/js\/gpt.js\";\n            var node = document.getElementsByTagName('script')[0];\n            node.parentNode.insertBefore(gads, node);\n        })();\n\n        \/\/ launch the exco slideshow player\n        launchExcoSlideshow();\n\n        \/\/ load facebook etc\n        loadSocials();\n\n        \/\/ Checking our decision to use headerbidding (shorterned as prebid) is correct\n        \/\/ via system logic, and that we have the simplified consent to do so\n        if (usePrebid &#038;&#038; $.cookie('_sp_enable_dfp_personalized_ads') === 'true') {\n            var e = new Event('launch:sourcepoint:consentaccepted');\n            window.dispatchEvent(e);\n\n            \/\/ AP code initialisation\n            \/\/ the script is loaded via launch, once we have detected a consent signal via the datalayer.\n            fetchAp();\n\n            var site=\"desktop\";\n            var _site=\"desktop\";\n\n            \/\/ load IAS scripts and set up vars\n            (function() {\n                var ias = document.createElement('script');\n                ias.async = true;\n                ias.type=\"text\/javascript\";\n                ias.src=\"https:\/\/cdn.adsafeprotected.com\/iasPET.1.js\";\n                var node = document.getElementsByTagName('script')[0];\n                node.parentNode.insertBefore(ias, node);\n            })();\n\n            \/\/ load the prebid script\n            (function() {\n                var pbs = document.createElement('script');\n                pbs.async = true;\n                pbs.type=\"text\/javascript\";\n                pbs.src=\"https:\/\/micro.rubiconproject.com\/prebid\/dynamic\/11022.js?group=newsquest\";\n                var node = document.getElementsByTagName('script')[0];\n                node.parentNode.insertBefore(pbs, node);\n            })();\n\n            \/\/ tell google to actually get the bids from all relevant vendors when loaded\n            googletag.cmd.push(function () {\n                fetchHeaderBids();\n            });\n        }\n\n        \/\/ Outbrain\n        if (\n            (window.data_layer.user.advertising_experience === 'Ad-Free' || window.data_layer.config.disable_outbrain === 'yes') ||\n            (window.data_layer.user.advertising_experience === 'Ad-Light' &#038;&#038; window.data_layer.config.disable_outbrain_with_ad_light === 'yes')\n        ) {\n            \/\/ console.log(\"No Outbrain script loading due to page settings\");\n        } else {\n            \/\/ console.log(\"Loading Outbrain\");\n            var ob = document.createElement('script');\n            ob.async = true;\n            ob.type=\"text\/javascript\";\n            ob.src=\"https:\/\/widgets.outbrain.com\/outbrain.js\";\n            var node = document.getElementsByTagName('script')[0];\n            node.parentNode.insertBefore(ob, node);\n        }\n\n\n        \/\/ remove the listener\n        if (id !== null) {\n            window.__tcfapi('removeEventListener', 2, function (success) { }, id);\n        }\n    }\n\n    \/**\n     * Wait until we have advertising consent to show this advertising\n     * based replacement for the single image on our article pages\n     * This logic is based on excoSlidshowPlayerID that only appears on the page\n     * if a user is NOT a subscriber (including privacy plus) and the page has the\n     * correct information to show it (doesn't have a video, not in sport etc)\n     *\/\n    function launchExcoSlideshow() {\n        const slideShowPlayerId = window.excoSlideshowPlayerId;\n        \/\/ if we do not have a player id, we do not need to do anything\n        if (!slideShowPlayerId) {\n            return;\n        }\n\n        \/\/ this is exco's supplied code, modified for our use\n        (function (d, s, n) {\n            fjs = d.getElementsByTagName(s)[0];\n            js = d.createElement(s);\n            js.className = n;\n            js.src=\"\/\/player.ex.co\/player\/\" + slideShowPlayerId;\n            js.setAttribute('programmatic', 'true');\n\t        js.onload = function () {\n                const playerApi = ExCoPlayer.connect(slideShowPlayerId);\n                playerApi.init({});\n\n                playerApi.on('player-load', function(data) {\n                    $('.mar-article-image').remove();\n                    if (window.screen.width > 800) {\n                        $('.article-hero').attr('style', 'order: 1');\n                    }\n                    window.hide_overlay_for_exco = true;\n                });\n            };\n            fjs.parentNode.insertBefore(js, fjs);\n        }(document, 'script', 'exco-player'));\n    }\n    function loadSocials()\n    {\n        const socials = [\n            '\n            '\n            '\n        ];\n        socials.forEach((social) => {\n            var script = document.createElement('script');\n            script.src = social;\n            script.async = true;\n            document.getElementsByTagName('head')[0].appendChild(script);\n        });\n    }\n})();\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wash Your Woofer, an unmanned self-service dog wash facility, officially opened its doors on September 17, offering dog owners a<\/p>\n","protected":false},"author":1,"featured_media":30281,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[373],"tags":[377,1115,1117,1116,1113,1114],"class_list":["post-30280","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-pet-grooming-wellness","tag-dog","tag-facility","tag-haverfordwest","tag-opens","tag-selfservice","tag-wash"],"_links":{"self":[{"href":"https:\/\/monanimaldamour.fr\/index.php?rest_route=\/wp\/v2\/posts\/30280","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/monanimaldamour.fr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/monanimaldamour.fr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/monanimaldamour.fr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/monanimaldamour.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=30280"}],"version-history":[{"count":0,"href":"https:\/\/monanimaldamour.fr\/index.php?rest_route=\/wp\/v2\/posts\/30280\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/monanimaldamour.fr\/index.php?rest_route=\/wp\/v2\/media\/30281"}],"wp:attachment":[{"href":"https:\/\/monanimaldamour.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=30280"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/monanimaldamour.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=30280"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/monanimaldamour.fr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=30280"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}