Unhandled Error!

Undefined index: HTTP_REFERER

Document /modules/shopproductbooking/controllers/booking.php
Document type PHP document
Line 163
Exception class Phpr_PhpException

Code Highlight

        $bookingDomain = Phpr::$config->get("BOOKING_FORM_DOMAIN",
            "booking." . str_replace("www.", "", $_SERVER['HTTP_HOST'])
        );
        if($dev = Phpr::$request->getField('dev_domain')) {
            $bookingDomain = str_replace("booking", "booking-$dev", $bookingDomain);
        }
        elseif(preg_match('/(?<=dev_domain=)[a-z]+/', $_SERVER['HTTP_REFERER'], $matches)) {
            $bookingDomain = str_replace("booking", "booking-{$matches[0]}", $bookingDomain);
        }
        return $bookingDomain;
    }
 
	public function getRemoteBookingForm() {
# Call Stack Code Document Line
32 ProductBookingController::getBookingDomain(()) /modules/shopproductbooking/controllers/booking.php 88
31 ProductBookingController::getRemoteProductDetails(array(1) [0 => 'BR35/12C']) /modules/shopproductbooking/controllers/booking.php 44
30 ProductBookingController::getProductDetails(array(1) [0 => 'BR35/12C']) /modules/shopproductbooking/classes/shopproductbooking_module.php 58
29 ShopProductBooking_Module->after_product_fetch(object(Shop_Product))
28 call_user_func_array(array(2) [0 => object(ShopProductBooking_Module), 1 => 'after_product_fetch'], array(1) [0 => object(Shop_Product)]) /phproad/system/class_functions.php 18
27 callFunction(array(2) [0 => object(ShopProductBooking_Module), 1 => 'after_product_fetch'], array(1) [0 => object(Shop_Product)]) /phproad/modules/phpr/classes/phpr_events.php 79
26 Phpr_Events->fire_event(array(1) [name => 'shop:onAfterProductRecordFetch'], object(Shop_Product))
25 call_user_func_array(array(2) [0 => object(Phpr_Events), 1 => 'fire_event'], array(2) [0 => array(1), 1 => object(Shop_Product)]) /phproad/system/class_functions.php 18
24 callFunction(array(2) [0 => object(Phpr_Events), 1 => 'fire_event'], array(2) [0 => array(1), 1 => object(Shop_Product)]) /phproad/modules/phpr/classes/phpr_events.php 153
23 Phpr_Events->fireEvent('shop:onAfterProductRecordFetch', object(Shop_Product))
22 call_user_func_array(array(2) [0 => object(Phpr_Events), 1 => 'fireEvent'], array(2) [0 => 'shop:onAfterProductRecordFetch', 1 => object(Shop_Product)]) /phproad/modules/phpr/classes/phpr_extensible.php 159
21 Phpr_Extensible->__call('fireEvent', array(2) [0 => 'shop:onAfterProductRecordFetch', 1 => object(Shop_Product)]) /modules/shop/models/shop_product.php 1861
20 Backend_Events->fireEvent('shop:onAfterProductRecordFetch', object(Shop_Product)) /modules/shop/models/shop_product.php 1861
19 Shop_Product->after_fetch(()) /phproad/modules/db/classes/db_activerecord.php 444
18 Db_ActiveRecord->_find_fill(array(13) [0 => array(138), 1 => array(138), 2 => array(138), 3 => array(138), 4 => array(138), 5 => array(138), 6 => array(138), 7 => array(138), 8 => array(138), 9 => array(138), 10 => array(138), 11 => array(138), 12 => array(138)], null) /phproad/modules/db/classes/db_activerecord.php 540
17 Db_ActiveRecord->find_all_internal(null, array(0), null) /phproad/modules/db/classes/db_activerecord.php 559
16 Db_ActiveRecord->find_all(()) /modules/cms/classes/cms_controller.php(383) : eval()'d code 20
15 eval(()) /modules/cms/classes/cms_controller.php 383
14 Cms_Controller->evalWithException('?><? $string = $_SERVER["REQUEST_URI"] ; $string = strtok($string, '?'); $placename = array_reverse(explode('/', trim($string, '/'))); $placename = ucwords(htmlentities($placename[0])); ?> <!-- view:shop:product_list_diy_trade_21_2_row_dynamics --> <!-- <?php if( isset($paginate) && $paginate ) { $page_index = isset($page_index) ? $page_index-1 : 0; $records_per_page = isset($records_per_page) ? $records_per_page : 48; $pagination = $products->paginate($page_index, $records_per_page); } else { $pagination = null; } $products = $products instanceof Db_ActiveRecord ? $products->find_all() : $products; ?> --> <?php $foundit = 0 ; foreach ($products as $product){ if($product->x_bookpay <= 1 or $product->x_bookpay >= 200){ $foundit = 1 ; } } if(empty($foundit)) return ; ?> <?php $i=1 ; $showEvery = 3 ; foreach ($products as $product): ?> <?php if($product->x_bookpay <= 1 or $product->x_bookpay >= 200): ?> <?php if( is_int(($i-1) / $showEvery) && $i >1 ): ?> <!-- start promo --> <!--<div style="margin-bottom: 2em;" class="hide-for-small"> <div class="twelve columns" style="height: 100%; border: 1px solid #404040; margin-bottom: 2em; padding:1.5em 1.5em 0;"> </div> </div>--> <!-- end promo --> <?php endif ?> <div style="margin-bottom: 2em;" class="product-list-item"> <? if($i == 1): ?> <div class="" style="display: inline-block; border: 1px solid #002B41; background: #002B41; color: #fff; padding: 0.5em 0.5em 0.2em 0.5em; font-size: 1.6em; text-transform: uppercase; font-weight: bold">Most Popular</div> <? endif; ?> <? if (strpos($product->name, 'Package') !== false): ?> <div class="" style="display: inline-block; border: 1px solid #00b67A; background: #00b67A; color: #fff; padding: 0.5em 0.5em 0.2em 0.5em; font-size: 1.6em; font-weight: bold; text-transform: uppercase;">Package Deal</div> <? endif; ?> <div class="twelve columns" style="<?php echo ($i == 1) ? 'border: 0.2em solid #002B41 !important;' : ''; ?> <? if (strpos($product->name, 'Package') !== false): ?>border: 0.2em solid #00b67A !important;<? endif; ?> height: 100%; margin-bottom: 2em; padding:1.5em 1.5em 0; min-height: 280px;"> <?php $this->render_partial('product_card_image', array('product' => $product, 'placename' => $placename)); ?> <?php $this->render_partial('product_card_header', array('product' => $product)); ?> <div class="four mobile-four columns"> <?php $days1Multiplier = 0.6; $percentages = $product->om('x_remote_percentages'); if($percentages && !empty($percentages['days_1'])) { $days1Multiplier = $percentages['days_1']/100; } ?> <div class="product-mobile"> <?php $this->render_partial('product_card_banners', array('product' => $product)); ?> <div class="catbul"><?php echo $product->x_bullets; ?></div> </div> <div class="row desc"> <div class="twelve mobile-four columns product-price-wrap"> <? if (strpos($product->name, 'Skip Hire') !== false): ?> <span class="price">Our Price From: </span><span class="price"> POA</span> <? else: ?> <span class="price">Our Price From: </span><span class="price"> <? if ($product->x_weekly_only != 1): ?> <?php echo format_currency($product->om('x_remote_sale_price')*$days1Multiplier); ?> <? else: ?> <?php echo format_currency($product->om('x_remote_sale_price')); ?> <? endif; ?> </span> <? endif; ?> </div> </div> <div class="twelve mobile-four columns ticks"> <p style="font-size: 1.1em; margin: 1em 0;">&nbsp;<i class="fas fa-check" style="color: #00b67A;"></i>&nbsp;&nbsp;DIY &amp; Trade<br class="hide-for-small"/> <?php if($product->om('is_on_sale')): ?> &nbsp;<i class="fas fa-check" style="color: #00b67A;"></i>&nbsp;&nbsp;<span style="color: #eb121a">Save <?php $sale_price_or_discount = $product->om('x_remote_discount') ?: $product->om('sale_price_or_discount'); if(strpos($sale_price_or_discount, '%')) { echo round($sale_price_or_discount); echo "&#37;"; } else { echo format_currency(ltrim($sale_price_or_discount, '-')); } ?></span><br/> <?php endif; ?> <?php if($product->om('x_remote_booking_delay') >= 7): ?> <span class="hide-for-small">&nbsp;<i class="fas fa-arrow-trend-down" style="color: #00b67A;"></i>&nbsp;&nbsp;Low Availability</span> <?php else: ?> <span class="hide-for-small">&nbsp;<i class="fas fa-check" style="color: #00b67A;"></i>&nbsp;&nbsp;Best Availability</span> <?php endif ?> <?php if(Phpr::$config->get('TEST_EXTRA_API_FIELDS', false) && $product->om('x_has_insurance')): ?> <span class="hide-for-small">&nbsp;<i class="fas fa-shield" style="color: #00b67A;"></i>&nbsp;&nbsp;Insurance Available</span> <?php endif ?> <?php if(Phpr::$config->get('TEST_EXTRA_API_FIELDS', false) && $product->om('x_deposit_amount')): ?> <span class="hide-for-small">&nbsp;<i class="fas fa-money-bill-transfer" style="color: #00b67A;"></i>&nbsp;&nbsp;Deposit <?= format_currency($product->om('x_deposit_amount')) ?> (Refundable)</span> <?php endif ?> <?php if(Phpr::$config->get('TEST_EXTRA_API_FIELDS', false) && $product->om('x_requires_id')): ?> <span class="hide-for-small">&nbsp;<i class="fas fa-id-card" style="color: #00b67A;"></i>&nbsp;&nbsp;Online ID Verification Required</span> <?php endif ?> </p> </div> <? $productUrl = $product->page_url('/product') . '/'; if(!$product->has_om_records()) { $productUrl .= (strpos($productUrl, '?') ? '&' : '?') . 'booking_modal_show=1'; } ?> <div class="row"> <!--<div class="twelve mobile-four columns"> <a href="<?php echo $productUrl ?>" title="Book &amp; Pay Online" class="button expand quotebutton"><i class="fas fa-calendar-alt"></i>&nbsp; Book &amp; Pay Online</a> </div> <div class="twelve mobile-four columns"> <a href="<?php echo $product->page_url('/product'); ?>/" data-gtm="Button: Book & Pay Online (C)" title="Book &amp; Pay Online" class="button expand quotebutton"><i class="fas fa-calendar-alt"></i>&nbsp; Book &amp; Pay Online</a> </div> <div class="twelve mobile-four columns"> <a href="<?php echo $product->page_url('/product'); ?>/" data-gtm="Button: Product Detail (C)" title="More Information" class="button expand quotebutton-alt">Product Detail</a> </div>--> <div class="twelve mobile-four columns"> <a href="<?php echo $product->page_url('/product'); ?>/" data-gtm="Button: Details & Booking (C)" title="Details &amp; Booking" class="button expand quotebutton"><i class="fas fa-calendar-alt"></i>&nbsp;&nbsp; Details &nbsp;&amp;&nbsp; Booking</a> </div> </div> <div class="row"> <div class="twelve columns" style="text-align: center; padding-top: 1em; color: #808080;"> <p class='product-list-free-delivery'> <?php if($product->om('x_allow_delivery') > 0 && $product->om('x_min_delivery_charge') > 0) { echo "<i class='fas fa-truck fa-fw' style='padding-right: 1em'></i>&nbsp; <span style='font-weight: 700;'>Low Cost</span> National Delivery"; } elseif ($product->om('x_allow_delivery') > 0 && $product->om('x_min_delivery_charge') < 1) { echo "<i class='fas fa-truck fa-fw' style='padding-right: 1em'></i>&nbsp; <span style='font-weight: 700;'>FREE</span> Delivery: Nationwide"; } ?> <?php $collectionSitesCount = $product->om('x_collection_available_from'); if($collectionSitesCount > 0) { echo "<i class='fas fa-map-marker-alt'></i>&nbsp;&nbsp;Click & Collect: <span style='font-weight: 700;'>$collectionSitesCount</span> Locations"; } ?> </p> </div> </div> </div> </div> </div> <?php /* <?php else: ?> <!--<div style="margin-bottom: 2em;"> <div class="twelve columns" style="height: 100%; border: 1px solid #404040; margin-bottom: 2em; padding:1.5em 1.5em 0;"> . </div> </div>--> <?php endif; ?> */ ?> <?php $i++; ?> <?php endif; ?> <?php endforeach; ?>', 'CMS partial', 'shop:product_list_diy_trade_21_2_row_dynamics', array(1) [products => object(Shop_Product)]) /modules/cms/classes/cms_controller.php 1020
13 Cms_Controller->render_partial('shop:product_list_diy_trade_21_2_row_dynamics', array(1) [products => object(Shop_Product)]) /modules/cms/classes/cms_controller.php(383) : eval()'d code 80
12 eval(()) /modules/cms/classes/cms_controller.php 383
11 Cms_Controller->evalWithException('?><? $string = $_SERVER["REQUEST_URI"] ; $patterns = array(); $patterns[0] = '/scrubber-dryer-hire/'; $patterns[1] = '/-/'; $patterns[2] = '/\//'; $replacements = array(); $replacements[0] = ''; $replacements[1] = '-'; $replacements[2] = ''; $placename = ucwords(htmlentities( preg_replace($patterns, $replacements, $string))); $headers = array( "Scrubber Dryer Hire $placename", "Scrubber Dryer Hire Near $placename", "Scrubber Dryer Hire Near Me $placename", "Floor Scrubber Dryer Hire Near Me $placename" ); $headerKey = array_rand($headers); $header = $headers[$headerKey]; $descriptions = array( "We can supply an excellent range of floor scrubber dryers for hire in the $placename area, with delivery and pick-up. You can use these machines to scrub and dry the hard floors in shopping centres, schools, offices, hospitals, hotels, warehouses, airports, and much more. Book and pay online today.", "With National Tool Hire, you can rent a wide range of floor scrubber dryers available for delivery and pickup in the $placename area. Book online today. Scrubber Dryers provide a fast and efficient way to clean and prepare hard commercial and industrial floor. You can use them for great results in hospitals, shopping centres, schools, and more.", "Are you looking for a fast and efficient way to clean and prepare your hard commercial or industrial flooring? National Tool Hire has a wide range of scrubber dryers available for delivery and pickup in the $placename area. Book online today and see how easy it is to get your floors looking great. Scrubber dryers provide great results in hospitals, shopping centres, schools, and more. So, if you're looking for a reliable and affordable way to keep your floors clean, be sure to check out our selection of scrubber dryers below.", "National Tool Hire offers floor scrubber dryer hire for a variety of flooring types. Our floor scrubber dryers are available for delivery and pickup in the $placename area, so you can get started cleaning quickly and easily. Floor scrubber dryers provide a fast and efficient way to clean hard commercial and industrial floors. They're perfect for use in hospitals, shopping centres, schools, airports, and more. With National Tool Hire, you can rent a floor scrubber dryer that's perfect for your needs. Book online today.", "National Tool Hire offers floor scrubber dryer hire for a variety of flooring types including concrete, ceramic tile, marble, vinyl, linoleum, and more. Scrubber dryers provide a fast and efficient way to clean hard commercial and industrial floors. They're perfect for use in hospitals, shopping centres, schools, airports, and more. With National Tool Hire, you can rent a floor scrubber dryer that's perfect for your needs in the $placename area.", "Floor scrubber dryers remove dirt and grime from most types of hard flooring, and buff and dry them in a single operation. The results are a brilliantly clean and well-maintained floor in minimal time and with minimal effort. These machines have easy-to-use controls, and clean with a smooth, scrubbing motion. You can use them to clean large floorspaces in shopping centres, airports, schools, and more. Book and pay online today for delivery in the $placename area.", "A floor scrubber dryer is the perfect machine for quickly and easily removing dirt and grime from most types of hard flooring. These machines have easy-to-use controls, and clean with a smooth, scrubbing motion. You can use them to clean large floorspaces in shopping centres, airports, schools, and more. Our floor scrubber dryers are available for hire at very competitive rates. Book and pay online today for delivery in the $placename area.", "Floor scrubber dryers are a great way to clean your flooring quickly and easily. With easy-to-use controls and a smooth, scrubbing motion, these machines can clean large areas in no time at all. Whether you're looking to clean a shopping centre, an airport, or a school, floor scrubber dryers are the perfect solution. Book and pay online today for delivery in the $placename area.", "Looking to hire a floor scrubber dryer in the $placename area? Look no further than our online booking and payment service. Our floor scrubber dryers are easy to use, with controls that allow you to clean large floor spaces quickly and efficiently. Whether you're cleaning a shopping centre, airport, school or any other type of facility, our floor scrubber dryers will get the job done quickly and easily. Book and pay online today.", "Hire a floor scrubber dryer in $placename, and you can clean large hard floor areas in schools, hospitals, shopping centres, and more. Scrubber dryers clean all types of hard floors in a thorough and reliable way, no matter the industry. They clean your floors with water and cleaning chemicals, so they can shift stubborn grime. Once they have scrubbed the dirt but will dry the surface to make sure it's bright, and safe for walking. These machines are easy to use are highly manoeuvrable. You can use them without experience, and still achieve fantastic results. Book and pay online today.", "Looking to hire a floor scrubber dryer in $placename? We offer a wide range of floor scrubber dryers, perfect for all kinds of commercial and industrial applications. Whether you need to clean large hard floor areas in schools, hospitals, shopping centres or more, our floor scrubber dryers will do the job quickly and efficiently. Scrubber dryers clean all types of hard floors in a thorough and reliable way, using water and cleaning chemicals to shift stubborn grime. Once they have scrubbed the dirt away, they will dry the surface to leave it bright and safe for walking. These machines are easy to use and highly manoeuvrable, so you can achieve great results even if you don't have any experience. To hire a floor scrubber dryer in $placename, simply book and pay online today. We offer competitive rates and delivery is available throughout the area. So why wait? Get your floor cleaning sorted with Scrubber Dryer Hire.", "Looking to hire a floor scrubber dryer in $placename? Then look no further than National Tool Hire. Our floor scrubber dryers are perfect for cleaning large areas of hard flooring and can shift even the most stubborn dirt and grime. They're easy to use, manoeuvrable and produce great results, so you can be sure your floors will be clean and bright in no time. Book and pay for your floor scrubber dryer hire online today and get started on your cleaning project sooner rather than later.", "Are you based in $placename and looking for a professional floor scrubber dryer machine for hire? Our Karcher and Nilfisk machines are ideal for cleaning warehouse floors, factory floors, shop floors, and more. You can book and pay online today, and we will deliver on your designated date.", "We have a fantastic range of professional scrubber dryer machines for hire in the $placename area. We supply equipment from top brands such as Karcher & Nilfisk, and we offer pedestrian and ride on floor scrubber dryers for commercial and industrial floor cleaning jobs.", "Do you need a floor scrubber dryer for thorough cleaning the in the $placename area? National Tool Hire can help. Floor scrubber dryers are professional floor cleaning machines. They are often battery powered and they feature an internal water tank and spray, rotating scrubbing brushes or rollers, a vacuum and a squeegee. The machine sprays cleaning solution on to the floor, scrubs dirt and grime from the floor and then vacuums and squeegees the floor to remove the water and dirt from the floor surface - cleaning and drying the floor in a single pass. Also referred to as 'floor scrubbers' and 'scrubber driers', these industrial floor cleaning machines are available in a wide range of sizes, from compact walk-behind machines, to large ride-on machines. Book and pay online today.", "Have you been searching for a floor scrubber dryer to hire in the $placename area? Whether you have a one-off cleaning job or are looking to make an impression for a special occasion, we can supply. The range of scrubber dryers for we can provide includes compact pedestrian scrubber dryers, as well as ride-on floor scrubbers, in a wide range of sizes. So, no matter the size of the area you need to cover - whether it be a cafe, restaurant, office, school, hospital, warehouse or factory - we can supply a suitable scrubber dryer.", "Our range of industrial floor scrubber dryer machines for hire includes both walk-behind and ride-on floor scrubbers, from the best brands in the business - Karcher and Nilfisk. These professional floor scrubbers are designed for commercial & industrial floor cleaning jobs, in supermarkets, hotels, halls, warehouses, factories, airports, train stations, and more. If you need to hire a scrubber dryer in the $placename area, book and pay online today for delivery to your site. Browse the available equipment below.", "Why should you hire a floor scrubber dryer for all your commercial and industrial floor cleaning jobs in the $placename area? Professional floor scrubber dryer machines are expensive pieces of kit. Purchasing one of these machines is a big outlay for a company or a cleaning contractor. Renting a floor scrubber dryer allows access to professional kit, without having to buy the machine yourself or worry about upkeep, maintenance costs or storage. You can book a floor scrubber dryer hire easily through our hire team. Our rates are every competitive and we will deliver the machine to you at the start of the hire period and pick it up again at the end of the hire! They are generally very easy to use and come with full instructions.", "Floor scrubber dryer hire in the $placename area is a great way to get access to professional floor cleaning equipment without having to purchase the machine outright. Our team can deliver the floor scrubber dryer to your location and pick it up when you're finished, so you don't have to worry about storage or maintenance. We offer competitive rates, and excellent availability.", "Hiring a floor scrubber dryer is the smartest and most cost-effective way to clean your floors, whether they are in a commercial or industrial setting. Scrubber dryers are expensive pieces of equipment and buying one outright can be a big financial investment for a company. Renting a floor scrubber dryer allows you to use professional-grade equipment without having to worry about maintenance costs, storage, or upkeep. Our team at floor scrubber dryer rental can deliver the machine to you at the start of your rental period and pick it up when you're done. We also offer competitive rates that will save you money.", ); $descriptionKey = array_rand($descriptions); $description = $descriptions[$descriptionKey]; ?> <section id="category-page" class="content category" style="z-index: 999; position:relative; padding-bottom: 0px;"> <div class="row"> <div class="twelve columns"> <div class="cat-breadcrumbs"> <a href="/">Home</a> &nbsp;>&nbsp; <?php echo "<a href='/tool-hire/$placename/' aria-label='Tool Hire $placename'>Tool Hire $placename</a>" ?> &nbsp;>&nbsp; <?php echo "Scrubber / Dryer Hire $placename" ?> </div> </div> <div class="twelve columns"> <h1><?php echo $header; ?></h1> </div> </div> <div class="row"> <div class="twelve columns" style="margin-bottom: 2em;"> <p> <?php echo $description; ?> </p> </div> </div> </section> <section class="category"> <div class="row"> <div class="nine columns"> <?php $group = Shop_CustomGroup::create()->find_by_code('dynamic_scrubber_dryers'); if($group): ?> <?php $this->render_partial('shop:product_list_diy_trade_21_2_row_dynamics', array( 'products' => $group->list_products() )); ?> <?php endif; ?> </div> <div class="three columns" style="position: -webkit-sticky; /* Safari */ position: sticky; top: 1rem;"> <?php $this->render_partial('call_free') ?> <div class="twelve columns random-usp"> <?php $this->render_partial('random_usp') ?> </div> <div class="twelve columns random-blog"> <?php $this->render_partial('random_blog') ?> </div> </div> </div> </section> <section> <p class="footerbanner" style="padding: 10px 5px; background-color: #c8102e; margin-bottom: 2em; margin-top: 0"> <? $num = Rand (1,5); switch ($num) { case 1: echo '<a class="footerbanner-link" href="/price-match/"><em class="fa fa-tag fa-lg"></em>&nbsp; &nbsp; <span style="font-weight: bold;">Scrubber Dryer Hire:</span> Price Match Promise</a></p>'; break; case 2: echo '<a class="footerbanner-link" href="/tool-hire-guide/"><em class="fa fa-info-circle fa-lg"></em>&nbsp; &nbsp; <span style="font-weight: bold;">DIY &amp; Trade:</span> Scrubber Dryer Hire</a></p>'; break; case 3: echo '<a class="footerbanner-link" href="/tool-hire-guide/"><em class="fa fa-calendar fa-lg"></em>&nbsp; &nbsp; <span style="font-weight: bold;">Cheap Weekly Hire Rates</span></a></p>'; break; case 4: echo '<a class="footerbanner-link" href="/free-delivery/"><em class="fa fa-hand-pointer-o fa-lg"></em>&nbsp; &nbsp; <span style="font-weight: bold;">Collect from Store</span> - or - <span style="font-weight: bold;">Delivered to Door</span>&nbsp; &nbsp; <em class="fa fa-truck fa-lg"></em></a></p>'; break; case 5: echo '<a class="footerbanner-link" href="/free-delivery/"><em class="fa fa-hand-pointer-o fa-lg"></em>&nbsp; &nbsp; <span style="font-weight: bold;">Click &amp Collect</span> - or - <span style="font-weight: bold;">Free Delivery</span>&nbsp; &nbsp; <em class="fa fa-truck fa-lg"></em></a></p>'; } ?> </p> <?php $reviews = array( "Scrubber hire|Got this for a hall over the summer. can see myslef in the reflection which means this is great bit of kit! Will use in $placename area|Dawn. E", "Scrubber dryer|Managed to get hold of the Karcher model, shocked at how well maintined the kit was. I know its karcher but still! amazed.|Warren", "Sport hall scrubber|Got the 305mm will need bigger in future but basing it off this hire I will certianly come back to you, great kit and service.|Wes", "Scrbber|Hired these for a dental practice near $placename that closed over lock down deep clean and all that jazz worked a treat|Chris", "Excellent clean|Got this for a quick once over in our work place. This is the ideal machine not too big and very eefective. Ideal if you dont want a giant one.|Stace", "305mm scrubber|Hired this karcher model for our restaurant as we needed our monthly deep clean. I keep getting compliments on this from our customers.|Martyn", "Pedestrian scrubber|We had a grand opening of our restaurant this week. I used this before hand and the difference is so noticable. I may need this again!|Collin", "Nilfisk|Really good bit of kit this I managed to use it hassl free and had 0 issues turned up in great condition and was ready to go right away|Dan", "Delivered a scrubber|The team arranged the hire of this scrubber to $placename for me happy woth this and the way the kit turned up was amazing too|Sadie. C", "Straight forward|Havent used before which raised concerns. Spoke to the driver and it was easy enough good system to use and easy to understand|F. Cassidy", "Great variety|Awesome amount of kit you have here. Suitable for many different jobs I have had a few machines and they have all been up to scratch|Maddy", "Floor scrubber|Cleaned the offices with this when mine broke down, going to invest in this model as it was very professional and did a great job|K Lovell", "Drying is key|fabulous machine i have never had one that actually dires the floor for me this was a first time and i will be coming back for this again|Keith", "Warehouse clean|get all sorts of stains and mark on our warehouse floor near $placename nothing is a match for this machine I hired though great hire|Krik O", "Glad to hire|These machines tend to be quite pricey to buy so we decided to hire. Great move on our part your kit is professional and we can hire as needed|Lenny", "Delivery scrubber|We literally would have no where to store this kit if owned it. Thanks to NTH who always deliver to us and are consistenyl great with hire.|April", "Karcher unit|Anything Karcher is always a great hire, I am impressed with your stock and ability to deliver to $placename we will be exploring your stock|J. Hiker", "A single pass!|This gets so much done in one pass haha. Like literally cleans and dries the floor. super fun and effective, aslo satidfying to use.|Allan", "New home|Perfect cleaning solution for anymove moving into a new house and wanting to make sure it's spotless. For the price, I can't fault it. |Jacob Parker", "Lasts for ages |Hired a compact scrubber/dryer, was assured by the team that the battery would last all day. Wasn't disappointed, long life scrubber at a good hire price. |Ivy Neilson", "Compact dryer|Went with the 350mm compact scrubber. It's a light machine that’s simple to set up with a large water tank. Happy hire in $placename.|Elizabeth Knowles", "Hired after flood damage|Needed a scrubber dryer for a deep clean after a leak. It covered a large amount of space in a short time made my floors look like new. |Ann Streep", "Srubber dryer hire|Compact and easy to use, better performance than any I've used previously. |Ted Hanson", "Cost effective hire|Hired a large 550m scrubber. Found it easy to operate and of a narrow build, making it eay to access hard to reach corners. Good price hire in $placename. |O.Patterson", "Tough and hardworking|Large litre tank with a good performance. |T.Lie", "Surprisingly impressed|It had an adjustable handle that made it easy to manouvre around tight spaces and under desks. Surprised how well it worked.|Robert Tindol", "Conveniant Hire for deep clean|Went for a small scrubber dryer to deep clean my hallway after extensive house maintenance work. Its cleaned with minimal effort. Delivery was free to $placename too. |Joanna Stone", "Good quality scrubber|The model I hired had adjustable settings and I was able to clean in reverse and around corners. Nifty and powerful. |Howard Evans ", "My floor looks amazing now|Removed stubborn dirt and cleared marked floor. It's spotless now!|Mike Goodwin", "Good Option |Picked up a fair amount of dirt. Might be tempted to hire an industrial spec next time. Happy with collection and delivery in $placename. |Larry Graves", "Good size for small property|Hired the companct roller scrubber, it was nice and dinky and cleaned my floors really well. |Claire Fuller", "Sparkling floor|Booked a Nilfisk SC530 after a friend recommend for my store. It has a high powered vacum, with a sizeable rotating scrubber brush. The floor is sparkling now. |Melissa Ferrell", "Best in the business|Tool Hire have a good range of scrubber dryers for a wide range of jobs. I wouldn’t use anyone else in the $placename area. |James Delaney", "Hired for hotel use|Booked a 550mm pedestrian scrubber dryer my hotel. The floors have come up great. It was quiet when using and didn’t disturb any of the guests. |Harry Bennett", "Good|Choose a small scrubber dryer for domestic use. Used it over light carpet and it removed 90% of stains. Relatively impressed. |Gareth Hutton", "Couldn't fault it|Scrubber arrived exactly as decribed in $placename, the delivery driver even explained how to use it. Very happy all round with service and machine. |F.Smith", "Easy to use|The company hire this scrubber for me and let me tell you it will be a long term hire its so easy.|Mathew Peterson", "Does it all|This machine does it all scrubs, sweeps, vacuums and polishes, a very versatile machine.|Mr D Chen", "Great power|This is a heavy duty machine and it is very effective on the floors, even as an inexperienced operator|A Webb", "Ride on|This scrubber was a ride on and let me be honest it was great fun to use - Carla in $placename.|Mrs C Hall", "Gleaming|Good size water tank and the direct dose cleaning system made the floors super shiny.|S Nash", "Large Area|This was a fantastic machine it covered a large area in a minimum amount of time with great results|M Morse", "Easy to move|The machine was compact and very easy to move around the furniture in the residential home.|Louise P", "Quite Machine|Used in $placename I was surprised at how quick it was it did not disturbed an of the residents|Jerrod Whire", "Clean and dry|The scrubber dryer left the floors both clean and dry, and was an ease to use Laura in $placename|Mr L Hick", "Top Marks|Normally rely on the staff to manually keep the warehouse up to scratch but they don’t get it as clean as this.|Mrs N Mc Bride", "Cleaning|Hired to keep the floors of the college clean, its a heavy traffic area and this machine had it gleaming.|L terry", "Shop Floor cleaning|We normal use a lesser model on the shop floor but this went down a treat with the staff top notch machine. Eric in $placename.|E Dickerson", "Shiny floor|I only had to put in the minimum amount of effort in and got the maximum result, shiny floors in $placename.|F Terry", "Floor Scrubber|This is one of the most hygienic ways I have found to keep the clinic floor clean in $placename.|Selena Sims", "5 * review|What a great company to hire from, they made it so easy and the machine was like new will be hiring again.|Alex Rose", "Ride on Scrubber|Battery operated ride on scrubber it was quick and convenient and made short work of the floor, great finish|Harley Durham", "Floor Cleaner|The normal machine we use plugs in to the mains, but this ride on did not have the cable restriction making the job ten time quicker.|G Wood", "Amazing results|The floor was shining and dry when I finished cleaning, the machine had great power and produced amazing results.|Jamie manning", "Warehouse Floor|Hire for use on the warehouse flooring, it was easy to use and the results speak for themselves.|S Ramsey", "Clean Floors|I run a cleaning company in $placename so hired this battery operated scrubber dryer found it simple enough to use|Beryl D", "Scrubber Dryer|This scrubber dryer was handy when wanting to deep clean my tiled flooring I could not believe the difference in them once they were done|Maureen O", "Fantastic|The scrubber dryer I hired for a week was fantastic, delivery + collection was spot on had no issues at all with the machine thank you|Lisa Breado", "380mm Compact Dryer|I hired the 380mm compact dryer as I needed the larger water tank, luckily this one had a 12 litre tank which was perfect for me|Rianna Richardson", "Scrubber Review|The squeegee on this piece of kit worked wonders on my shop floor in $placename it was battery operated too so no worries about tripping over any wires|Sara Cohen", "Deep Cleaning|I hired this piece of kit for the day to deep clean my floors in the house I mop regularly but the squeegee feature pulled up dirt you couldn't even see|Malaikah Wong", "Excellent!|The scrubber dryer was excellent it was robust, was slightly heavy but this was due to the large water tank (which was actually very useful!)|Zarah Martin", "Spring Clean|This scrubber dryer was easy to use and done a fantastic job of cleaning our hard flooring at home so glad I decided to hire this made spring cleaning a breeze|Eva Salas", "Hotel Cleaning|I hired the scrubber dryer for my hotel in $placename it arrived on time and was in excellent condition thank you as always|Hafsa Lorde", "Great Service|Thank you national tool hire great service once again delivery was nice and quick and the machine itself was immaculate|Ed Chang", "550mm Pedestrian Scrubber|Hired the 550mm pedestrian scrubber which was ideal as it had the 40 litre water tank and doesn't make too much noise|Chantel Mullins", "380mm Scrubber Dryer|I hired the 380mm scrubber dryer for a week was finished with the kit a bit sooner but as I done click and collect I could return it myself|Sierra Raynor", "Simply The Best|I needed a scrubber dryer for my business in $placename this kit was excellent I never anticipated how clean my floors would be|India Rudd", "Warehouse Cleaning|Many thanks national tool hire I hired this industrial sized scrubber dryer last month to clean our warehouse floor |Fern Weaver", "Right Size|Hired a scrubber dryer it wasn't too big (hired the smaller model) which meant in turn wasn’t too heavy to manouvre either|Ellie Larson", "550m Scrubber |I required a 550mm scrubber dryer for my shop floors thanks to the drying suction this meant my floors were spotless without risk of customers injury|Michael", "380mm|I hired a scrubber dryer in $placename after some research I decided the 380mm would be best due to the 12 litre water tank and the powerful vacuum|Trevor", "Thank you|Thank you needed a scrubber dryer and this was perfect for the job, the kit arrived a day early but this meant we could do more cleaning with it|Jimmy", "scrub away|Hire in $placename it was a small but mighty product, was a happy customer afterwards|Bernard jones", "scrubber Dryer|The warehouse floor was looking abit dreadful I hired this to give it a good scrub, looks brand new|Nick", "Scrubber hire|Mimal training required and the hire was good, finished floor looked very professional |Reuben", "Scrubber|Hired in $placename couldn’t believe the turning on this machine was pleasantly surprised hire was simple|Laine", "Satisfied|Great product, happy hire the item itself was easy to use by a member of staff and floors were sparkling|R.T", "Satisfied with scrubber|It was like having an extra pair of 20 hands when hiring this, floor was clean in no time happy results|R. Justin", "Scrubber hired|The school halls needed cleannig near $placename it was to much of a job for a cleaner so this was hired dine in half the time|R.Lerson", "thanks!|This compact little machine made it easy for me to get in the corners and clean |Oslo", "Happy chap|Very easy to use machine, couldn’t argue with the price and the floors smelt great afterwards|L.Potin", "Great hire|The stockroom needed a good scrub and this product really helped and looked a different colour hired in $placename|M.L", "Perfect product|Product delivered and was used within no time, we even moved it to another room as we was that happy with the final clean|William", "Happy hire|Just easy to turn on and go because it was easy product to use the final floor was perfect|Israel", "Scrubber hire|Hire was great and didn’t have no complaints for this, the floors greats afterwards hire in $placename|Hunter", "Scrubber|Scrubber hired to clean the stockroom floors was greatful for the compact design|Flynn", "Hire of scrubber|self cleaning machine was good and the hire was complete a lot earlier than expected |Luca", "Hire of Scrubber dryer|Hire was comolete in $placename the cleaners were made up with it as it made there jobs easier! Happy days|Judah", "Scrubber hire|Scrubbers hired for our new warehouse that was full of dust the machine was ready to go and you could see the visible difference|R.E", "Scrubber dryer|Shiny new floors were immaculate after hiring this the best product for warehouse floors!|Sam", ); shuffle($reviews); $reviewKeys = array_rand($reviews, 3); ?> <h2 style="text-align: center; text-transform: uppercase"><i class="fa fa-user"></i>&nbsp; &nbsp; What <? print $placename ?> Scrubber Dryer Hire Customers Say About Us:</h2> <div class="row" style="padding: 2em 0;"> <div class="three hide-for-small columns" style="text-align: center;"> <img src="/themes/nthsv3/resources/images/rated_excellent2.png" loading="lazy" alt="Rated Excellent for Scrubber Dryer Hire in <? echo $placename ?>" style="float: left; width: 220px; height:100%;"> <p style="display: inline-block; float: left; padding-top: 1em;">Rated Excellent for<br/>Scrubber Dryer Hire in <? echo $placename ?></p> </div> <?php foreach($reviewKeys as $reviewKey): ?> <?php $review = explode('|', $reviews[$reviewKey]); ?> <div class="three mobile-four columns"> <div class="stars"> <img src="/themes/nthsv3/resources/images/stars-5.svg" loading="lazy" alt="Rated Excellent for Scrubber Dryer Hire in <? echo $placename ?>" style="width: 100px; height: 100%;"> </div> <div class="minireview"> <div> <h3 style='font-size: 1.2em; font-weight: 900; margin-bottom: 0; text-align: left;'><?php echo $review[0]; ?></h3> <?php if (isset($review[1])): ?> <p style='margin-bottom: 0;'><?php echo $review[1]; ?></p> <?php endif; ?> <?php if (isset($review[2])): ?> <p style='color: #909090;'><?php echo $review[2]; ?></p> <?php endif; ?> </div> </div> </div> <?php endforeach; ?> </div> </section> <script type="application/ld+json"> { "@context": "http://schema.org/", "@type": "LocalBusiness", "name": "National Tool Hire Shops: <?php echo $placename; ?>", "description": "Scrubber Dryer Hire in <?php echo $placename; ?>.", "telephone": "+44-800-808-9696", "image": "https://www.nationaltoolhireshops.co.uk/themes/nthsv3/resources/images/NTHS_logo.png", "address": "<?php echo $placename; ?>", "aggregateRating": { "@type": "AggregateRating", "ratingValue": "5", "bestRating": "5", "worstRating": "1", "ratingCount": "3" } } </script>', 'CMS page', 'Scrubber / Dryer Hire') /modules/cms/classes/cms_controller.php 608
10 Cms_Controller->eval_page_content(()) /modules/cms/classes/cms_controller.php 198
9 Cms_Controller->open(object(Cms_Page), array(1) [0 => 'biddulph']) /controllers/application.php 72
8 Application->On404(())
7 call_user_func_array(array(2) [0 => object(Application), 1 => 'On404'], array(0)) /phproad/modules/phpr/classes/phpr_controller.php 170
6 Phpr_Controller->executeAction('On404', array(0)) /phproad/modules/phpr/classes/phpr_controller.php 84
5 Phpr_Controller->_run('On404', array(0)) /phproad/modules/phpr/classes/phpr_response.php 64
4 Phpr_Response->open404(()) /phproad/modules/phpr/classes/phpr_response.php 37
3 Phpr_Response->open('/scrubber-dryer-hire/Biddulph') /phproad/system/phproad.php 31
2 include('/var/www/vhosts/nationaltoolhireshops.co.uk/httpdocs/phproad/system/phproad.php') /boot.php 114
1 require_once('/var/www/vhosts/nationaltoolhireshops.co.uk/httpdocs/boot.php') /index.php 23