File "wpb-sdk-essential-functions.php"

Full Path: /home/theinspectionboy/public_html/suffolk/lib/wpb-sdk/includes/wpb-sdk-essential-functions.php
File size: 2.89 KB
MIME-type: text/x-php
Charset: utf-8

<?php

function wpb_get_plugin_details($slug)
{
	$plugin_path = WP_PLUGIN_DIR . '/' . $slug . '/' . $slug . '.php';
	if (file_exists($plugin_path)) {
		include_once ABSPATH . 'wp-admin/includes/plugin.php';

		$plugin_data = get_plugin_data($plugin_path);

		return $plugin_data;
	}
}

function wpb_get_plugin_path($slug)
{
	// Get the absolute path to the WordPress installation
	$wp_path = untrailingslashit(ABSPATH);

	// Generate the plugin path based on the provided slug and include the main plugin file
	$plugin_path = $wp_path . DIRECTORY_SEPARATOR . 'wp-content' . DIRECTORY_SEPARATOR . 'plugins' . DIRECTORY_SEPARATOR . $slug . DIRECTORY_SEPARATOR . $slug . '.php';

	return $plugin_path;
}

// Add admin menu item
function custom_admin_menu()
{
	// Check if WP_FS__DEV_MODE constant is defined and true
	if (defined('WPBRIGADE_SDK__DEV_MODE') && WPBRIGADE_SDK__DEV_MODE === true) {
		add_menu_page(
			'Custom Page Title', // Page title
			'WPB-SDK Debug [v1.5.0]',       // Menu title
			'manage_options',    // Capability required
			'wpb-debug-mode',  // Menu slug
			'custom_page_content' // Callback function to render page content
		);
	}
}

add_action('admin_menu', 'custom_admin_menu', 999); // Use a high priority to ensure it runs after other menu items are added



// Render the custom page content
function custom_page_content()
{
	// Check if WP_FS__DEV_MODE constant is defined and true
	if (defined('WPBRIGADE_SDK__DEV_MODE') && WPBRIGADE_SDK__DEV_MODE === true) {
		// Include the template file from the views folder
		include_once plugin_dir_path(__FILE__) . '../views/wpb-debug.php';
	} else {
		// Render the default content
?>
		<div class="wrap">
			<h1>WPB Debug Page</h1>
		</div>
	<?php
	}
}

// Add admin menu item for 'account' page
function custom_account_menu()
{
	// Check if WP_FS__DEV_MODE constant is defined and true
	if (defined('WPBRIGADE_SDK__DEV_MODE') && WPBRIGADE_SDK__DEV_MODE === true) {
		add_menu_page(
			'Custom Page Title', // Page title
			'account',       // Menu title
			'manage_options',    // Capability required
			'account',  // Menu slug
			'account_page_content' // Callback function to render page content
		);
	}

	// Enqueue a script to delay the removal of the menu page after a short delay
	add_action('admin_enqueue_scripts', 'delayed_remove_menu_page');
}

add_action('admin_menu', 'custom_account_menu');

// Callback function for 'account' page content
function account_page_content()
{
	// Check if WP_FS__DEV_MODE constant is defined and true
	if (defined('WPBRIGADE_SDK__DEV_MODE') && WPBRIGADE_SDK__DEV_MODE === true) {
		// Include the template file from the views folder
		include_once plugin_dir_path(__FILE__) . '../views/account.php';
	} else {
		// Render the default content
	?>
		<div class="wrap">
			<h1>WPB Debug Page</h1>
		</div>
<?php
	}
}

// JavaScript function to remove menu page after a delay
function delayed_remove_menu_page()
{
	remove_menu_page('account');
}