File "user-menus.php"
Full Path: /home/mba/public_html/wp-content-20250807152928/plugins/user-menus/user-menus.php
File size: 5.63 KB
MIME-type: text/x-php
Charset: utf-8
<?php
/**
* Plugin Name: User Menus
* Plugin URI: https://wordpress.org/plugins/user-menus/
* Description: Quickly customize your menus with a user's name & avatar, or show items based on user role.
* Version: 1.3.2
* Author: Code Atlantic
* Author URI: https://code-atlantic.com/
* License: GPL2 or later
* License URI: https://www.gnu.org/licenses/gpl-2.0.html
* Text Domain: user-menus
*
* Minimum PHP: 5.6
* Minimum WP: 4.6
*
* @author Daniel Iser
* @package User Menus
* @copyright Copyright (c) 2019, Code Atlantic LLC
*
* Prior Work Credits. Big thanks to the following:
* - No Conflict Nav Menu Walker (Modified) - Nav Menu Roles @helgatheviking
* - Menu Importer (Modified) - Kathy Darling
*/
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
if ( ! function_exists( 'um_fs' ) ) {
/**
* Create a helper function for easy SDK access.
*
* @return \Freemius
*/
function um_fs() {
global $um_fs;
if ( ! isset( $um_fs ) ) {
// Include Freemius SDK.
require_once dirname( __FILE__ ) . '/freemius/start.php';
$um_fs = fs_dynamic_init( [
'id' => '3637',
'slug' => 'user-menus',
'type' => 'plugin',
'public_key' => 'pk_367ac2d0a38c35ef2a78d161fed88',
'is_premium' => false,
'has_addons' => false,
'has_paid_plans' => false,
'menu' => [
'first-path' => 'plugins.php',
'account' => false,
'contact' => false,
'support' => false,
],
] );
}
return $um_fs;
}
// Init Freemius.
um_fs();
// Signal that SDK was initiated.
do_action( 'um_fs_loaded' );
}
/**
* Class JP_User_Menus
*/
class JP_User_Menus {
/**
* Plugin Name
*
* @var string
*/
public static $NAME = 'User Menus';
/**
* Plugin Version
*
* @var string
*/
public static $VER = '1.3.2';
/**
* Minimum PHP version
*
* @var string
*/
public static $MIN_PHP_VER = '5.6';
/**
* Minimum WP version
*
* @var string
*/
public static $MIN_WP_VER = '4.6';
/**
* Plugin URL
*
* @var string
*/
public static $URL = '';
/**
* Plugin Directory
*
* @var string
*/
public static $DIR = '';
/**
* Plugin File
*
* @var string
*/
public static $FILE = '';
/**
* Plugin Template Directory
*
* @var string
*/
public static $TEMPLATE_PATH = 'jp/user-menus/';
/**
* Text Domain
*
* @var string
*/
public static $TD = 'user-menus';
/**
* Instance of the plugin class
*
* @var JP_User_Menus $instance The one true JP_User_Menus
*/
private static $instance;
/**
* Get active instance
*
* @access public
* @since 1.0.0
* @return object self::$instance The one true JP_User_Menus
*/
public static function instance() {
if ( ! self::$instance ) {
self::$instance = new static();
self::$instance->setup_constants();
add_action( 'plugins_loaded', [ self::$instance, 'load_textdomain' ] );
self::$instance->includes();
}
return self::$instance;
}
/**
* Setup plugin constants
*
* @since 1.0.0
*/
private function setup_constants() {
self::$DIR = self::$instance->plugin_path();
self::$URL = self::$instance->plugin_url();
self::$FILE = __FILE__;
}
/**
* Include necessary files
*
* @since 1.0.0
*/
private function includes() {
// Menu Items.
require_once self::$DIR . 'includes/classes/menu/item.php';
require_once self::$DIR . 'includes/classes/menu/items.php';
require_once self::$DIR . 'includes/classes/user/codes.php';
if ( is_admin() ) {
// Admin Menu Editor.
require_once self::$DIR . 'includes/classes/admin/menu-editor.php';
require_once self::$DIR . 'includes/classes/admin/menu-settings.php';
require_once self::$DIR . 'includes/classes/admin/menu-importer.php';
require_once self::$DIR . 'includes/classes/admin/reviews.php';
} else {
// Site Menu Filter.
require_once self::$DIR . 'includes/classes/site/menus.php';
}
}
/**
* Get the plugin path.
*
* @return string
*/
public function plugin_path() {
return plugin_dir_path( __FILE__ );
}
/**
* Get the plugin url.
*
* @return string
*/
public function plugin_url() {
return plugins_url( '/', __FILE__ );
}
/**
* Plugin Activation hook function to check for Minimum PHP and WordPress versions
*/
public static function activation_check() {
global $wp_version;
if ( version_compare( PHP_VERSION, self::$MIN_PHP_VER, '<' ) ) {
$flag = 'PHP';
} elseif ( version_compare( $wp_version, self::$MIN_WP_VER, '<' ) ) {
$flag = 'WordPress';
} else {
return;
}
$version = 'PHP' === $flag ? self::$MIN_PHP_VER : self::$MIN_WP_VER;
// Deactivate automatically due to insufficient PHP or WP Version.
deactivate_plugins( basename( __FILE__ ) );
/* translators: 1: Plugin Name, 2: Flagged software (PHP or WP), 3: PHP or WordPress version */
$notice = sprintf( __( 'The %4$s %1$s %5$s plugin requires %2$s version %3$s or greater.', 'user-menus' ), self::$NAME, $flag, $version, '<strong>', '</strong>' );
/* phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped */
wp_die( sprintf( '<p>%s</p>', $notice ), __( 'Plugin Activation Error', 'user-menus' ), [
'response' => 200,
'back_link' => true,
] );
}
/**
* Internationalization
*
* @since 1.0.0
*/
public function load_textdomain() {
load_plugin_textdomain( 'user-menus' );
}
}
/**
* Globally available function to get plugin instance.
*
* @return object
*/
function jp_user_menus() {
return JP_User_Menus::instance();
}
jp_user_menus();
// Ensure plugin & environment compatibility.
register_activation_hook( __FILE__, [ 'JP_User_Menus', 'activation_check' ] );