Spaces Requirements Checklist

This checklist ensures your WordPress environment is optimized for using the Spaces plugin effectively.

๐Ÿ“˜

For larger implementations over 50 properties:

We advise scheduling an infrastructure consult with our team to ensure optimal performance. Please reach out to [email protected]

How the Spaces Plugin Works

The Spaces plugin has two major functions on your website

  1. Rendering the frontend or what user sees on your website, this requires little memory.
  2. Processing data in the background, including thousands of pricing and availability records, which requires a lot of memory. This happens every hour to keep data up to date.

WordPress Recommendations

  • Keep WordPress Core up-to-date.
  • Update all dependent plugins regularly.
  • Remove any unused plugins and themes to improve performance.

Database recommendations

Due to the high amount of writes required to process pricing and availability for a large amount of units. It is recommended to avoid Distributed Replicated Block Device (DRBD) configurations

PHP Requirements

  • Please ensure that the PHP version is between 8.2 and 8.3.

Memory Requirements

  • Set define('WP_MEMORY_LIMIT', '1024M'); in wp-config.php for Spaces in portfolio mode.
  • Ensure a minimum of 1024MB is required for running Spaces in portfolio mode with multiple properties.

๐Ÿšง

"M," not "MB"

Wordpress uses "M" as its abbreviation for "megabytes" when defining its memory limit, not the more ubiquitous "MB." If the user does mistakenly add a "B" to the end of the memory value, it will cause PHP errors, as Wordpress will interpret "B" as an extra operator that it does not recognize.

Caching

  • Implement a persistent object cache (e.g., Redis or a comparable WordPress persistent cache plugin).
  • Configure the caching mechanism to expire every hour for accurate pricing and availability data updates.

Note: Spaces implements its own caching that is automatically cleared and rebuilt every hour, but is not able to clear other caching mechanisms. Ensure your front end caching mechanism expires hourly for consistent data display.

WP Cron

  • Do NOT use an external ping. For performance during import, it is required to run WP Cron via PHP workers separate from the web process.

Instructions:

  1. Disable WP CRON in WordPress by adding: define('DISABLE_WP_CRON', true); to the wp-config.php file.
  2. Create a cron job via crontab on your server to either:
  • A: Run wp-cron.php direcly via the server php process: I.e. /path-to/php -q /path-to/wp-cron.php OR
  • B: Run wp cron via the CLI (recommended) with: /path-tophp /path-to-wp-cli/wp cron event run --due-now --path=/path-to-wordpress-install

There is a wide range of documentation available on crontab and WP Cron. It is recommended to understand how those processes work as they will be vital in keeping your data up-to-date.

Styling Conflicts

  • Ensure the theme uses specificity qualifiers to avoid conflicts with Spaces CSS classes, which are prefixed with .spaces-.

Scripts

  • Third-party scripts running on floorplans/apartments pages may interfere with Spaces functionality.

Additional Requirements for Websites Displaying Multiple Properties on a Single Spaces Page (Portfolio Mode)

Memory Requirements

  • A minimum of 1024MB is required for running Spaces in portfolio mode with multiple properties. More available memory can help ensure consistent performance during import of content and pricing data.

Caching

  • Implement a persistent object cache (e.g., Redis or a comparable WordPress persistent cache plugin).
  • Configure the caching mechanism to expire every hour for accurate pricing and availability data updates.

Other

In the current version of Spaces it is recommended to group properties by regions or markets, and limit the number of available units displayed for properties with many available units to maintain performance of the application on mobile devices.