Switcheroo

Description

Feature flags are a powerful tool for controlling the availability of features on your site. By enabling or disabling flags, you can control what is active on your site without needing to deploy new code.

Features are defined in the switcheroo.json file located in the root of your project.
Each feature has:

  • Unique ID: An identifier for the feature.
  • Title: A human-readable name.
  • Description: Explains the feature’s purpose.
  • Status: Indicates whether the feature is active, experimental, deprecated, etc.
  • Link: An optional link to further information.

You can toggle each feature within the Switcheroo Settings in the WP Admin (Settings -> Switcheroo).

Usage

Managing Feature Flags in Code

You can wrap your feature-specific code in a conditional statement to check if a flag is enabled.

For example, use the switcheroo_flag_status('my_feature') function to determine whether a feature is active and include its logic conditionally.

Suggested Feature Flag Statuses

Each feature flag can be assigned a status, allowing for better organisation and understanding of the feature’s state:

  • Draft: The feature is still in development and not ready for use.
  • Experimental: The feature is available for testing but may have known issues.
  • Active: The feature is live and functional on the site.
  • Deprecated: The feature is being phased out and may be removed in the future.
  • Breaking: The feature introduces significant changes; enabling or disabling it may cause issues.
  • Archived: The feature has been permanently removed or is no longer supported.
  • High-Risk: The feature introduces significant changes or is under scrutiny for potential issues.

Command Line Management

You can also manage your feature flags via the command line using WP-CLI. The wp switcheroo command allows you to view and modify feature flags.

Examples:
wp switcheroo: List all flags and their statuses.
wp switcheroo my_feature: Check the status of the my_feature flag.
wp switcheroo my_feature on: Enable the my_feature flag.
wp switcheroo my_feature off: Disable the my_feature flag.

Installation

Plugin Directory

  1. Search for “Switcheroo” within the Add New section of your WordPress plugins page.
  2. Configure feature flags in the switcheroo.json file located in your project root, wp-content folder or active theme folder. You can find an example of this file in the root folder of this plugin.
  3. Use the settings screen under Settings -> Switcheroo to toggle features.

Manual Installation

  1. Download the latest version of the Switcheroo plugin from Github: https://github.com/ufmedia/switcheroo/releases/latest
  2. Unzip and upload the switcheroo folder to the /wp-content/plugins/ directory.
  3. Activate the plugin through the ‘Plugins’ menu in WordPress.
  4. Configure feature flags in the switcheroo.json file located in your project root, wp-content folder or active theme folder. You can find an example of this file in the root folder of this plugin.
  5. Use the settings screen under Settings -> Switcheroo to toggle features.

FAQ

What is a feature flag?

A feature flag is a toggle that allows you to enable or disable specific functionality on your site without deploying new code.

Where do I define my feature flags?

Feature flags are defined in the switcheroo.json file, located in the root of your project.

Can I manage feature flags from the command line?

Yes, using WP-CLI commands such as wp switcheroo to list, enable, or disable flags.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“Switcheroo” is open source software. The following people have contributed to this plugin.

Contributors

Translate “Switcheroo” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

1.0.2

  • switcheroo.json can now be placed in the root, wp-content or active theme folder.

1.0.1

  • Updated ahead of directory publication.

1.0.0

  • Initial release.