Skip to content

Commit

Permalink
Added filter to turn plugin off after wp init hook (#5)
Browse files Browse the repository at this point in the history
* Added filter to turn plugin off after wp init hook

* Moved callback functions outside init function + bumped version number
  • Loading branch information
pederan authored Dec 2, 2022
1 parent b8e1850 commit d67e499
Showing 1 changed file with 75 additions and 67 deletions.
142 changes: 75 additions & 67 deletions plugin.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* Description: Adds a banner to the frontend and an item to the admin bar informing about the server environment
* Author: Dekode
* Author URI: https://dekode.no
* Version: 1.0.1
* Version: 1.0.2
*
* @package Dekode-Label-Environment
*/
Expand All @@ -14,76 +14,84 @@

namespace Dekode\Label_Environment;

// Shows on all environment except from on production. Can be turned off by filter.
if ( \apply_filters( 'dekode_label_environment_enabled', true ) ) {
\add_action( 'init', __NAMESPACE__ . '\\on_init' );

\add_action( 'admin_bar_menu', __NAMESPACE__ . '\\add_environment_to_admin_bar', 999 );
\add_action( 'admin_head', __NAMESPACE__ . '\\add_admin_bar_styles', 999 );
/**
* Fires after WordPress has finished loading but before any headers are sent.
*
* @return void
*/
function on_init() {
// Add hooks to display the admin bar item and possibly the label.
if ( \apply_filters( 'dekode_label_environment_enabled', true ) ) {
\add_action( 'admin_bar_menu', __NAMESPACE__ . '\\add_environment_to_admin_bar', 999 );
\add_action( 'admin_head', __NAMESPACE__ . '\\add_admin_bar_styles', 999 );

/**
* Add information about the environment in the admin bar
*
* @param \WP_Admin_Bar $wp_admin_bar The WP_Admin_Bar instance, passed by reference.
*
* @return void
*/
function add_environment_to_admin_bar( \WP_Admin_Bar $wp_admin_bar ) {
$args = [
'id' => 'dekode-label-environment',
'title' => \sprintf( 'Environment: %s', \esc_html( \wp_get_environment_type() ) ),
];
$wp_admin_bar->add_node( $args );
// Display the banner if enabled and on all environments except production.
if ( \apply_filters( 'dekode_label_environment_banner_enabled', ( 'production' !== \wp_get_environment_type() ) ) ) {
\add_action( 'wp_head', __NAMESPACE__ . '\\add_banner_styles' );
}
}
}

// Display the banner on all environments except production.
if ( \apply_filters( 'dekode_label_environment_banner_enabled', ( 'production' !== \wp_get_environment_type() ) ) ) {
\add_action( 'wp_head', __NAMESPACE__ . '\\add_banner_styles' );
}
/**
* Add information about the environment in the admin bar
*
* @param \WP_Admin_Bar $wp_admin_bar The WP_Admin_Bar instance, passed by reference.
*
* @return void
*/
function add_environment_to_admin_bar( \WP_Admin_Bar $wp_admin_bar ) {
$args = [
'id' => 'dekode-label-environment',
'title' => \sprintf( 'Environment: %s', \esc_html( \wp_get_environment_type() ) ),
];
$wp_admin_bar->add_node( $args );
}

/**
* Add inline style to head for displaying admin bar environment information in admin
* Remove pointer events since the text is not linked
*
* @return void
*/
function add_admin_bar_styles() {
echo '<style>#wp-admin-bar-dekode-label-environment{pointer-events:none;}</style>'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
/**
* Add inline style to head for displaying admin bar environment information in admin
* Remove pointer events since the text is not linked
*
* @return void
*/
function add_admin_bar_styles() {
echo '<style>#wp-admin-bar-dekode-label-environment{pointer-events:none;}</style>'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}

/**
* Add inline style to head for displaying the banner on frontend
*
* @return void
*/
function add_banner_styles() {
$css = 'body:after{'
. 'align-items:center;'
. 'background-color:#1d2327;'
. 'color:#f0f0f1;'
. 'content:"' . \wp_get_environment_type() . '";'
. 'display:flex;'
. 'font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;'
. 'font-size:12px;'
. 'font-weight:400;'
. 'left:0;'
. 'line-height:24px;'
. 'justify-content:center;'
. 'position:fixed;'
. 'top:56px;'
. 'transform:rotate(-45deg);'
. 'transform-origin:bottom left;'
. 'width:112px;'
. 'z-index:50;'
. '-webkit-font-smoothing:auto;'
. '}'
. 'body.admin-bar:after{' // Admin bar has 32px height - bump label down.
. 'top:88px;'
. '}'
. '@media screen and (max-width: 782px) {'
. 'body.admin-bar:after{' // Admin bar has 46px height on screen resolution 782px and less - bump label down.
. 'top:102px;'
. '}'
. '}';
echo '<style>' . $css . '</style>'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
/**
* Add inline style to head for displaying the banner on frontend
*
* @return void
*/
function add_banner_styles() {
$css = 'body:after{'
. 'align-items:center;'
. 'background-color:#1d2327;'
. 'color:#f0f0f1;'
. 'content:"' . \wp_get_environment_type() . '";'
. 'display:flex;'
. 'font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;'
. 'font-size:12px;'
. 'font-weight:400;'
. 'left:0;'
. 'line-height:24px;'
. 'justify-content:center;'
. 'position:fixed;'
. 'top:56px;'
. 'transform:rotate(-45deg);'
. 'transform-origin:bottom left;'
. 'width:112px;'
. 'z-index:50;'
. '-webkit-font-smoothing:auto;'
. '}'
. 'body.admin-bar:after{' // Admin bar has 32px height - bump label down.
. 'top:88px;'
. '}'
. '@media screen and (max-width: 782px) {'
. 'body.admin-bar:after{' // Admin bar has 46px height on screen resolution 782px and less - bump label down.
. 'top:102px;'
. '}'
. '}';
echo '<style>' . $css . '</style>'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}

0 comments on commit d67e499

Please sign in to comment.