Feature Procedures

Step-by-step guides for enabling, configuring, testing and resetting the main Washlora features.

Documentation home › Feature Procedures

This page gives 51 practical guides for the Washlora features that need set-up or testing. Each guide follows the same order: Enable → Configure → Front-end result → Test → Common mistakes → Disable / Reset → Troubleshooting. Screen names, labels and option keys are taken from the installed code. Where a feature has no admin screen, the guide says so and names the option or custom field to use.

1. Washlora Setup and required plugins

Path: Appearance → Washlora Setup

Enable

Nothing to switch on. The screen is available whenever the Washlora theme is active, and an admin notice beginning Washlora setup: appears for users who can activate plugins while a listed plugin is not installed.

Configure

The table lists Washlora Core (marked Required), Elementor, WPBakery Page Builder, Classic Editor, Smart Slider 3, Slider Revolution, Master Slider, WooCommerce and Contact Form 7 (all marked Optional / Demo feature). Install only the editors and sliders you plan to use.

Front-end result

The table shows Active, Installed or Not installed for each plugin. Nothing changes on the public site.

Test

Install and activate one plugin, reload the screen and confirm its status changes; the notice should list one fewer recommended plugin.

Common mistakes

Treating the list as complete. Washlora Native Layouts, which the niche importer and the generators need, is not in this table, and the importer also needs the WordPress Importer plugin.

Disable / Reset

There is nothing to disable. The notice disappears once every listed plugin is installed; it only checks that plugin files exist, not that they are active.

Troubleshooting

If the notice never clears, check that each plugin folder uses its standard name (for example woocommerce/woocommerce.php); a renamed folder counts as not installed.

2. Niche Importer (105 niches)

Path: Appearance → Import a niche

Enable

Activate Washlora Native Layouts, WooCommerce and Contact Form 7, and install the free WordPress Importer plugin. Without them the import stops with an error message that names the missing requirement. You need the administrator manage_options and import capabilities.

Configure

Pick one niche from the Niche list (the catalogue contains 105). Leave Download demo images (requires internet access) ticked for photography, or untick it for a content-only import. Tick Use imported Gutenberg Home 1 as the homepage only if you want the front page changed. Click Import selected niche.

Front-end result

Three home layouts in four editor versions are created, together with inner pages, products, a Contact Form 7 form titled Laundry service enquiry (when none is recorded yet), and a menu named Laundry: {niche name} when no menu of that name has items. Existing pages are not deleted.

Test

Read the notice Import processed: N home/editor versions, open the Import log for failed media, then preview Home 1 in each editor and the niche menu links.

Common mistakes

Importing on a busy live site. Use a fresh or staging install, because large imports can take several minutes and a second import within 15 minutes is refused as Another niche import is in progress.

Disable / Reset

There is no uninstall button. Delete the imported pages, products and menu manually or restore a backup. Repeat imports match earlier posts by _lni_source_id and keep posts you edited since the last import.

Troubleshooting

A checksum error means the demo file was changed or damaged. A missing-importer message means WordPress Importer is not installed. For failed images, repeat the import with internet access enabled.

3. One-click demo import

Path: Appearance → Import Washlora Demo (screen title Washlora One-Click Demo)

Enable

Import the niche first with Import a niche. This screen lists only niches already recorded in the laundryes_niches option, so it is empty on a site with no imported niche. Requires the edit_theme_options capability.

Configure

Choose Builder (Gutenberg, Elementor, WPBakery or Classic Editor), Laundry niche and Homepage layout (Home 1: Signature, Home 2: Service, Home 3: Editorial), then click Import Washlora Demo.

Front-end result

The chosen home page is set as the static front page, the niche menu from laundryes_adt_menu_map (if present) is assigned to the Primary Menu location, and the options laundryes_active_niche and laundryes_active_builder are stored. A missing Elementor, Classic or WPBakery page is built from the saved template when one exists.

Test

Look for the notice Demo ready. followed by niche and builder, then open the site front page and the primary menu.

Common mistakes

Expecting this screen to download content. It activates and wires up a niche that is already imported; it does not fetch media.

Disable / Reset

Choose another niche or builder and import again, or reset Settings → Reading and Appearance → Menus manually to your own front page and menu.

Troubleshooting

If the screen redirects with a failed flag, the builder page could not be built; check that the niche was imported and that the selected editor plugin is active.

4. Demo Setup

Path: Appearance → Demo Setup

Enable

Available when Washlora Core is active. With the niche catalogue installed, as in this package, this screen opens the same form as Import a niche.

Configure

Use the niche importer form. The older bundled-content screen, Washlora Demo Setup, appears only when no niche catalogue is found; it offers Import Full Washlora Demo and Run Demo Finalizer Only and needs the WordPress Importer plugin.

Front-end result

The finalizer assigns the Demos page as front page, the Blog page, the WooCommerce Shop, Cart, Checkout and My Account pages and the Primary Menu location. It also sets permalinks to /%postname%/, turns off the WooCommerce coming-soon mode and restores portable sliders without overwriting your slider data.

Test

After running it, check Settings → Reading, Settings → Permalinks and each WooCommerce page.

Common mistakes

Running the finalizer on a live site that already has its own front page or permalink structure, because it overwrites both.

Disable / Reset

There is no undo. Restore your front page, blog page and permalink choices manually or from a backup.

Troubleshooting

If the finalizer lists pages as missing, create or import the page named Demos, Blog, Shop, Cart, Checkout, My Account or a menu named Primary Menu first.

5. Niche identity

Path: Appearance → Niche identity

Enable

Available when Washlora Native Layouts is active and at least one niche has been imported. Needs the edit_theme_options capability.

Configure

Pick a niche and click Choose niche. Edit Brand, Tagline, Phone, Email, Hours, Area and About, set the five colours (Primary, Dark, Accent, Soft, Ink) and click Save identity. The data is stored as _ln_identity on the niche home page.

Front-end result

Pages belonging to the niche use a niche header and footer showing the brand, tagline, phone, email, hours and area, and the palette becomes the CSS variables --ln-primary, --ln-primary-dark, --ln-accent, --ln-soft and --ln-ink.

Test

Save, then open the niche home page and an inner page in a private window and check the header, footer and button colours.

Common mistakes

Saving without checking the colour pickers. Every picker is submitted, so a colour still showing the fallback #245c52 is saved too. Header and footer design numbers are not editable here.

Disable / Reset

Set the fields back to your earlier values by hand. A repeat import will not overwrite them, because an edited niche home page is treated as your own content.

Troubleshooting

If nothing changes on the front end, clear page and CDN caches and confirm you edited the niche that the page belongs to.

6. Niche design

Path: Appearance → Niche design

Enable

Available with Washlora Native Layouts. The design applies to native niche pages created by the importer or generators.

Configure

Choose a niche, then set Presentation (Neighbourhood, Atelier, Dispatch, Enterprise, Clinical, Hospitality, Active, Wellness, Home care or Restoration), Content width (1040 to 1320 px), Corner radius (0 to 48 px) and Desktop section spacing (64 to 120 px), then click Save design.

Front-end result

The page body gets the class lnl-design-{style} and the width, radius and spacing variables, in all four editor versions of that niche.

Test

Open two editor versions of the same niche home page and compare section spacing and card corners.

Common mistakes

Entering values outside the range. They are clamped silently to the limits shown in the labels.

Disable / Reset

Select Neighbourhood with width 1200, radius 16 and spacing 96, which are the defaults.

Troubleshooting

A page without a native-layout editor version does not use this setting; check that it was created by the importer or generator.

7. Design Studio and style presets

Path: Washlora AI Studio → Design Studio

Enable

Needs Washlora Core and the edit_theme_options capability.

Configure

Set Primary Color, Secondary Color, Accent Color, Body Background, Text Color, Header Style (1 to 12), Footer Style (1 to 12), Logo Width (60 to 360), Slider Style (1 to 5), Site Layout and the checkboxes Sticky Header, Mega Menu, Menu Search and Menu Cart. Click Save Design.

Front-end result

Values are saved in the laundryes_options option. In this build the front end outputs the three colours as --adt-primary, --adt-secondary and --adt-accent, plus the body background and text colour. No template reads the header, footer, logo, slider or checkbox values yet.

Test

Save and look for Design Studio settings saved., then inspect the page source for the laundryes-redux-css style block.

Common mistakes

Expecting niche pages to follow these colours. Niche pages use their own palette from Niche identity and Niche design.

Disable / Reset

Change the values back and save again, or delete the option laundryes_options to reset everything.

Troubleshooting

If a colour does not show, clear caches, and remember that more specific theme or niche styles can override the variables.

8. AI Website Generator

Path: Washlora AI Studio → AI Website Generator (screen title Washlora Website Generator)

Enable

Activate Washlora Native Layouts, import the niche you want to copy, and activate Elementor or WPBakery only if you choose those editors. It runs locally and needs no API key.

Configure

Fill Business name, Niche, Editor, Home layout, an optional Primary colour and the Website requirements (10 to 5000 characters). Words such as booking, pricing, FAQ, tracking, branches, commercial and recurring add the matching pages when their templates are installed. Click 1. Preview website plan, then 2. Create editable drafts.

Front-end result

New draft pages titled Brand | Role are created, together with a new menu. Your existing pages, menu locations and homepage are not changed.

Test

Use the Edit and Preview links in the result, then check links, sample phone numbers and prices.

Common mistakes

Changing a field after previewing. The plan is invalidated and must be previewed again; a plan also expires after 30 minutes.

Disable / Reset

Click Undo this batch (move drafts to Trash). It works only while every draft is still a draft, for the user who created it.

Troubleshooting

Messages such as No installed template for booking; this page will be skipped mean that niche has no matching template; import it or edit manually.

9. AI Theme Assistant

Path: Washlora AI Studio → AI Theme Assistant

Enable

Available with Washlora Core. It is not a live AI service: it answers fixed topics and runs a small set of commands.

Configure

Type a question or a command and click Send (or press Ctrl+Enter). Supported commands: set primary color to #2563eb (also secondary and accent), set header style 4 and set footer style 3 (1 to 12), set logo width 180 (60 to 360), slider style 2 (1 to 5), enable or disable sticky header, enable or disable mega menu, and site title to ....

Front-end result

Applied commands reply Applied: ..., store values in laundryes_options and keep the last 100 exchanges in laundryes_adt_ai_log. The site title command changes the real site title.

Test

Run a harmless command, such as setting the primary colour, and confirm the reply, then check the same value in Design Studio.

Common mistakes

Assuming every command changes the layout. As with Design Studio, only colours are output by the front end in this build.

Disable / Reset

Run the opposite command, such as disable sticky header, or set the title back with a new site title command.

Troubleshooting

A reply of Permission denied means the user lacks edit_theme_options; the box must not be empty.

Path: Appearance → Customize → Washlora Header, Washlora Colors, Washlora Footer, Washlora shop

Enable

Always available with the theme active.

Configure

Header: Show top bar, Phone, Email, Header button label, Header button URL. Colours: Primary, Secondary, Footer Bg, Footer Text Color. Footer: Copyright text, Business address, Opening hours. Washlora shop: Shop heading and Shop introduction.

Front-end result

The standard theme header and footer use these values on ordinary pages, and the shop page title block shows the shop heading and introduction.

Test

Publish, then open the home page, the shop and a normal page.

Common mistakes

Using these header and footer settings for niche demo pages. A niche with identity data prints its own header and footer instead, so use Niche identity there.

Disable / Reset

Clear a field or restore the default colour and publish.

Troubleshooting

If a change is invisible on a niche page, that is expected; check the page type before clearing caches.

11. Niche menus and primary navigation

Path: Appearance → Menus

Enable

Menus named Laundry: {niche name} are created by the importer. A one-click import can also assign a niche menu to the Primary Menu location.

Configure

Edit the niche menu like any menu. In the niche header the last item becomes the call-to-action button and the other top-level items form the navigation.

Front-end result

Pages that belong to a niche show that niche menu in place of the Primary Menu, through the _laundryes_niche_menu_id value on the niche home page. Native pages also rewrite links to the same editor version.

Test

Visit the niche home, an inner page and a page outside the niche and compare menus.

Common mistakes

Adding sub-items to a niche menu. The niche header shows top-level items only.

Disable / Reset

Remove an item from the menu or assign another menu to the Primary Menu location.

Troubleshooting

If the wrong menu appears, confirm the page is linked to its niche and that no menu is assigned through a plugin.

12. Mega menu

Path: Appearance → Menus (Screen Options → CSS Classes)

Enable

Show CSS Classes in Screen Options, then add the class mega-menu to a top-level item in the Primary Menu.

Configure

Build three levels: the top item, column heading items (any link, for example #) and the actual links under each column. Extra classes on a column item are copied to the column.

Front-end result

The item opens a panel with a header row and a View all link back to the top item, then columns of links. Items without the class keep the normal dropdown.

Test

Hover or tab to the item on desktop and test the mobile menu.

Common mistakes

Expecting it on niche pages. A niche header lists top-level items only, and the Mega Menu checkbox in Design Studio does not control this walker.

Disable / Reset

Remove the mega-menu class.

Troubleshooting

If the panel is flat, check the nesting depth and that the menu is assigned to the Primary Menu location.

13. Local fonts

Path: Automatic (theme file inc/local-fonts.php)

Enable

Loaded by the theme; no switch exists.

Configure

Nothing to configure. When the Redux typography stylesheet requests Inter at weight 700, the theme serves the local file assets/fonts/inter.css instead.

Front-end result

Visitors do not contact Google Fonts for that stylesheet, and DNS prefetch and preconnect hints for fonts.googleapis.com and fonts.gstatic.com are removed.

Test

Open the browser network panel and confirm no request goes to Google Fonts for Inter.

Common mistakes

Choosing another Google font in a font plugin and expecting it to be local. Only the Inter request is replaced.

Disable / Reset

There is no switch. Removing it means editing the theme files, which a developer should do on a copy, because the filters cannot be unhooked from a child theme.

Troubleshooting

If text falls back to a system font, confirm the four Inter files exist in assets/fonts.

14. Performance module

Path: Automatic (theme file inc/performance.php)

Enable

Loaded by the theme on public pages; there is no settings screen.

Configure

Nothing to configure. Contact Form 7 assets are kept on pages with the shortcode, on the contact and pickup-delivery pages and on niche contact pages. WooCommerce assets are kept on shop, cart, checkout, account and pages containing common shop shortcodes.

Front-end result

Other pages do not load those scripts and styles. Slider Revolution and Master Slider assets are loaded only when the page, or its parent, has _laundryes_slider_type set to revslider or masterslider.

Test

Compare a plain page and the shop in the browser network panel.

Common mistakes

Placing a Contact Form 7 form or shop block on a page the detector does not recognise, for example inside a custom block.

Disable / Reset

Use a child theme to remove the wp_enqueue_scripts action laundryes_optimize_plugin_assets (priority 999).

Troubleshooting

If a form or slider is unstyled, put the shortcode in the page content, name the page contact, or set the slider type value.

15. Four-editor native templates

Path: Page editor for Gutenberg, Elementor, WPBakery and Classic Editor; Services → Classic Templates

Enable

Import a niche with Washlora Native Layouts active. Elementor and WPBakery require their own plugins; Gutenberg and Classic need none.

Configure

Gutenberg uses the block laundry/section. Elementor uses the Washlora Section widget. WPBakery uses the Washlora Section element. Classic pages show a Washlora page sections (visual controls) box (_lnl_sections) with reorder arrows, Add section and Remove. Each section has eyebrow, heading, text, button, image, layout, tone, cards and an optional service component.

Front-end result

The same section content renders with the layout chosen, in light, soft or dark tone. A Home layouts and Editor switcher is shown above home pages.

Test

Open the same niche in two editors and compare.

Common mistakes

Trying to convert a page between editors; each editor has its own page version.

Disable / Reset

Remove or hide sections in the editor, or delete that editor's page versions.

Troubleshooting

If a section is blank, confirm the plugin for that editor is active and the layout name is valid; unknown layouts fall back to cards.

16. Services and Pricing Packages

Path: Services and Pricing Packages admin menus

Enable

Both content types are created by Washlora Core (also Testimonials and FAQs).

Configure

In Service Details enter Starting price and Price unit. In Package Details enter Price, Billing label and tick Featured package. Add the content, a featured image and an excerpt.

Front-end result

Show them with [laundryes_services] and [laundryes_packages], using limit and columns (1 to 4). On niche pages only items with the matching _adt_niche_slug appear.

Test

Add one item of each type, place the shortcode on a page and check price text.

Common mistakes

Entering currency maths in the price box; the value is displayed as typed text.

Disable / Reset

Move the item to Trash or unpublish it.

Troubleshooting

If a list is empty on a niche page, the items are probably assigned to a different niche.

17. Laundry Service single template

Path: Front end of a Services item

Enable

Used automatically for the laundry_service content type.

Configure

Set the title, excerpt, featured image and body in the Services editor, and the price fields in Service Details.

Front-end result

The page shows the service lead, price and unit, a Schedule Pickup button to /pickup-delivery/, a four-step process, other services, testimonials and FAQs.

Test

Open a service and click the pickup button.

Common mistakes

Not creating a page with the slug pickup-delivery, which leaves the button without a destination.

Disable / Reset

Override single-laundry_service.php in a child theme.

Troubleshooting

If Order This Service Online is missing, the service has no _laundryes_product_id link to a published product.

18. Blog Details template

Path: Front end of any single blog post

Enable

Used for standard posts with the theme active; its stylesheet loads on single posts.

Configure

Set featured image, categories, tags and excerpts, and add widgets to Blog Sidebar to show the sidebar.

Front-end result

Shows date, title, author and comment count, featured image, tags, share links for Facebook, X and LinkedIn, post navigation, three related posts from the same categories, a pickup call to action and comments.

Test

Publish a test post with a category and check share links and related posts.

Common mistakes

Expecting related posts for a post without categories.

Disable / Reset

Override single.php in a child theme.

Troubleshooting

If the sidebar is missing, add at least one widget to the Blog Sidebar area.

19. Booking request form and booking records

Path: Shortcode [laundryes_booking_form]; records under Bookings

Enable

Place the shortcode, the Gutenberg block laundryes/booking, the Elementor widget or the WPBakery element on a page. The form needs no WooCommerce.

Configure

Fields: Name, Email, Phone, Service (from Services), Pickup date, Pickup window, Preferred delivery date, Delivery window, Pickup address and Care notes. Windows are Morning 8:00 to 12:00, Afternoon 12:00 to 17:00 and Evening 17:00 to 21:00. The button is Request Booking.

Front-end result

A Booking record titled Name - date is stored with the details in _laundryes_booking_* meta, the status is new, and the visitor sees Your laundry booking has been received.

Test

Submit on staging with your own details and open Bookings.

Common mistakes

Expecting an email. The code sends none, and the Bookings list shows only the title, so check records with developer tools or add your own notification.

Disable / Reset

Remove the form from the page; trash old records.

Troubleshooting

If nothing is stored, Name, Email and Pickup date are all required on the server.

20. Book and order form (cart booking)

Path: Shortcode [laundryes_booking] or [laundryes_new_order]

Enable

Requires WooCommerce and at least one simple, purchasable, in-stock product. The two shortcodes show the same form.

Configure

Choose Service, Quantity (1 to 50), Pickup date and time, Delivery date and time, Pickup address, Phone and Care notes, then click Add Service & Continue to Cart. Add niche="slug" to list products tagged with that niche.

Front-end result

The service is added to the cart with Pickup, Delivery, Address and Phone lines. On checkout the details are saved on the order item and a Booking titled Order #N booking is created.

Test

Submit a past date and check the error, then complete a test order.

Common mistakes

Using variable products; they must be chosen on their service page.

Disable / Reset

Remove the shortcode from the page.

Troubleshooting

Errors such as Delivery must be after the pickup date and time. come from validation; fix the dates.

21. Service area and Service Settings

Path: Settings → Washlora Service (screen title Washlora Service Settings)

Enable

Needs the manage_options capability.

Configure

Fill Service postcodes / ZIP codes (comma or line separated), Standard turnaround and Express turnaround, then save. Place [laundryes_service_area_checker] and [laundryes_turnaround] on pages.

Front-end result

The checker shows Do we collect from your area?. A listed code returns Great — this area is currently in the configured service zone.; an unlisted one asks the visitor to contact you. With an empty list it says the team will confirm coverage.

Test

Test a listed code, an unlisted code and an empty field.

Common mistakes

Expecting partial matches. The match is exact and not case sensitive, so list the full code.

Disable / Reset

Clear the postcode list to stop claiming coverage.

Troubleshooting

Settings are stored in laundryes_service_postcodes, laundryes_standard_turnaround and laundryes_express_turnaround.

22. Postcode checker by branch

Path: Shortcode [laundryes_postcode_checker]; data on Branches

Enable

Publish at least one Branch.

Configure

Store codes in the branch meta _laundry_postcodes, separated by commas or spaces. Place the shortcode on a page.

Front-end result

A box titled Check Pickup Availability with a Check button answers Available via {branch} or Contact us to confirm service in this area.

Test

Enter a stored code in lower case and an unknown one.

Common mistakes

Codes with a space, such as SW1A 1AA, are split into two codes. List the outward part instead.

Disable / Reset

Remove the shortcode or clear the meta.

Troubleshooting

The keys start with an underscore, so set them with WP-CLI or developer code rather than the Custom Fields box.

23. Pickup Slots

Path: Pickup Slots admin menu; shortcode [laundryes_slot_selector]

Enable

Publish one slot per time window; the title is the label shown.

Configure

Optional meta _laundry_capacity and _laundry_booked control how many places are left. The shortcode prints a select named laundryes_slot with the text Choose pickup slot.

Front-end result

Slots whose booked count reaches their capacity are hidden; others show (N left). The option laundryes_blackout_dates is printed to the page as a script value.

Test

Set capacity 2 and booked 2 on a slot and confirm it disappears.

Common mistakes

Expecting automatic booking. No built-in form reads the select and nothing increases the booked count or reads the blackout dates.

Disable / Reset

Unpublish the slot or remove the shortcode.

Troubleshooting

Use WP-CLI to edit the underscore meta values.

24. Garment Items and garment tracking

Path: Garment Items admin menu; shortcode [laundryes_garment_tracker]

Enable

Automatic with WooCommerce checkout (classic and block checkout).

Configure

One item is created per unit of each order line. Statuses are stored in _laundry_status: received, cleaning, ready, delivered. Place the shortcode where customers enter a tag code.

Front-end result

New items are titled LG- plus 32 random characters. The tracker form (Garment tag code, Track garment) shows status only; old sequential codes require the order owner or a shop manager.

Test

Place a test order, copy a tag title, and track it.

Common mistakes

Looking for a status dropdown. This edit screen has none, so change the underscore meta with WP-CLI or code.

Disable / Reset

Trash the garment items; remove the shortcode.

Troubleshooting

No tracking details available means the code is wrong or an old tag is accessed without login.

25. Delivery Routes

Path: Delivery Routes admin menu

Enable

Available with Washlora Core.

Configure

Create a route with a title. Assignment to an order uses the PHP function laundryes_route_assign( $order_id, $driver_id, $route_id ), which sets the order meta _laundry_driver_id and _laundry_route_id.

Front-end result

The route is an internal record. No public page shows it.

Test

Call the function from a test snippet and view the order meta.

Common mistakes

Expecting a route planner or map. Nothing in the theme reads routes beyond that stored meta.

Disable / Reset

Trash the route.

Troubleshooting

If the function is undefined, Washlora Core is inactive.

26. Branches

Path: Branches admin menu; shortcodes [laundryes_branches] and [laundryes_delivery_zones]

Enable

Branches are a public content type with title, editor, image and excerpt.

Configure

Meta keys: _laundry_address, _laundry_phone, _laundry_hours, _laundry_delivery_zones, _laundry_delivery_fee, _laundry_postcodes. Use count for the first shortcode.

Front-end result

A grid shows image, name, address, phone and hours; the zones list shows name, zones and fee.

Test

Create two branches and check both shortcodes.

Common mistakes

Looking for edit boxes. The meta keys are hidden by WordPress, so use WP-CLI or code.

Disable / Reset

Trash the branch.

Troubleshooting

An empty output means no published branch.

27. Drivers

Path: Drivers admin menu; shortcode [laundryes_driver_status order="ID"]

Enable

Add a driver with a title and a featured image.

Configure

Phone is stored in _laundry_driver_phone. The order needs _laundry_driver_id, and may have _laundry_delivery_status.

Front-end result

The shortcode shows photo, name, status (default Assigned) and phone, or Driver assignment pending.

Test

Set the order meta then view the page.

Common mistakes

Publishing it for any order. It has no login check, so use it only where safe.

Disable / Reset

Remove the shortcode; trash the driver.

Troubleshooting

Nothing shows without a valid order ID.

28. Commercial Quotes

Path: Commercial Quotes admin menu; shortcode [laundryes_commercial_quote]

Enable

Place the shortcode on a page.

Configure

The form has Company, Email, Estimated weekly volume and Requirements, with the button Request Quote.

Front-end result

Visitors see Commercial quote request received. and a record titled Company - date time is saved with email, volume and notes.

Test

Submit a test and find the record.

Common mistakes

Expecting email. None is sent, and the list shows only the title.

Disable / Reset

Remove the shortcode; trash old records.

Troubleshooting

Company and a valid email are required.

29. Quote-only services

Path: Products → edit a product → Product data → General

Enable

Tick Quote-only service (_lcst_quote_only) on a WooCommerce product that needs an individual assessment. WooCommerce must be active.

Configure

Enter Enquiry page ID (_lcst_quote_page), the ID of a published page that contains your contact or enquiry form, then update the product.

Front-end result

The product is no longer purchasable, its price reads Priced after assessment, shop buttons read View service, and the product page shows the box A service plan for your business with a Request a service quote link. The enquiry page opens with a notice Service enquiry: {service name}.

Test

Open the product as a visitor, confirm Add to cart is gone, follow the quote link and check the notice on the enquiry page.

Common mistakes

Entering a draft or non-page ID. The link is then replaced by Online enquiries for this service are not available yet. This is separate from the Commercial Quotes record type, which stores submissions of its own shortcode form.

Disable / Reset

Untick Quote-only service and update; the normal price and cart button return.

Troubleshooting

If the button still shows, clear caches and confirm you ticked the parent product, not only a variation.

30. Garment care guides

Path: Products → edit a product → Product data → General → Garment care guide

Enable

Enter text in the Garment care guide field (_lcst_care_guide). It needs no switch.

Configure

Write plain text with one point per line: accepted items, exclusions, preparation and label checks. HTML is removed.

Front-end result

The product summary shows a collapsible block titled Before you book: garment care guide, with each line on its own row.

Test

Open the product page and expand the block; check that line breaks appear.

Common mistakes

Pasting formatted HTML and expecting formatting, or filling the guide on a variation instead of the main product.

Disable / Reset

Empty the field and update the product; the block disappears.

Troubleshooting

If the block is missing, clear caches and check that the theme shows the standard WooCommerce product summary area.

31. Service catalogue fields and price units

Path: Products → edit a product → Product data → General; WooCommerce → Settings → Products → Washlora shopping

Enable

Open WooCommerce → Settings → Products → Washlora shopping. All six checkboxes default to on: Service option buttons, Recently viewed services, Grid and list switching, Related service add-ons, Customer account shortcuts and Price units.

Configure

On each product fill the optional fields Price unit, Typical turnaround, What is included, Before collection and Care limitations (stored as _lcs_unit, _lcs_turnaround, _lcs_included, _lcs_preparation and _lcs_limitations).

Front-end result

The unit appears after the price with Price units on. A product tab named Service & care details lists the filled fields, and the same facts appear in quick view.

Test

Fill one product, view its page and the shop card, then untick Price units to see it vanish.

Common mistakes

Writing the unit into the price field. Use text such as per kg or per item.

Disable / Reset

Clear the fields or untick the matching checkbox and save changes.

Troubleshooting

If a variation lacks its unit, enter it on the parent product; variations inherit it.

32. Recurring Pickups

Path: Recurring Pickups admin menu; shortcodes [laundryes_recurring_pickup] and [laundryes_subscription_control]

Enable

Place [laundryes_recurring_pickup] on a page. Add niche="slug" to tag the request.

Configure

The form Recurring Pickup Plan has Name, Email, Frequency (Weekly, Every 2 Weeks, Monthly) and Pickup Address, with the button Request Recurring Pickup.

Front-end result

A record titled like Jane - Weekly is stored with _laundry_email, _laundry_frequency, _laundry_address and _adt_niche_slug, and the visitor sees Recurring pickup request received. The control shortcode lets a signed-in customer pause or resume records whose _laundry_user_id equals their user ID.

Test

Submit a request and find it in the list.

Common mistakes

Expecting automatic billing, scheduling or email. None exist, and the form does not set _laundry_user_id, so the customer control stays empty until that value is added.

Disable / Reset

Trash the record or remove the shortcode.

Troubleshooting

If submission fails, all of Name, a valid Email and Pickup Address are required.

33. Loyalty points

Path: Shortcode [laundryes_loyalty_dashboard]

Enable

Active automatically with WooCommerce; there is no setting.

Configure

Place the shortcode on the account or a dashboard page.

Front-end result

When an order changes to Completed the whole-number part of its total is added to the customer user meta _laundry_loyalty_points. The shortcode shows the number with the label Loyalty Points.

Test

Complete a test order for a registered customer and reload the page.

Common mistakes

Expecting a redemption or reward rule. The code only counts points and guest orders earn none.

Disable / Reset

Remove the shortcode, or reset the user meta value for a customer.

Troubleshooting

Signed-out visitors see Sign in to view loyalty points. If points stay at zero, check the order has a customer account and reached Completed.

34. Popups

Path: Popups admin menu

Enable

Add a popup with a title and content, publish it, and set its custom field _adt_enabled to 1. The key starts with an underscore, so WordPress hides it from the Custom Fields box; set it with WP-CLI or code.

Configure

Optionally set _adt_delay to the number of seconds to wait before it opens.

Front-end result

Visitors see a modal with the title and content after the delay. Only one popup shows, the newest enabled one. Closing it stores the cookie laundryes_popup_{ID} for seven days.

Test

Open the site in a private window, wait for the delay, close it and reload.

Common mistakes

Enabling several popups and expecting all to appear.

Disable / Reset

Unpublish the popup, set _adt_enabled to 0, or delete it.

Troubleshooting

To see it again, delete that cookie. Popups are not shown in the admin area.

35. Express care surcharge

Path: Single product page; option laundryes_rush_percent

Enable

Active with WooCommerce. The surcharge defaults to 25 percent; a value of 0 hides the option.

Configure

There is no settings screen. Change it with WP-CLI, for example wp option update laundryes_rush_percent 15. Values are limited from 0 to 100.

Front-end result

Product pages show the checkbox Request express care (+25% service surcharge). The cart shows the fee Express care surcharge and the line item gets Care speed: Express care requested.

Test

Add the same service with and without the box and compare cart totals.

Common mistakes

Assuming the surcharge changes catalogue prices; it applies only to selected cart lines.

Disable / Reset

Set the option to 0.

Troubleshooting

Please refresh the service page and select express care again means the page nonce expired; reload the product page.

36. Order and delivery tracking

Path: Shortcodes [laundryes_order_tracker] and [laundryes_delivery_tracker]

Enable

Requires WooCommerce. Place the shortcodes on pages.

Configure

The order tracker accepts order="123" or a visitor-entered Order number with Track Order. The delivery tracker takes no settings.

Front-end result

The order tracker shows a stage name such as Order Received, Cleaning in Progress or Delivered, the pickup and delivery times from the order, and a link to the full order, only for the order owner or a shop manager. The delivery tracker lists the signed-in customer's five latest orders.

Test

Test as the customer, as another customer and as a guest.

Common mistakes

Using it for guest order lookup; guests are asked to sign in.

Disable / Reset

Remove the shortcode from the page.

Troubleshooting

Order not found means the number is wrong; the sign-in message means the account does not own the order.

37. Price calculators and estimator

Path: Shortcodes [laundryes_price_calculator], [laundryes_weight_pricing] and [laundryes_estimator]

Enable

The price calculator needs WooCommerce products; the others have no requirement.

Configure

[laundryes_price_calculator niche="slug"] lists up to 30 products of that niche, or 12 products when none match. [laundryes_weight_pricing rate="2.5" minimum="10"] multiplies kilograms by the rate with a minimum. [laundryes_estimator] accepts wash_rate, shirts_rate, bedding_rate and pickup_rate (defaults 2.50, 4.50, 12.00 and 8.00).

Front-end result

Each tool shows an estimated total that updates as the visitor types.

Test

Enter quantities and compare with your own prices.

Common mistakes

Leaving the sample rates in place, or expecting the totals to enter the cart. They do not.

Disable / Reset

Remove the shortcode.

Troubleshooting

If the calculator says No services available, publish WooCommerce products.

38. Checkout pickup fields

Path: WooCommerce checkout (block checkout)

Enable

Needs a WooCommerce version supporting additional checkout fields and the block-based checkout.

Configure

Four optional fields are added to the order section: Preferred pickup date (YYYY-MM-DD), Preferred pickup window (Morning, Afternoon, Evening), Care preference (Standard, Eco / low-fragrance, Delicate handling, Hypoallergenic) and Laundry care instructions.

Front-end result

The customer's answers are saved with the order. A past or incorrectly formatted date is rejected with a message.

Test

Place a test order with a valid date, then a past date.

Common mistakes

Treating the date as a confirmed slot; it is a preference.

Disable / Reset

Leave the fields empty, or use a classic checkout where they do not appear.

Troubleshooting

If fields are missing, check that the checkout page uses the Checkout block.

39. Commerce Studio shop shortcodes

Path: Shortcodes [laundryes_commerce_store] and [laundryes_woocommerce_store]

Enable

Requires WooCommerce. Both shortcodes show the same store.

Configure

Place one on a page, or add niche="slug" to show one niche. Without it the shortcode uses the niche of the current page, or the whole catalogue. Set heading text in Appearance → Customize → Washlora shop.

Front-end result

A toolbar with All services, Saved, Compare, Laundry bag and My account is shown above a search form and 12 products per page.

Test

Open the page logged out and check each button.

Common mistakes

Combining it with another AJAX shop filter plugin.

Disable / Reset

Remove the shortcode.

Troubleshooting

If styles are missing, confirm the page contains the shortcode text or add the filter laundryes_commerce_assets_needed.

40. AJAX filters and shareable filter state

Path: Commerce Studio store form

Enable

Built into the store shortcodes.

Configure

Fields: Find your service, Laundry specialty, Sort by (Service name, Price: low to high, Price: high to low, Newest), Maximum price, Available only, with Find services and Reset.

Front-end result

Results and page links refresh without reloading. The address bar gets parameters such as lcs_search, lcs_sort, lcs_max and lcs_page, and opening that link restores the same filters.

Test

Filter, copy the URL into a new window, then use back and forward.

Common mistakes

Searching for products hidden from the catalogue; they are excluded.

Disable / Reset

Click Reset or remove the shortcode.

Troubleshooting

Unable to load. Please try again. means the request failed; check the admin-ajax address and caching.

41. Quick view

Path: Shop cards and single product page

Enable

Active wherever the Commerce Studio assets load.

Configure

There is no setting. Each card shows Quick view, Save and Compare buttons.

Front-end result

A dialog titled Service preview shows image, name, price, short description, service facts and stock. A simple in-stock service can be added from it; other types link to the service page.

Test

Open quick view for a simple and a variable service.

Common mistakes

Expecting variation selectors inside the dialog.

Disable / Reset

Hide the button with CSS or remove the shortcode.

Troubleshooting

If the dialog is empty, the product may be hidden or unpublished.

42. Saved services and Compare

Path: Commerce Studio toolbar buttons

Enable

Active with the store.

Configure

Use Save and Compare on cards, then the toolbar counters. Up to 30 services can be saved and up to four compared.

Front-end result

Lists open in a dialog (Saved services, Compare services) with current prices. They are kept only in the browser storage of that device.

Test

Save five and compare five to see the limit message.

Common mistakes

Expecting lists to follow the customer to another device.

Disable / Reset

Click Remove on items, or clear browser site data.

Troubleshooting

If counts stay zero, check that browser storage is allowed.

43. Laundry bag drawer

Path: Commerce Studio toolbar button Laundry bag

Enable

Active wherever the store toolbar appears (the store shortcodes and single product pages). WooCommerce cart fragments must be allowed to load.

Configure

There is nothing to configure. Customers add services with the normal add-to-cart buttons.

Front-end result

The button opens a dialog titled Your laundry bag that shows the WooCommerce mini cart, loaded fresh each time so totals are current.

Test

Add a service, open the dialog and compare it with the full cart page.

Common mistakes

Caching the AJAX address, which makes the drawer show an old cart.

Disable / Reset

Remove the store shortcode, or hide the button with CSS in a child theme.

Troubleshooting

If the drawer is empty after adding items, exclude the admin-ajax address from page caching and check the console for script errors.

44. Sticky product order bar

Path: Single product page

Enable

Automatic for purchasable products when Commerce Studio assets load. Quote-only services do not get it.

Configure

There are no settings. The bar uses the product name, price and the anchor to the add-to-cart form.

Front-end result

A bar with the service name, price and Choose & order jumps to the options. On variable products it follows the chosen variation: the price changes, the link reads Selected service when the variation can be bought and Option unavailable when not, and it resets when the options are cleared.

Test

Open a variable product, choose different options and watch the bar.

Common mistakes

Expecting it for products that are not purchasable.

Disable / Reset

Hide .lcs-sticky-buy with CSS in a child theme.

Troubleshooting

If the price does not follow variations, check that the standard WooCommerce variation form is present and no script errors appear.

45. Service option buttons

Path: Variable product pages; WooCommerce → Settings → Products → Washlora shopping

Enable

Keep Service option buttons ticked (it is on by default; option lcx_choices).

Configure

Create ordinary WooCommerce variable products with attributes. No other settings exist.

Front-end result

Each variation drop-down is hidden and replaced by a group of buttons. The pressed button matches the selection, and combinations that are not available are disabled with the tooltip Unavailable combination.

Test

Click every option on a variable service and check price and add-to-cart.

Common mistakes

Combining it with a swatch plugin that also replaces the drop-downs.

Disable / Reset

Untick Service option buttons and save changes.

Troubleshooting

If buttons do not appear, clear caches and confirm the product uses WooCommerce variations.

46. Recently viewed services

Path: Single product pages and the store; WooCommerce → Settings → Products → Washlora shopping

Enable

Keep Recently viewed services ticked (option lcx_recent).

Configure

No other settings. Visited product IDs are kept in the visitor browser, up to 12, and up to six are shown.

Front-end result

A section titled Recently viewed services appears under the product and under the store, with current prices and a Clear history button. The current product is left out.

Test

Visit several products, return to one and check the list; click Clear history.

Common mistakes

Expecting the list to follow a customer to another device or login.

Disable / Reset

Untick the setting and save, or clear the history.

Troubleshooting

If the section stays hidden, there is no history yet, or browser storage is blocked.

47. Grid and list view

Path: Store shortcodes; WooCommerce → Settings → Products → Washlora shopping

Enable

Keep Grid and list switching ticked (option lcx_layout).

Configure

No other settings.

Front-end result

Two buttons, Grid view and List view, appear above the filter form. The choice is remembered in the visitor browser.

Test

Switch to list view, reload and check it persists.

Common mistakes

Expecting the choice to be saved on the server or for other visitors.

Disable / Reset

Untick the setting and save.

Troubleshooting

If the buttons are missing, confirm the page uses a store shortcode and not the default WooCommerce loop.

48. Linked recommendations

Path: Products → edit a product → Product data → Linked Products → Cross-sells

Enable

Keep Related service add-ons ticked (option lcx_addons).

Configure

Add cross-sell products. Up to eight are used.

Front-end result

A section Complete your care titled Useful with this service lists published, visible, purchasable, in-stock cross-sells with a Choose service button. Separately, related products are limited to services of the same niche when the product carries a niche tag.

Test

Add two cross-sells, one out of stock, and check only the in-stock one appears.

Common mistakes

Linking unavailable or hidden products.

Disable / Reset

Remove the cross-sells or untick the setting.

Troubleshooting

If nothing shows, none of the linked products is currently purchasable.

49. My Account shortcuts

Path: WooCommerce My Account dashboard; WooCommerce → Settings → Products → Washlora shopping

Enable

Keep Customer account shortcuts ticked (option lcx_account). The Laundry Dashboard hero and the repeat-order button come from Washlora Core and have no switch.

Configure

No settings. The Book Pickup button points to /pickup-delivery/, so create a page with that slug.

Front-end result

The dashboard shows Your laundry, organised with cards Book a service, Orders & repeat care and Collection details, the hero with Book Pickup, Order Laundry Services and View Orders, and Repeat Last Laundry Order when a completed or processing order exists.

Test

Sign in as a customer who has an order and open My Account.

Common mistakes

Leaving out the pickup page.

Disable / Reset

Untick the setting; the hero and repeat button stay unless removed in a child theme.

Troubleshooting

If repeat order fails, WooCommerce may reject an item that is no longer available.

50. Slider support

Path: Shortcode [laundryes_niche_slider]; slider plugins

Enable

The built-in slider needs only Washlora Core. Smart Slider 3, Slider Revolution and Master Slider are optional plugins listed in Washlora Setup.

Configure

[laundryes_niche_slider niche="slug" title="..." subtitle="..." type="1"] accepts a style from 1 to 5. Images come from the option laundryes_slider_media_map for the niche; without images it shows a text slide. Set _laundryes_slider_type to revslider or masterslider on pages that use those plugins.

Front-end result

A slider with previous and next buttons changes slides every seven seconds, and each image slide has a Book Pickup button that jumps to the #book-laundry booking form. The Demo Setup finalizer restores portable slider data without overwriting yours.

Test

View a page with two slides and use the arrow buttons.

Common mistakes

Forgetting to set the slider type, so the Performance module removes the plugin scripts.

Disable / Reset

Remove the shortcode or slider block.

Troubleshooting

If a plugin slider is blank, set the slider type value and clear caches.

51. RTL and translation readiness

Path: Settings → General → Site Language; files rtl.css and languages

Enable

Choose a right-to-left site language. WordPress then loads the theme file rtl.css and the body gets the class laundryes-rtl.

Configure

Translate theme strings with the text domain laundryes and plugin strings with laundryes-core. The files languages/laundryes.pot and languages/laundryes-core.pot are the templates.

Front-end result

The layout mirrors, and installed translations are used for theme and plugin text. Your page, post and product content is not translated automatically.

Test

Switch the language on staging and check the header, menus, shop and booking forms.

Common mistakes

Expecting ready-made language files or machine translation. Only the template files are included.

Disable / Reset

Return the site language to a left-to-right language.

Troubleshooting

If strings stay English, check the language folder, cache and that the text domain matches.