A handy script for displaying required plugins in the WordPress admin panel.

<?php

/**
 * Let users know when a required plugin is missing.
 */
function prefix_required_plugins_notice() {

	// Create array with missing plugins list
	$required_plugins = array(
		'new_cmb2_box'               => 'CMB2',
		// 'Unique_Headers_Instantiate' => 'Unique Headers',
		//'gch_activation_check'       => 'Genesis Custom Headers',
		//'the_subtitle'               => 'WP Subtitle',
	);
	foreach( $required_plugins as $function => $name ) {
		if ( ! function_exists( $function ) && ! class_exists( $function ) ) {
			$missing_plugins[] = $name;
		}
	}

	// If no plugins missing, then bail out now
	if ( empty( $missing_plugins ) ) {
		return;
	}

	// Display error message and list missing plugins
	?>
	<div class="error">
		<p>This theme requires some plugins to be loaded before it will work correctly.</p>
		<ul><?php
		foreach( $missing_plugins as $plugin_name ) {
			echo '
			<li>' . esc_html( $plugin_name ) . '</li>';
		}
		?>
		</ul>
	</div>
	<?php
}
add_action( 'admin_notices', 'prefix_required_plugins_notice' );

?>