roots/wp-stage-switcher

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

Maintainers

Package info

github.com/roots/wp-stage-switcher

Homepage

Forum

Type:wordpress-plugin

pkg:composer/roots/wp-stage-switcher

Fund package maintenance!

roots

Statistics

Installs: 434 427

Dependents: 2

Suggesters: 0

Stars: 373

Open Issues: 0

2.4.0 2026-03-09 21:59 UTC

This package is auto-updated.

Last update: 2026-03-21 17:34:47 UTC


README

Packagist Packagist Downloads Build Status Follow Roots Sponsor Roots

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

WordPress Stage Switcher

Support us

Roots is an independent open source org, supported only by developers like you. Your sponsorship funds WP Packages and the entire Roots ecosystem, and keeps them independent. Support us by purchasing Radicle or sponsoring us on GitHub — sponsors get access to our private Discord.

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');
});

Community

Keep track of development and community news.