add_node( [ 'id' => 'powered-cache-exit-dev-mode', 'title' => '🚧 ' . $title, 'href' => wp_nonce_url( admin_url( 'admin-post.php?action=powered_cache_exit_dev_mode' ), 'powered_cache_exit_dev_mode' ), 'meta' => [ 'class' => 'powered-cache-dev-mode-warning' ], ] ); } /** * Inject custom styling into admin bar when dev mode is active. * * @return void * @since 3.6 */ public static function add_admin_bar_css() { if ( ! is_admin_bar_showing() ) { return; } echo ''; } /** * Handle the request to disable development mode. * Only authorized users can perform this action based on the context. * * @return void * @since 3.6 */ public static function handle_exit_dev_mode() { if ( ! current_user_can( 'manage_options' ) ) { wp_die( esc_html__( 'Unauthorized request.', 'powered-cache' ) ); } if ( ! check_admin_referer( 'powered_cache_exit_dev_mode' ) ) { wp_die( esc_html__( 'Invalid nonce.', 'powered-cache' ) ); } $settings = Utils\get_settings(); $settings['dev_mode'] = false; if ( POWERED_CACHE_IS_NETWORK ) { update_site_option( SETTING_OPTION, $settings ); } else { update_option( SETTING_OPTION, $settings ); } Config::factory()->save_configuration( $settings, POWERED_CACHE_IS_NETWORK ); $redirect_url = wp_get_referer() ? wp_get_referer() : admin_url( 'admin.php?page=powered-cache' ); wp_safe_redirect( $redirect_url ); exit; } }