-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathstaging-environment.php
More file actions
84 lines (70 loc) · 2.43 KB
/
staging-environment.php
File metadata and controls
84 lines (70 loc) · 2.43 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<?php
/**
* Plugin Name: staging-environment.php
* Description: This snippet will enable and disable plugins based on the WP_ENVIRONMENT_TYPE
* Version: 1.0.0
* Type: Snippet
* Status: Complete
*
* Originally from https://pantheon.io/docs/environment-specific-config
* Also look at https://kamilgrzegorczyk.com/2018/05/02/how-to-disable-plugins-on-certain-environment/
*/
# List Development Plugins
$plugins_development = array(
'debug-bar/debug-bar.php',
'developer/developer.php',
'wp-reroute-email/wp-reroute-email.php'
);
# List Production Plugins
$plugins_production = array(
'woocommerce-zapier/woocommerce-zapier.php'
);
# For sites that are live
if ( WP_ENVIRONMENT_TYPE == 'production' ) {
//error_log("Running in production");
# Disable Development Plugins
require_once(ABSPATH . 'wp-admin/includes/plugin.php');
foreach ($plugins_development as $plugin_dev) {
if(is_plugin_active($plugin_dev)) {
deactivate_plugins($plugin_dev);
}
}
# Disable jetpack_development_mode
add_filter( 'jetpack_development_mode', '__return_false' );
# Enable Production plugins
require_once(ABSPATH . 'wp-admin/includes/plugin.php');
foreach ($plugins_production as $plugin_prod) {
if(is_plugin_inactive($plugin_prod)) {
activate_plugin($plugin_prod);
}
}
# For all other instances
} else {
//error_log("Not running in production.");
# Activate Development Plugins
require_once(ABSPATH . 'wp-admin/includes/plugin.php');
foreach ($plugins_development as $plugin_dev) {
if(is_plugin_inactive($plugin_dev)) {
activate_plugin($plugin_dev);
}
}
# De-activate production plugins that trigger automated calls
require_once(ABSPATH . 'wp-admin/includes/plugin.php');
foreach ($plugins_production as $plugin_prod) {
if(is_plugin_active($plugin_prod)) {
deactivate_plugins($plugin_prod);
}
}
# Enable development mode for jetpack
add_filter( 'jetpack_development_mode', '__return_true' );
}
# Change admin bar color based on enviroment
if ( WP_ENVIRONMENT_TYPE == 'staging' ) {
add_action('admin_notices', function () {
global $pagenow;
echo '<div class="notice notice-error" style="background:yellow;color:black;">
<p><b>You\'re on the staging site!</b></p>
</div>';
});
}
//error_log(WP_ENVIRONMENT_TYPE);