Sprigwell documentation

Sprigwell home page

A WordPress theme for landscaping and gardening companies: garden design, lawn care, patios and hardscaping, tree care, irrigation and seasonal maintenance. Six demos, an estimate bar with garden size, before-and-after drag sliders, maintenance plans, a garden-care calendar, a service-area checker and a free estimate form saved in your dashboard.

Thank you for choosing Sprigwell. This guide takes you from a fresh WordPress site to a copy of the demo with your own details. If something is not covered here, write to support@codememory.com — we answer within one working day.

  • Version1.0.0
  • WordPress6.5 or later
  • PHP7.4 or later
  • Live demoOpen the demo

Highlights

  • Six landscaping demos imported in one click
  • Before-and-after drag sliders on projects and as a section
  • Estimate bar in the hero: service, garden size and ZIP code, sent to your estimate page
  • Free estimate form with garden size, start date, address, budget and a live guide price, saved in your dashboard
  • Maintenance plans and price tables with a featured plan
  • Twelve-month garden-care calendar that opens on the current month
  • Service-area checker: visitors type a town or ZIP code and see if you cover it
  • Services with a guide price per sq ft or a fixed price, time, materials and guarantee
  • Project portfolio with property-type filters, garden size, budget and completion date
  • Team profiles with role, qualifications, years with you and specialty
  • Property types and project scopes to group services and projects
  • Office hours with an "Open now" badge
  • 21 Elementor widgets (free Elementor)
  • Every section also works as a shortcode
  • Call / estimate bar on phones
  • Light and dark mode
  • Colours and fonts from the Customizer
  • Block patterns and every core block styled
  • Self-hosted fonts, nothing loaded from Google
  • Translation ready, right-to-left support
  • Child theme included

What is in the download

themeforest-sprigwell-wordpress-theme/
├── sprigwell.zip               ← the theme: upload this in WordPress
├── sprigwell-child.zip         ← child theme, for your own code changes (optional)
├── plugins/sprigwell-core.zip  ← the theme's plugin (also installed from inside the theme)
├── demo-content/               ← demo files for a manual import
├── documentation/              ← this guide, as HTML and PDF
└── licensing/                  ← GPL licence, font licences and credits
Upload sprigwell.zip, not the whole download. Uploading the download zip gives the error "The package could not be installed. The theme is missing the style.css stylesheet."

Requirements

  • WordPress 6.5 or later (tested up to 7.1).
  • PHP 7.4 or later (8.2 or later recommended).
  • For the demo import: PHP memory_limit 256M, max_execution_time 300, upload size 32M. Most hosts already allow this; if an import stops half-way, ask your host to raise these values.

Every plugin the theme uses is free from wordpress.org. Nothing needs a paid licence.

Installing the theme

  1. In your dashboard, go to Appearance → Themes → Add New Theme → Upload Theme.
  2. Choose sprigwell.zip and click Install Now, then Activate.
  3. Optional: install and activate sprigwell-child.zip the same way (see Child theme).

Upload by FTP instead: unzip sprigwell.zip and copy the sprigwell folder to wp-content/themes/, then activate it under Appearance → Themes.

Plugins

After activation, a notice at the top of the dashboard lists the plugins the theme uses. Click Begin installing plugins (or go to Appearance → Install Plugins), select them all, choose Install, then activate them.

PluginWhat it adds
Sprigwell CoreRequiredServices, projects, team, property types, project scopes, reviews, estimate form, before-and-after sliders, garden calendar, service-area checker, office hours, widgets, shortcodes and the demo import. Included with the theme.
ElementorRecommendedThe free page builder used for the demo pages. The theme's own widgets appear in Elementor's Sprigwell group.
One Click Demo ImportRecommendedImports a demo in one click. You can remove it after the import.

The theme works without any plugin: posts, pages, menus, widgets and search are styled the same. The plugin is needed for the landscaping features (services, projects, team, estimate form, before-and-after sliders, garden calendar…).

Importing a demo

The import gives you the demo site: pages, services, projects, team members, reviews, posts, menus, widgets and the Customizer settings. Use it on a new site: it adds content next to what you already have.

  1. Install the plugins above.
  2. Go to Appearance → Import Demo Data.
  3. Pick a demo and click Import. It takes one to three minutes; keep the page open.
  4. Done: visit your site. The home page, menus and blog page are already set.
DemoHome pageAccent
Landscaping company/home-landscaping/#b8572a
Gardener & maintenance/home-gardener/#4d6a3f
Garden design studio/home-design/#c9a24a
Lawn care & mowing/home-lawn/#3f7a2a
Patios & hardscaping/home-hardscape/#4a5d73
Tree surgeon & arborist/home-tree/#8a5a2b

All six home pages are imported with every demo; the demo you pick decides which one is the front page and which colours and header the Customizer uses. To switch later, go to Settings → Reading and choose another home page.

The photos on the live demo are licensed for the demo only, so the import uses grey placeholder images. Replace them with your own photos (Media → Library, or the featured image of each item).

Manual import

If the one-click import is blocked by your host, use the files in demo-content/:

  1. Tools → Import → WordPress (install the importer when asked) → upload content.xml.
  2. Install Widget Importer & Exporter → Tools → Widget Importer & Exporter → upload widgets.wie.
  3. Install Customizer Export/Import → Appearance → Customize → Export/Import → upload customizer-<demo>.dat.
  4. Appearance → Menus → Manage Locations: set the main, top bar and footer menus. Settings → Reading: choose the home and blog pages.

After the import: your details

The demo uses a made-up phone number, address, office hours, service areas and prices. Replace them with yours, in this order:

  1. Phone number and top bar: Appearance → Customize → Sprigwell options → Header and top bar. Set Phone number, Top bar text (a short line such as your office hours; the part before a "·" is also shown in the Contact header layout) and the Label next to the phone (the demo says "Free garden visits"). Every "Call" button on the site uses this number.
  2. Logo and site icon: Appearance → Customize → Site Identity.
  3. Colours: Appearance → Customize → Colors. The six demo home pages each have their own accent colour (see Page options); clear it there to use the Customizer colour.
  4. Estimate page, office hours, prices, service areas and emails: Settings → Sprigwell Core (see Estimate requests, Office hours and Service-area checker).
  5. Footer widgets: Appearance → Widgets → Footer column 1–4: edit the Contact details widget (address, phone, email).
  6. Your content: edit the services, projects, team and reviews in the dashboard menus of the same names, and replace the grey placeholder photos with your own.

Services, projects, team and reviews

The Sprigwell Core plugin adds four content types, a Project scopes list and a Property types list to the dashboard. Each content type has a Details box under the editor.

MenuUsed forDetails
Services
/services/
One page per service you sell (garden design, lawn care, patios…). Shown by the Services widget and the services archive, and listed in the estimate form and the estimate bar.Icon, price from ("$28"), price note ("per sq ft, laid on a full base and pointed"), how the price works (per unit of garden size, or fixed per job, visit or month), typical time, materials, guarantee, what is included (one per line) and an "At a glance" list (one line per item as label|value, for example Waste|All taken away).
Projects
/projects/
Gardens you have built or look after. Shown by the Projects widget as portfolio cards, newest first.Before photo (see Before and after), completed (a date), time on site ("4 weeks"), work done ("Pergola, porcelain patio, new lawn and borders"), budget ("$38,500"), garden size ("2,400 sq ft"), location and a project timeline (one line per stage as when|what, for example Week 1|Design visit and soil test).
Team
/team/
The people clients meet: designers, builders, gardeners and arborists.Role, years with you, qualifications, specialty, crew or base and an optional email. The featured image is the portrait (a tall photo works best).
ReviewsClient reviews shown by the Reviews widget (no page of their own).Rating, reviewer ("Garden owner, Elm Park"), project or service, where the review was left. The title is the reviewer's name; the text is the review.

Property types (under Projects) group projects and services by client, for example Homes or Commercial. Each has its own page at /property-type/<name>/, and the Property types widget shows each one as a photo tile with its number of projects (the photo comes from the newest project of that type). Project scopes (under Projects) group projects by the kind of work, for example Lawns & turf or Patios & hardscape, with a page at /project-scope/<name>/. The Services and Projects widgets can show one property type or scope only (several slugs separated by commas also work).

Turn on Show filter buttons by property type in the Projects widget (or filter="yes" in the shortcode) to add a button per property type above the cards; visitors click one to see only those projects.

The featured image of a service, project or post is used on its card and at the top of its page. Use landscape photos at least 1600 × 900 px.

Before and after

Open a project and choose a Before photo in its Details box. The featured image is the after photo. Together they make a drag-to-compare slider on the project's card and at the top of its page: visitors drag the handle (or use the arrow keys) to wipe between the two photos. Use two photos taken from the same spot, at the same size.

The Before and after widget (or [sprigwell_compare before="12" after="13"] with two image IDs from the Media Library) shows a large slider beside a heading, text, check points and a button, anywhere on a page. Slider on the right swaps the sides.

Estimate requests

The Estimate form widget (or the [sprigwell_quote] shortcode) asks for the client's name, phone and email, the service, the garden size if they know it, the preferred start date, the address or ZIP code, their budget, how to reply (email, phone call or garden visit) and an optional message. Name and a phone number or email are required. Spam protection is built in (a hidden field and a limit on repeated sends) and no other plugin is needed.

  • When the client picks a service priced per unit of garden size and types the size, the form shows a guide price as they type (price × size). Services with a fixed price show no guide price. The saved request gets its own estimate, worked out from the service price on the server.
  • Every request is saved under Estimates in the dashboard, with a counter of new ones. Open a request to see the details and set its status: New, Contacted, Garden visit booked, Quote sent, Booked in, Not going ahead.
  • The services in the form come from your Services, so they stay up to date.
  • Settings → Sprigwell Core → Prices and units: the currency symbol, the unit of garden size (sq ft or m²) and the note under the guide price.
  • Settings → Sprigwell Core → Estimate requests: choose the Estimate page (the page with the Estimate form widget), turn email alerts on or off, choose the address (empty = the site admin email), list your Budget ranges (one per line; leave empty to hide the field), and edit the thank-you message and the privacy note under the form.
  • Emails are sent by WordPress. If they do not arrive, install an SMTP plugin such as WP Mail SMTP; requests are saved in the dashboard either way.

The estimate bar

Turn on Show the quote bar in the Hero widget. Visitors pick a service, type their garden size and ZIP code and press Get my estimate: the estimate page opens with the form already filled in. The button on each service page opens the same form with that service chosen.

Garden-care calendar

The Garden-care calendar widget (or [sprigwell_calendar]) shows twelve month tabs. It opens on the current month, and visitors click a month (or use the arrow keys) to see its season, a headline and the jobs. A job that starts with + gets an On our plans tag, to show which jobs a maintenance plan covers.

Write one month per line as Month|Season|Headline|job; job; job, for example Sep|Autumn|The best month for lawns|+Aerate and top-dress the lawn; Lay new turf. Seasons named Winter, Spring, Summer and Autumn (or Fall) get their own colour and icon. Leave the field empty to use the example calendar for a temperate garden; in the southern hemisphere, start your list at the right season.

Service-area checker

Settings → Sprigwell Core → Service areas: list the towns and ZIP codes you cover, one per line, and edit the two answers (%s is replaced by what the visitor typed).

The Service-area checker widget (or [sprigwell_area]) shows a field where visitors type their town or ZIP code. It answers straight away in the browser (a ZIP code matches when it starts with one of yours, so 804 covers every ZIP code from 80400 to 80499) and, if you like, lists your towns below.

Office hours

Settings → Sprigwell Core → Office hours: set an opening and a closing time for each day. Leave both empty on days you are closed, and add an optional note (for example "Garden crews work Monday to Saturday").

  • The Office hours widget (Elementor) or [sprigwell_hours] shortcode shows the hours beside your address and phone number. The Sprigwell: Office hours widget shows them in the sidebar or footer.
  • Today's row is highlighted, and a badge says Open now (with the closing time) or Closed now. The badge uses the time zone in Settings → General, and it is worked out in the visitor's browser, so it stays right even when your pages are cached.
  • The week starts on the day set in Settings → General → Week Starts On; times use the time format set there.

Page options

Each page has a Page options box in the editor sidebar:

  • Accent colour for this page: overrides the Customizer accent on this page only. The demo uses it to give each demo home page its own colour.
  • Colour scheme: light or dark for this page only (the Garden design studio demo is dark).
  • Header layout: classic, centered or contact, for this page only.

Leave them empty to follow the Customizer.

Page templates

TemplateUse
DefaultPage title band, content and no sidebar.
Full width, no titleFor pages built with Elementor: the content fills the screen and you add your own hero. All demo pages use it.
Full width with title bandThe title band, then full-width content.

Customizer settings

Appearance → Customize. Colours are in the Colors section; everything else is in the Sprigwell options panel. Changes show in the preview before you publish them.

SettingTypeDefault
Colors
Accent colour (buttons, links, icons)color#b8572a
Ink colour (text, header, footer)color#233022
Paper colour (page background)color#f5f0e6
Style and fonts
Colour schemeselectLight
Show a light/dark switch in the headercheckboxOn
Heading fontselectAlegreya
Body fontselectRethink Sans
Body text size (px)number17
Corner rounding (px)number10
Header and top bar
Header layoutselectClassic: logo left, menu right
Keep the header visible while scrollingcheckboxOn
Show the search buttoncheckboxOn
Header button texttextempty
Header button linkurlempty
Show the top barcheckboxOn
Top bar text (for example your office hours)textempty
Phone numbertextempty
Label next to the phone (for example "Free garden visits")textempty
Footer
Widget columnsselect4
Footer text (links allowed). Leave empty for the site name and year.textareaempty
Show a back-to-top buttoncheckboxOn
Blog
Post list layoutselectGrid of cards
SidebarselectRight
Show the author on postscheckboxOn
Show the date on postscheckboxOn
Show related posts under each postcheckboxOn
Mobile call bar
Show a call / quote bar at the bottom of phone screenscheckboxOn
Second button text (the first button calls your phone number)textempty
Second button linkurlempty

The site title, tagline, logo, site icon, background and homepage settings are WordPress's own, in Site Identity, Background image and Homepage Settings.

Widgets

Appearance → Widgets. Areas: Blog sidebar and Footer column 1 to Footer column 4 (set the number of footer columns in the Customizer). The plugin adds three widgets, named Sprigwell: … in the widget list:

  • Contact details — phone, email, address, each with a link.
  • Office hours — your hours from Settings → Sprigwell Core, with an "Open now" badge.
  • Services list — links to your services; the current service is highlighted.

Building pages with Elementor

All demo pages are built with the free Elementor plugin and the theme's widgets.

  1. Create a page, set its Template to Full width, no title, and click Edit with Elementor.
  2. Search for the widget or open the Sprigwell group in the left panel and drag a widget onto the page.
  3. Edit its text and options in the left panel. Every widget has a Background option (light, paper, dark or accent colour) so sections alternate like the demo.

The widgets fill themselves from your content: Services, Property types, Projects, Team, Reviews and Latest posts show the items you add in the dashboard. List fields (prices, steps, questions…) take one item per line, with the parts separated by |, as the help text under each field shows.

Elementor's own Google Fonts loading is switched off by the demo import, so the site keeps using the theme's self-hosted fonts.

Without Elementor: shortcodes

Every widget is also a shortcode, so you can build the same sections in the block editor: add a Shortcode block and type, for example:

[sprigwell_compare before="12" after="13" title="Before and after"]
[sprigwell_projects count="6" columns="3" filter="yes"]
[sprigwell_quote title="Get a free estimate"]

Options are the same as in Elementor. In list options, separate items with || and parts with |. Images take an attachment ID (Media → Library → the number in the address) or a full URL.

Hero — [sprigwell_hero]
OptionWhat it does
layoutLayout
Choices: split, cover
primary_labelButton text
primary_urlButton link
show_phoneShow the phone number (from the Customizer)
secondary_labelSecond button text (when the phone is hidden)
secondary_urlSecond button link
badgesTrust points, one per line
finderShow the quote bar (service, garden size and ZIP code)
imagePhoto
ratingRating (for example 4.9/5)
rating_textRating note (for example "from 480 garden owners")
card_titleFloating card title
card_textFloating card text

Also: eyebrow, title, text.

Services — [sprigwell_services]
OptionWhat it does
countHow many
sectorOnly this property type (slug, optional)
scopeOnly this project scope (slug, optional)
styleStyle
Choices: cards, icons
show_priceShow prices
more_labelButton under the grid
more_urlButton link

Also: eyebrow, title, text, columns, tone.

Property types — [sprigwell_sectors]
OptionWhat it does
countHow many property types (4 fills the row best)

Also: eyebrow, title, text, tone.

Reviews — [sprigwell_reviews]
OptionWhat it does
summarySummary line (for example "4.9 average from 480 reviews")
countHow many
onlyOnly these reviews: reviewer names, separated by commas (optional)

Also: eyebrow, title, text, columns, tone.

Team — [sprigwell_team]
OptionWhat it does
countHow many
onlyOnly these people: names, separated by commas (optional)

Also: eyebrow, title, text, columns, tone.

Numbers — [sprigwell_stats]
OptionWhat it does
itemsNumbers as Value|Label, one per line

Also: tone.

Why choose us — [sprigwell_features]
OptionWhat it does
itemsFeatures as icon|Title|Text, one per line. Icons: leaf, tree, flower, sprout, shovel, mower, sprinkler, fence, hedge, brick, rake, pot, lamp, snow, sun, cloud, chart, wallet, coins, bolt, home, roof, building, barn, tool, drop, plan, truck, award, alert, size, globe, sparkle, heart, shield, clock, star, check, phone, pin, calendar, tag, users, badge.
imagePhoto (optional)

Also: eyebrow, title, text, columns, tone.

How it works — [sprigwell_steps]
OptionWhat it does
itemsSteps as Title|Text, one per line

Also: eyebrow, title, text, tone.

Prices — [sprigwell_pricing]
OptionWhat it does
itemsOne price per line: Name|Price|Note|Feature; Feature; Feature|yes (to highlight)|Button text|Button link
noteSmall print under the prices

Also: eyebrow, title, text, tone.

Questions — [sprigwell_faq]
OptionWhat it does
itemsQuestions as Question|Answer, one per line

Also: eyebrow, title, text, tone.

Call to action — [sprigwell_cta]
OptionWhat it does
button_labelButton text
button_urlButton link
show_phoneShow the phone number

Also: title, text, tone.

Trust strip — [sprigwell_trust]
OptionWhat it does
itemsBadges as icon|Text, one per line

Also: tone.

Garden-care calendar — [sprigwell_calendar]
OptionWhat it does
itemsOne month per line: Month|Season|Headline|job; job; job. Start a job with + to mark it "On our plans". The current month opens first.
button_labelButton text
button_urlButton link

Also: eyebrow, title, text, tone.

Before and after — [sprigwell_compare]
OptionWhat it does
beforeBefore photo
afterAfter photo
before_labelBefore label
after_labelAfter label
pointsPoints, one per line
button_labelButton text
button_urlButton link
reverseSlider on the right

Also: eyebrow, title, text, tone.

Service-area checker — [sprigwell_area]
OptionWhat it does
placeholderPlaceholder in the field
buttonButton text
show_listShow the list of towns (Settings → Sprigwell Core)

Also: eyebrow, title, text, tone.

Projects — [sprigwell_projects]
OptionWhat it does
countHow many
sectorOnly this property type (slug, optional)
scopeOnly this project scope (slug, optional)
filterShow filter buttons by property type
more_labelButton under the projects
more_urlButton link

Also: eyebrow, title, text, tone.

Latest posts — [sprigwell_posts]
OptionWhat it does
countHow many
categoryOnly this category (slug, optional)

Also: eyebrow, title, text, tone.

Call-back banner — [sprigwell_emergency]
OptionWhat it does
phonePhone (empty = the Customizer phone)

Also: title, text, tone.

Text and photo — [sprigwell_about]
OptionWhat it does
imagePhoto
badge_valueBadge number (for example 1,900)
badge_labelBadge text
pointsPoints, one per line
button_labelButton text
button_urlButton link
reversePhoto on the right

Also: eyebrow, title, text, tone.

Estimate form — [sprigwell_quote]
OptionWhat it does
layoutLayout
Choices: split, stacked
pointsPoints beside the form, one per line
buttonButton text
show_phoneShow the phone number

Also: eyebrow, title, text, tone.

Office hours — [sprigwell_hours]
OptionWhat it does
addressAddress
map_urlDirections link (for example a map link)
show_phoneShow the phone number

Also: eyebrow, title, text, tone.

Shortcodes: [sprigwell_hero], [sprigwell_services], [sprigwell_sectors], [sprigwell_reviews], [sprigwell_team], [sprigwell_stats], [sprigwell_features], [sprigwell_steps], [sprigwell_pricing], [sprigwell_faq], [sprigwell_cta], [sprigwell_trust], [sprigwell_calendar], [sprigwell_compare], [sprigwell_area], [sprigwell_projects], [sprigwell_posts], [sprigwell_emergency], [sprigwell_about], [sprigwell_quote], [sprigwell_hours].

Block editor and patterns

Posts and simple pages use the WordPress block editor. Every core block is styled to match the theme, and the editor shows the theme's fonts and colours. Click + → Patterns → Sprigwell for ready-made sections: hero with call button, three services, call to action, questions and answers, three reviews, price table and contact details. The theme also adds block styles: Card (Group), Check marks (List), Eyebrow (Paragraph) and Framed (Image).

Blog

Settings → Reading → Posts page sets the page that lists your posts (the demo uses "Blog"). Choose a grid or list layout and the sidebar position in Customize → Sprigwell options → Blog. Posts show the author, date, category, share links (turn them off in Settings → Sprigwell Core) and related posts.

Light and dark mode

Customize → Sprigwell options → Style and fonts → Colour scheme: Light, Dark or Follow the visitor's device. With Show a light/dark switch on, visitors can switch with the moon button in the header; their choice is remembered on that device. A single page can be forced to light or dark in its Page options.

Child theme

If you want to change the theme's code, install sprigwell-child.zip and activate Sprigwell Child. Put your CSS in the child theme's style.css and your PHP in its functions.php; copy a template file from sprigwell into the child theme to override it. Theme updates replace the parent theme only, so your changes are kept.

Small style changes do not need a child theme: use Customize → Additional CSS.

Translation and right-to-left

Every text in the theme and the plugin can be translated. The templates are sprigwell/languages/sprigwell.pot and sprigwell-core/languages/sprigwell-core.pot.

  1. Easiest: install Loco Translate → Loco Translate → Themes → Sprigwell → New language, and translate in your browser. Do the same under Plugins for Sprigwell Core.
  2. Or use Poedit: open the .pot file, translate, and save the files as sprigwell-fr_FR.po/.mo in wp-content/languages/themes/.

Right-to-left languages (Arabic, Hebrew, Persian…) are supported: when WordPress runs in such a language, the layout mirrors automatically.

Updating

When a new version is released, download it from your ThemeForest Downloads page. Then either:

  • Appearance → Themes → Add New Theme → Upload Theme → choose the new sprigwell.zip → Replace current with uploaded; or
  • replace the wp-content/themes/sprigwell folder by FTP.

When the theme comes with a newer Sprigwell Core, the dashboard notice offers to update the plugin. Your content, menus, widgets and Customizer settings are kept. Changes you made to the parent theme's files are lost: keep them in the child theme.

Questions

"The package could not be installed. The theme is missing the style.css stylesheet."

You uploaded the whole download. Unzip it first and upload sprigwell.zip only.

The import stopped or shows an error.

Your host stopped the import early. Ask them to raise max_execution_time to 300 and memory_limit to 256M, then run the import again: items already imported are skipped.

The pages look plain after the import.

Activate Elementor and the theme's plugin, then reload. Without Elementor, the pages show the same sections through shortcodes.

Estimate request emails do not arrive.

Requests are always saved under Estimates. For email, check the address in Settings → Sprigwell Core and install an SMTP plugin such as WP Mail SMTP; many hosts block WordPress's default mail.

Where are the demo photos?

They are licensed for the live demo only, so the import uses placeholders. Add your own photos in Media → Library and set them as featured images.

How do I change the font?

Customize → Sprigwell options → Style and fonts → heading and body font. All fonts are included in the theme; no Google Fonts requests.

How do I remove the top bar or the phone bar on mobile?

Customize → Sprigwell options → Header and top bar → Show the top bar, and Mobile call bar.

Can I use the theme on more than one site?

A Regular licence covers one site (one end product). Buy one licence per site.

Support

Support is included with your purchase and covers questions about the theme's features and fixing bugs. It does not cover custom changes or problems caused by other plugins.

Email support@codememory.com with your purchase code and your site address. See the changelog for what changed in each version and third-party materials for credits.