roots/wp-stage-switcher

WordPress plugin that allows you to switch between different environments from the admin bar

Fund package maintenance!
roots

Installs: 393 454

Dependents: 2

Suggesters: 0

Security: 0

Stars: 367

Watchers: 26

Forks: 44

Open Issues: 1

Type:wordpress-plugin

pkg:composer/roots/wp-stage-switcher

2.3.0 2025-10-16 21:25 UTC

This package is auto-updated.

Last update: 2025-10-16 21:26:25 UTC


README

Packagist Packagist Downloads

A WordPress plugin that allows you to switch between different environments from the admin bar.

WordPress Stage Switcher

Requirements

You'll need to have ENVIRONMENTS and WP_ENV defined in your WordPress config.

The ENVIRONMENTS constant must be an array of 'environment' => 'url' elements:

$envs = [
  'development' => 'http://example.dev',
  'staging'     => 'http://staging.example.com',
  'production'  => 'http://example.com'
];
Config::define('ENVIRONMENTS', $envs);

WP_ENV must be defined as the current environment:

Config::define('WP_ENV', 'development');

If you use Bedrock, WP_ENV is already defined in the config.

Installation

This plugin must be installed via Composer. Add wp-stage-switcher to your project's dependencies:

composer require roots/wp-stage-switcher

Filters

bedrock/stage_switcher_colors

Customize the background colors for each environment in the admin bar menu. Returns an array of 'environment' => 'color' pairs.

Default colors:

[
  'development' => 'firebrick',
  'staging'     => 'chocolate',
  'production'  => 'transparent',
]

Example usage:

add_filter('bedrock/stage_switcher_colors', function ($colors) {
  return [
    'development' => '#dc2626',
    'staging'     => '#ea580c',
    'production'  => '#10b981',
  ];
});

bedrock/stage_switcher_visibility

Control who can see the stage switcher in the admin bar. Defaults to is_super_admin().

Example usage:

add_filter('bedrock/stage_switcher_visibility', function ($visible) {
  return current_user_can('manage_options');
});

Support

Use the Roots Discourse to ask questions and get support.