2023-09-25 21:08:35 +03:00
< ? php
2024-09-04 18:03:22 +02:00
2023-09-25 21:08:35 +03:00
if ( ! defined ( 'ABSPATH' ) ) {
exit ;
}
2017-07-26 14:57:52 +03:00
if ( ! class_exists ( 'UM' ) ) {
2018-03-19 16:31:49 +02:00
/**
* Main UM Class
*
* @class UM
* @version 2.0
*
* @method UM_bbPress_API bbPress_API()
* @method UM_Followers_API Followers_API()
* @method UM_Friends_API Friends_API()
* @method UM_Instagram_API Instagram_API()
2019-09-09 13:44:03 +03:00
* @method UM_Mailchimp Mailchimp()
2018-03-19 16:31:49 +02:00
* @method UM_Messaging_API Messaging_API()
2019-09-11 13:01:44 +03:00
* @method UM_myCRED myCRED()
2019-10-07 00:48:51 +03:00
* @method UM_Notices Notices()
2018-03-19 16:31:49 +02:00
* @method UM_Notifications_API Notifications_API()
2019-07-22 18:19:56 +03:00
* @method UM_Online Online()
2018-03-19 16:31:49 +02:00
* @method UM_Profile_Completeness_API Profile_Completeness_API()
2019-08-02 14:04:50 +03:00
* @method UM_reCAPTCHA reCAPTCHA()
2019-10-23 13:13:11 +03:00
* @method UM_Reviews Reviews()
2018-03-19 16:31:49 +02:00
* @method UM_Activity_API Activity_API()
* @method UM_Social_Login_API Social_Login_API()
2019-09-27 12:38:14 +03:00
* @method UM_User_Tags User_Tags()
2018-03-19 16:31:49 +02:00
* @method UM_Verified_Users_API Verified_Users_API()
* @method UM_WooCommerce_API WooCommerce_API()
2019-08-01 14:23:13 +03:00
* @method UM_Terms_Conditions Terms_Conditions()
2019-09-23 13:34:25 +03:00
* @method UM_Private_Content Private_Content()
2020-02-14 12:53:08 +02:00
* @method UM_User_Locations User_Locations()
2018-08-07 12:38:19 +03:00
* @method UM_Photos_API Photos_API()
2018-10-02 09:23:18 +03:00
* @method UM_Groups Groups()
2019-04-23 11:39:19 +03:00
* @method UM_Frontend_Posting Frontend_Posting()
2019-05-07 14:57:08 +03:00
* @method UM_Notes Notes()
2019-05-08 11:10:47 +03:00
* @method UM_User_Bookmarks User_Bookmarks()
* @method UM_Unsplash Unsplash()
2019-07-16 23:05:43 +03:00
* @method UM_ForumWP ForumWP()
2019-12-10 14:04:13 +02:00
* @method UM_Profile_Tabs Profile_Tabs()
2020-07-31 00:35:13 +03:00
* @method UM_JobBoardWP JobBoardWP()
2020-09-01 13:56:02 +03:00
* @method UM_Google_Authenticator Google_Authenticator()
2018-03-19 16:31:49 +02:00
*/
final class UM extends UM_Functions {
/**
* @var UM the single instance of the class
*/
2023-06-22 17:06:01 +03:00
protected static $instance ;
2018-03-19 16:31:49 +02:00
/**
* @var array all plugin's classes
*/
public $classes = array ();
/**
* @var bool Old variable
2018-09-18 09:43:47 +03:00
*
* @todo deprecate this variable
2018-03-19 16:31:49 +02:00
*/
public $is_filtering ;
2018-09-14 14:39:05 +03:00
/**
2018-09-18 09:43:47 +03:00
* WP Native permalinks turned on?
*
2018-09-14 14:39:05 +03:00
* @var
*/
2023-06-29 13:50:47 +03:00
public $is_permalinks = false ;
2018-09-14 14:39:05 +03:00
2023-04-17 20:16:15 +03:00
/**
* @var null|string
*/
public $honeypot = null ;
2018-09-14 14:39:05 +03:00
2018-03-19 16:31:49 +02:00
/**
* Main UM Instance
*
* Ensures only one instance of UM is loaded or can be loaded.
*
* @since 1.0
* @static
* @see UM()
* @return UM - Main instance
*/
2023-04-17 20:16:15 +03:00
public static function instance () {
2018-04-03 11:46:30 +03:00
if ( is_null ( self :: $instance ) ) {
2018-03-19 16:31:49 +02:00
self :: $instance = new self ();
2018-05-31 00:05:39 +03:00
self :: $instance -> _um_construct ();
2018-04-03 11:46:30 +03:00
}
2018-03-19 16:31:49 +02:00
return self :: $instance ;
}
/**
* Create plugin classes - not sure if it needs!!!!!!!!!!!!!!!
*
* @since 1.0
* @see UM()
*
* @param $name
* @param array $params
* @return mixed
*/
public function __call ( $name , array $params ) {
if ( empty ( $this -> classes [ $name ] ) ) {
/**
* UM hook
*
* @type filter
* @title um_call_object_{$class_name}
* @description Extend call classes of Extensions for use UM()->class_name()->method|function
* @input_vars
* [{"var":"$class","type":"object","desc":"Class Instance"}]
* @change_log
* ["Since: 2.0"]
* @usage add_filter( 'um_call_object_{$class_name}', 'function_name', 10, 1 );
* @example
* <?php
* add_filter( 'um_call_object_{$class_name}', 'my_extension_class', 10, 1 );
* function my_extension_class( $class ) {
* // your code here
* return $class;
* }
* ?>
*/
$this -> classes [ $name ] = apply_filters ( 'um_call_object_' . $name , false );
}
return $this -> classes [ $name ];
}
/**
* Function for add classes to $this->classes
* for run using UM()
*
* @since 2.0
*
* @param string $class_name
* @param bool $instance
*/
public function set_class ( $class_name , $instance = false ) {
2018-09-17 08:29:33 +03:00
if ( empty ( $this -> classes [ $class_name ] ) ) {
2018-03-19 16:31:49 +02:00
$class = 'UM_' . $class_name ;
2018-09-17 08:29:33 +03:00
$this -> classes [ $class_name ] = $instance ? $class :: instance () : new $class ;
2018-03-19 16:31:49 +02:00
}
}
/**
* Cloning is forbidden.
* @since 1.0
*/
public function __clone () {
_doing_it_wrong ( __FUNCTION__ , __ ( 'Cheatin’ huh?' , 'ultimate-member' ), '1.0' );
}
/**
* Unserializing instances of this class is forbidden.
* @since 1.0
*/
public function __wakeup () {
_doing_it_wrong ( __FUNCTION__ , __ ( 'Cheatin’ huh?' , 'ultimate-member' ), '1.0' );
}
/**
* UM constructor.
*
* @since 1.0
*/
function __construct () {
parent :: __construct ();
2018-05-31 00:05:39 +03:00
}
/**
* UM pseudo-constructor.
*
* @since 2.0.18
*/
function _um_construct () {
2018-03-19 16:31:49 +02:00
//register autoloader for include UM classes
spl_autoload_register ( array ( $this , 'um__autoloader' ) );
if ( ! defined ( 'WP_UNINSTALL_PLUGIN' ) ) {
2018-09-17 08:29:33 +03:00
if ( get_option ( 'permalink_structure' ) ) {
$this -> is_permalinks = true ;
}
2018-03-19 16:31:49 +02:00
$this -> is_filtering = 0 ;
2024-11-29 14:09:23 +02:00
$this -> honeypot = 'um_request' ;
2018-03-19 16:31:49 +02:00
// include UM classes
$this -> includes ();
// include hook files
add_action ( 'plugins_loaded' , array ( & $this , 'init' ), 0 );
2024-11-29 14:09:23 +02:00
// run hook for extensions init
2018-11-28 11:13:51 +02:00
add_action ( 'plugins_loaded' , array ( & $this , 'extensions_init' ), - 19 );
2018-03-19 16:31:49 +02:00
2024-11-29 14:09:23 +02:00
// Fallback to avoid fatal errors for users who still have UM extensions compatible with UM 1.3.x and install UM >= 2.0 version before these extensions update.
2018-04-11 13:19:54 +03:00
add_action ( 'init' , array ( & $this , 'old_update_patch' ), 0 );
2018-03-19 16:31:49 +02:00
//run activation
2023-09-13 22:56:32 +03:00
register_activation_hook ( UM_PLUGIN , array ( & $this , 'activation' ) );
2018-03-19 16:31:49 +02:00
2023-09-13 22:56:32 +03:00
register_deactivation_hook ( UM_PLUGIN , array ( & $this , 'deactivation' ) );
2022-01-03 13:25:43 +02:00
2024-11-29 14:09:23 +02:00
if ( ! defined ( 'DOING_AJAX' ) && is_multisite () ) {
2020-07-06 14:20:29 +03:00
add_action ( 'wp_loaded' , array ( $this , 'maybe_network_activation' ) );
}
2018-03-19 16:31:49 +02:00
// init widgets
add_action ( 'widgets_init' , array ( & $this , 'widgets_init' ) );
2024-01-12 11:03:04 +02:00
// Include short non-class functions
require_once 'um-core-functions.php' ;
2018-03-19 16:31:49 +02:00
require_once 'um-short-functions.php' ;
require_once 'um-deprecated-functions.php' ;
}
}
2018-09-17 08:29:33 +03:00
/**
2024-03-07 10:17:38 +02:00
* Loading UM textdomain.
2018-09-17 08:29:33 +03:00
*
2024-03-07 10:17:38 +02:00
* Note: 'ultimate-member' is a default textdomain.
*
* @since 2.8.5 WordPress native functions are used to make this function clear.
2024-11-29 14:09:23 +02:00
* @deprecated 2.9.2 Ref. https://make.wordpress.org/core/2024/10/21/i18n-improvements-6-7/#Enhanced-support-for-only-using-PHP-translation-files
2018-09-17 08:29:33 +03:00
*/
2024-11-29 14:09:23 +02:00
public function localize () {
_deprecated_function ( __METHOD__ , '2.9.2' , '' );
}
2018-09-17 08:29:33 +03:00
/**
2024-11-29 14:09:23 +02:00
* Fallback to avoid fatal errors for users who still have UM extensions compatible with UM 1.3.x and install UM >= 2.0 version before these extensions update.
* Doing 1.3.x active extensions deactivate for properly running 2.0.x AJAX upgrades.
2018-09-17 08:29:33 +03:00
*/
2024-11-29 14:09:23 +02:00
public function old_update_patch () {
2018-04-11 13:19:54 +03:00
global $um_woocommerce , $um_bbpress , $um_followers , $um_friends , $um_mailchimp , $um_messaging , $um_mycred , $um_notices , $um_notifications , $um_online , $um_private_content , $um_profile_completeness , $um_recaptcha , $um_reviews , $um_activity , $um_social_login , $um_user_tags , $um_verified ;
2018-04-11 16:24:47 +03:00
if ( is_object ( $um_woocommerce ) ) {
remove_action ( 'init' , array ( $um_woocommerce , 'plugin_check' ), 1 );
$um_woocommerce -> plugin_inactive = true ;
}
2018-04-11 13:19:54 +03:00
2018-04-11 16:24:47 +03:00
if ( is_object ( $um_bbpress ) ) {
remove_action ( 'init' , array ( $um_bbpress , 'plugin_check' ), 4 );
$um_bbpress -> plugin_inactive = true ;
}
2018-04-11 13:19:54 +03:00
2018-04-11 16:24:47 +03:00
if ( is_object ( $um_followers ) ) {
remove_action ( 'init' , array ( $um_followers , 'plugin_check' ), 1 );
$um_followers -> plugin_inactive = true ;
}
2018-04-11 13:19:54 +03:00
2018-04-11 16:24:47 +03:00
if ( is_object ( $um_friends ) ) {
remove_action ( 'init' , array ( $um_friends , 'plugin_check' ), 1 );
$um_friends -> plugin_inactive = true ;
}
2018-04-11 13:19:54 +03:00
2018-04-11 16:24:47 +03:00
if ( is_object ( $um_mailchimp ) ) {
remove_action ( 'init' , array ( $um_mailchimp , 'plugin_check' ), 1 );
$um_mailchimp -> plugin_inactive = true ;
}
2018-04-11 13:19:54 +03:00
2018-04-11 16:24:47 +03:00
if ( is_object ( $um_messaging ) ) {
remove_action ( 'init' , array ( $um_messaging , 'plugin_check' ), 1 );
$um_messaging -> plugin_inactive = true ;
}
2018-04-11 13:19:54 +03:00
2018-04-11 16:24:47 +03:00
if ( is_object ( $um_mycred ) ) {
remove_action ( 'init' , array ( $um_mycred , 'plugin_check' ), 1 );
$um_mycred -> plugin_inactive = true ;
}
2018-04-11 13:19:54 +03:00
2018-04-11 16:24:47 +03:00
if ( is_object ( $um_notices ) ) {
remove_action ( 'init' , array ( $um_notices , 'plugin_check' ), 1 );
$um_notices -> plugin_inactive = true ;
}
2018-04-11 13:19:54 +03:00
2018-04-11 16:24:47 +03:00
if ( is_object ( $um_notifications ) ) {
remove_action ( 'init' , array ( $um_notifications , 'plugin_check' ), 1 );
$um_notifications -> plugin_inactive = true ;
}
2018-04-11 13:19:54 +03:00
2018-04-11 16:24:47 +03:00
if ( is_object ( $um_online ) ) {
remove_action ( 'init' , array ( $um_online , 'plugin_check' ), 1 );
$um_online -> plugin_inactive = true ;
}
2018-04-11 13:19:54 +03:00
2018-04-11 16:24:47 +03:00
if ( is_object ( $um_private_content ) ) {
remove_action ( 'init' , array ( $um_private_content , 'plugin_check' ), 1 );
$um_private_content -> plugin_inactive = true ;
}
2018-04-11 13:19:54 +03:00
2018-04-11 16:24:47 +03:00
if ( is_object ( $um_profile_completeness ) ) {
remove_action ( 'init' , array ( $um_profile_completeness , 'plugin_check' ), 1 );
$um_profile_completeness -> plugin_inactive = true ;
}
2018-04-11 13:19:54 +03:00
2018-04-11 16:24:47 +03:00
if ( is_object ( $um_recaptcha ) ) {
remove_action ( 'init' , array ( $um_recaptcha , 'plugin_check' ), 1 );
$um_recaptcha -> plugin_inactive = true ;
}
2018-04-11 13:19:54 +03:00
2018-04-11 16:24:47 +03:00
if ( is_object ( $um_reviews ) ) {
remove_action ( 'init' , array ( $um_reviews , 'plugin_check' ), 1 );
$um_reviews -> plugin_inactive = true ;
}
2018-04-11 13:19:54 +03:00
2018-04-11 16:24:47 +03:00
if ( is_object ( $um_activity ) ) {
remove_action ( 'init' , array ( $um_activity , 'plugin_check' ), 1 );
$um_activity -> plugin_inactive = true ;
}
2018-04-11 13:19:54 +03:00
2018-04-11 16:24:47 +03:00
if ( is_object ( $um_social_login ) ) {
remove_action ( 'init' , array ( $um_social_login , 'plugin_check' ), 1 );
$um_social_login -> plugin_inactive = true ;
}
2018-04-11 13:19:54 +03:00
2018-04-11 16:24:47 +03:00
if ( is_object ( $um_user_tags ) ) {
remove_action ( 'init' , array ( $um_user_tags , 'plugin_check' ), 1 );
$um_user_tags -> plugin_inactive = true ;
}
2018-04-11 13:19:54 +03:00
2018-04-11 16:24:47 +03:00
if ( is_object ( $um_verified ) ) {
remove_action ( 'init' , array ( $um_verified , 'plugin_check' ), 1 );
$um_verified -> plugin_inactive = true ;
}
2018-04-11 13:19:54 +03:00
}
2018-03-19 16:31:49 +02:00
/**
* Autoload UM classes handler
*
* @since 2.0
*
* @param $class
*/
function um__autoloader ( $class ) {
if ( strpos ( $class , 'um' ) === 0 ) {
$array = explode ( '\\' , strtolower ( $class ) );
$array [ count ( $array ) - 1 ] = 'class-' . end ( $array );
if ( strpos ( $class , 'um_ext' ) === 0 ) {
2023-09-13 22:56:32 +03:00
$full_path = str_replace ( 'ultimate-member' , '' , untrailingslashit ( UM_PATH ) ) . str_replace ( '_' , '-' , $array [ 1 ] ) . DIRECTORY_SEPARATOR . 'includes' . DIRECTORY_SEPARATOR ;
2018-03-19 16:31:49 +02:00
unset ( $array [ 0 ], $array [ 1 ] );
$path = implode ( DIRECTORY_SEPARATOR , $array );
$path = str_replace ( '_' , '-' , $path );
$full_path .= $path . '.php' ;
} else if ( strpos ( $class , 'um\\' ) === 0 ) {
$class = implode ( '\\' , $array );
$slash = DIRECTORY_SEPARATOR ;
$path = str_replace (
array ( 'um\\' , '_' , '\\' ),
array ( $slash , '-' , $slash ),
$class );
2023-09-13 22:56:32 +03:00
$full_path = UM_PATH . 'includes' . $path . '.php' ;
2018-03-19 16:31:49 +02:00
}
if ( isset ( $full_path ) && file_exists ( $full_path ) ) {
include_once $full_path ;
}
}
}
/**
* Plugin Activation
*
* @since 2.0
*/
function activation () {
2020-07-06 14:20:29 +03:00
$this -> single_site_activation ();
2018-04-01 16:25:29 +03:00
if ( is_multisite () ) {
2020-07-06 14:20:29 +03:00
update_network_option ( get_current_network_id (), 'um_maybe_network_wide_activation' , 1 );
}
}
2022-01-03 13:25:43 +02:00
/**
* Plugin Deactivation
*
* @since 2.3
*/
function deactivation () {
$this -> cron () -> unschedule_events ();
}
2020-07-06 14:20:29 +03:00
/**
* Maybe need multisite activation process
*
* @since 2.1.7
*/
function maybe_network_activation () {
$maybe_activation = get_network_option ( get_current_network_id (), 'um_maybe_network_wide_activation' );
if ( $maybe_activation ) {
delete_network_option ( get_current_network_id (), 'um_maybe_network_wide_activation' );
2023-09-13 22:56:32 +03:00
if ( is_plugin_active_for_network ( UM_PLUGIN ) ) {
2020-07-06 14:20:29 +03:00
// get all blogs
2019-05-08 11:10:47 +03:00
$blogs = get_sites ();
if ( ! empty ( $blogs ) ) {
foreach ( $blogs as $blog ) {
switch_to_blog ( $blog -> blog_id );
//make activation script for each sites blog
$this -> single_site_activation ();
restore_current_blog ();
}
2018-04-01 16:25:29 +03:00
}
}
}
}
/**
* Single site plugin activation handler
*/
function single_site_activation () {
2018-03-19 16:31:49 +02:00
//first install
$version = get_option ( 'um_version' );
if ( ! $version ) {
2023-09-13 22:56:32 +03:00
update_option ( 'um_last_version_upgrade' , UM_VERSION );
2018-03-19 16:31:49 +02:00
2018-07-01 17:13:32 +03:00
add_option ( 'um_first_activation_date' , time () );
2018-03-19 16:31:49 +02:00
//show avatars on first install
2018-04-01 16:25:29 +03:00
if ( ! get_option ( 'show_avatars' ) ) {
2018-03-19 16:31:49 +02:00
update_option ( 'show_avatars' , 1 );
2018-04-01 16:25:29 +03:00
}
2019-04-10 15:00:13 +03:00
} else {
UM () -> options () -> update ( 'rest_api_version' , '1.0' );
2018-03-19 16:31:49 +02:00
}
2023-09-13 22:56:32 +03:00
if ( $version != UM_VERSION ) {
update_option ( 'um_version' , UM_VERSION );
2018-04-01 16:25:29 +03:00
}
2018-03-19 16:31:49 +02:00
//run setup
2023-07-07 00:34:11 +03:00
$this -> common () -> cpt () -> create_post_types ();
2018-03-19 16:31:49 +02:00
$this -> setup () -> run_setup ();
2023-07-07 13:34:55 +03:00
$this -> cron () -> schedule_events ();
2018-03-19 16:31:49 +02:00
}
2018-11-28 11:13:51 +02:00
/**
*
*/
function extensions_init () {
do_action ( 'um_core_loaded' );
}
2018-03-19 16:31:49 +02:00
/**
* Include required core files used in admin and on the frontend.
*
* @since 2.0
*
* @return void
*/
public function includes () {
2024-09-06 15:03:50 +03:00
$this -> maybe_action_scheduler ();
2024-09-04 18:03:22 +02:00
2023-07-07 00:34:11 +03:00
$this -> common () -> includes ();
2024-09-04 18:03:22 +02:00
2021-07-23 15:53:07 +03:00
$this -> access ();
2018-03-19 16:31:49 +02:00
if ( $this -> is_request ( 'ajax' ) ) {
2023-07-07 00:34:11 +03:00
$this -> ajax () -> includes ();
2018-03-19 16:31:49 +02:00
$this -> admin ();
$this -> ajax_init ();
2018-10-26 14:06:45 +03:00
$this -> admin_ajax_hooks ();
2018-03-19 16:31:49 +02:00
$this -> metabox ();
2018-03-25 19:14:42 +03:00
$this -> admin_upgrade () -> init_packages_ajax_handlers ();
2018-05-22 11:17:18 +03:00
$this -> admin_gdpr ();
2018-06-22 16:47:54 +03:00
$this -> columns ();
2019-10-07 00:48:51 +03:00
$this -> admin () -> notices ();
2018-09-17 08:29:33 +03:00
$this -> admin_navmenu ();
2019-11-15 18:31:17 +02:00
$this -> plugin_updater ();
$this -> theme_updater ();
2018-03-19 16:31:49 +02:00
} elseif ( $this -> is_request ( 'admin' ) ) {
2023-07-07 00:34:11 +03:00
$this -> admin () -> includes ();
2018-03-19 16:31:49 +02:00
$this -> admin ();
$this -> admin_menu ();
$this -> admin_upgrade ();
$this -> admin_settings ();
$this -> columns ();
$this -> metabox ();
$this -> dragdrop ();
2018-05-22 11:17:18 +03:00
$this -> admin_gdpr ();
2018-09-17 08:29:33 +03:00
$this -> admin_navmenu ();
2019-11-15 18:31:17 +02:00
$this -> plugin_updater ();
2019-04-10 15:39:05 +03:00
$this -> theme_updater ();
2018-03-19 16:31:49 +02:00
} elseif ( $this -> is_request ( 'frontend' ) ) {
2023-07-07 00:34:11 +03:00
$this -> frontend () -> includes ();
2018-03-19 16:31:49 +02:00
$this -> login ();
$this -> register ();
$this -> user_posts ();
$this -> logout ();
}
//common includes
2024-01-12 11:03:04 +02:00
$this -> account ();
$this -> password ();
2018-04-13 14:35:01 +03:00
$this -> rewrite ();
2018-03-19 16:31:49 +02:00
$this -> mail ();
$this -> shortcodes ();
$this -> roles ();
$this -> user ();
$this -> profile ();
$this -> builtin ();
2024-10-02 13:47:42 +03:00
$this -> files ();
2023-11-03 17:31:18 +02:00
$this -> form () -> hooks ();
2018-03-19 16:31:49 +02:00
$this -> permalinks ();
$this -> cron ();
$this -> mobile ();
$this -> external_integrations ();
2018-05-22 11:17:18 +03:00
$this -> gdpr ();
2019-08-14 10:54:16 +03:00
$this -> member_directory ();
2023-03-29 11:48:51 +03:00
$this -> blocks ();
2023-07-01 17:48:45 +08:00
$this -> secure ();
2019-04-24 14:02:47 +03:00
2024-11-11 19:18:42 +02:00
// If multisite networks active
2019-04-24 14:02:47 +03:00
if ( is_multisite () ) {
$this -> multisite ();
}
2024-11-11 19:18:42 +02:00
// Call only when REST_API request
if ( defined ( 'REST_REQUEST' ) && REST_REQUEST ) {
$this -> rest_api ();
}
2018-11-28 11:13:51 +02:00
}
2019-08-14 10:54:16 +03:00
/**
* @since 2.1.0
*
* @return um\core\Member_Directory()
*/
function member_directory () {
if ( empty ( $this -> classes [ 'member_directory' ] ) ) {
2019-12-20 15:06:58 +02:00
$search_in_table = $this -> options () -> get ( 'member_directory_own_table' );
if ( ! empty ( $search_in_table ) ) {
$this -> classes [ 'member_directory' ] = new um\core\Member_Directory_Meta ();
} else {
$this -> classes [ 'member_directory' ] = new um\core\Member_Directory ();
}
2019-08-14 10:54:16 +03:00
}
return $this -> classes [ 'member_directory' ];
}
2023-03-29 11:48:51 +03:00
/**
* @since 2.6.1
*
* @return um\core\Blocks()
*/
public function blocks () {
if ( empty ( $this -> classes [ 'blocks' ] ) ) {
$this -> classes [ 'blocks' ] = new um\core\Blocks ();
}
return $this -> classes [ 'blocks' ];
}
2018-11-28 11:13:51 +02:00
/**
* Get extension API
*
* @since 2.0.34
*
* @param $slug
*
* @return um_ext\um_bbpress\Init
*/
function extension ( $slug ) {
if ( empty ( $this -> classes [ $slug ] ) ) {
$class = " um_ext \ um_ { $slug } \ Init " ;
/**
* @var $class um_ext\um_bbpress\Init
*/
$this -> classes [ $slug ] = $class :: instance ();
}
return $this -> classes [ $slug ];
}
/**
* @param $class
*
* @return mixed
*/
function call_class ( $class ) {
$key = strtolower ( $class );
if ( empty ( $this -> classes [ $key ] ) ) {
$this -> classes [ $key ] = new $class ;
}
return $this -> classes [ $key ];
2018-03-19 16:31:49 +02:00
}
2023-07-07 00:34:11 +03:00
/**
* @since 2.6.8
*
* @return um\ajax\Init
*/
public function ajax () {
if ( empty ( $this -> classes [ 'um\ajax\init' ] ) ) {
$this -> classes [ 'um\ajax\init' ] = new um\ajax\Init ();
}
return $this -> classes [ 'um\ajax\init' ];
}
2018-03-19 16:31:49 +02:00
/**
* @since 2.0
2023-07-07 00:34:11 +03:00
* @since 2.6.8 changed namespace and class content.
2018-03-19 16:31:49 +02:00
*
2023-07-07 00:34:11 +03:00
* @return um\common\Init
2018-03-19 16:31:49 +02:00
*/
2023-07-07 00:34:11 +03:00
public function common () {
if ( empty ( $this -> classes [ 'um\common\init' ] ) ) {
$this -> classes [ 'um\common\init' ] = new um\common\Init ();
2018-03-19 16:31:49 +02:00
}
2023-07-07 00:34:11 +03:00
return $this -> classes [ 'um\common\init' ];
2018-03-19 16:31:49 +02:00
}
2023-07-07 00:34:11 +03:00
/**
* @since 2.6.8
*
* @return um\frontend\Init
*/
public function frontend () {
if ( empty ( $this -> classes [ 'um\frontend\init' ] ) ) {
$this -> classes [ 'um\frontend\init' ] = new um\frontend\Init ();
}
return $this -> classes [ 'um\frontend\init' ];
}
2018-03-19 16:31:49 +02:00
/**
* @since 2.0
*
* @return um\core\External_Integrations()
*/
function external_integrations () {
if ( empty ( $this -> classes [ 'external_integrations' ] ) ) {
$this -> classes [ 'external_integrations' ] = new um\core\External_Integrations ();
}
return $this -> classes [ 'external_integrations' ];
}
/**
* @since 2.0
*
* @return um\core\Options()
*/
2017-12-11 09:53:38 +02:00
function options () {
if ( empty ( $this -> classes [ 'options' ] ) ) {
$this -> classes [ 'options' ] = new um\core\Options ();
}
return $this -> classes [ 'options' ];
}
2018-03-19 16:31:49 +02:00
/**
* @since 2.0
*
* @return um\core\Plugin_Updater()
*/
function plugin_updater () {
if ( empty ( $this -> classes [ 'plugin_updater' ] ) ) {
$this -> classes [ 'plugin_updater' ] = new um\core\Plugin_Updater ();
}
return $this -> classes [ 'plugin_updater' ];
}
2019-04-10 15:39:05 +03:00
/**
* @since 2.0.45
* @return um\admin\core\Admin_Theme_Updater()
*/
function theme_updater () {
if ( empty ( $this -> classes [ 'theme_updater' ] ) ) {
$this -> classes [ 'theme_updater' ] = new um\admin\core\Admin_Theme_Updater ();
}
return $this -> classes [ 'theme_updater' ];
}
2018-03-19 16:31:49 +02:00
/**
* @since 2.0
*/
function ajax_init () {
new um\core\AJAX_Common ();
}
2018-10-26 14:06:45 +03:00
/**
* @since 2.0.30
*/
function admin_ajax_hooks () {
if ( empty ( $this -> classes [ 'admin_ajax_hooks' ] ) ) {
$this -> classes [ 'admin_ajax_hooks' ] = new um\admin\core\Admin_Ajax_Hooks ();
}
return $this -> classes [ 'admin_ajax_hooks' ];
}
2018-03-19 16:31:49 +02:00
/**
* @since 2.0
*
2023-07-07 00:34:11 +03:00
* @return um\admin\Admin
2018-03-19 16:31:49 +02:00
*/
2023-07-07 00:34:11 +03:00
public function admin () {
2018-03-19 16:31:49 +02:00
if ( empty ( $this -> classes [ 'admin' ] ) ) {
$this -> classes [ 'admin' ] = new um\admin\Admin ();
}
return $this -> classes [ 'admin' ];
}
/**
* @since 2.0
*
* @return um\admin\core\Admin_Menu()
*/
function admin_menu () {
if ( empty ( $this -> classes [ 'admin_menu' ] ) ) {
$this -> classes [ 'admin_menu' ] = new um\admin\core\Admin_Menu ();
}
return $this -> classes [ 'admin_menu' ];
}
2018-09-17 08:29:33 +03:00
/**
* @since 2.0.26
*
* @return um\admin\core\Admin_Navmenu()
*/
function admin_navmenu () {
if ( empty ( $this -> classes [ 'admin_navmenu' ] ) ) {
$this -> classes [ 'admin_navmenu' ] = new um\admin\core\Admin_Navmenu ();
}
return $this -> classes [ 'admin_navmenu' ];
}
2018-03-19 16:31:49 +02:00
/**
* @since 2.0
*
* @return um\admin\core\Admin_Settings()
*/
function admin_settings () {
if ( empty ( $this -> classes [ 'admin_settings' ] ) ) {
$this -> classes [ 'admin_settings' ] = new um\admin\core\Admin_Settings ();
}
return $this -> classes [ 'admin_settings' ];
}
/**
* @since 2.0
*
* @return um\admin\core\Admin_Upgrade()
*/
function admin_upgrade () {
if ( empty ( $this -> classes [ 'admin_upgrade' ] ) ) {
2018-05-28 14:41:15 +03:00
$this -> classes [ 'admin_upgrade' ] = um\admin\core\Admin_Upgrade :: instance ();
//$this->classes['admin_upgrade'] = new um\admin\core\Admin_Upgrade();
2018-03-19 16:31:49 +02:00
}
return $this -> classes [ 'admin_upgrade' ];
}
2018-05-22 11:17:18 +03:00
/**
* GDPR privacy policy
*
* @since 2.0.14
*
* @return bool|um\admin\core\Admin_GDPR()
*/
function admin_gdpr () {
global $wp_version ;
if ( version_compare ( $wp_version , '4.9.6' , '<' ) ) {
return false ;
}
if ( empty ( $this -> classes [ 'admin_gdpr' ] ) ) {
$this -> classes [ 'admin_gdpr' ] = new um\admin\core\Admin_GDPR ();
}
return $this -> classes [ 'admin_gdpr' ];
}
/**
* GDPR privacy policy
*
* @since 2.0.14
*
* @return bool|um\core\GDPR()
*/
function gdpr () {
global $wp_version ;
if ( version_compare ( $wp_version , '4.9.6' , '<' ) ) {
return false ;
}
if ( empty ( $this -> classes [ 'gdpr' ] ) ) {
$this -> classes [ 'gdpr' ] = new um\core\GDPR ();
}
return $this -> classes [ 'gdpr' ];
}
2018-03-19 16:31:49 +02:00
/**
* @since 2.0
*
* @return um\admin\core\Admin_Columns()
*/
function columns () {
if ( empty ( $this -> classes [ 'admin_columns' ] ) ) {
$this -> classes [ 'admin_columns' ] = new um\admin\core\Admin_Columns ();
}
return $this -> classes [ 'admin_columns' ];
}
/**
* @since 2.0
2023-11-17 17:25:47 +02:00
* @deprecated 2.7.0
2018-03-19 16:31:49 +02:00
*
2023-09-14 01:08:48 +03:00
* @return um\admin\Enqueue
2018-03-19 16:31:49 +02:00
*/
2023-09-14 01:08:48 +03:00
public function admin_enqueue () {
2023-10-10 18:20:15 +03:00
_deprecated_function ( __METHOD__ , '2.7.0' , 'UM()->admin()->enqueue()' );
2023-09-14 01:08:48 +03:00
return $this -> admin () -> enqueue ();
2018-03-19 16:31:49 +02:00
}
2024-04-11 14:48:37 +03:00
/**
* @since 2.0
* @deprecated 2.8.6
*
* @return um\frontend\Modal
*/
function modal () {
_deprecated_function ( __METHOD__ , '2.8.6' , 'UM()->frontend()->modal()' );
return $this -> frontend () -> modal ();
}
2018-03-19 16:31:49 +02:00
/**
* @since 2.0
*
* @return um\admin\core\Admin_Metabox()
*/
function metabox () {
if ( empty ( $this -> classes [ 'admin_metabox' ] ) ) {
$this -> classes [ 'admin_metabox' ] = new um\admin\core\Admin_Metabox ();
}
return $this -> classes [ 'admin_metabox' ];
}
/**
* @since 2.0
*
* @return um\admin\core\Admin_Builder()
*/
function builder () {
if ( empty ( $this -> classes [ 'admin_builder' ] ) ) {
$this -> classes [ 'admin_builder' ] = new um\admin\core\Admin_Builder ();
}
return $this -> classes [ 'admin_builder' ];
}
/**
* @since 2.0
*
* @return um\admin\core\Admin_DragDrop()
*/
function dragdrop () {
if ( empty ( $this -> classes [ 'admin_dragdrop' ] ) ) {
$this -> classes [ 'admin_dragdrop' ] = new um\admin\core\Admin_DragDrop ();
}
return $this -> classes [ 'admin_dragdrop' ];
}
/**
* @since 2.0
*
2020-10-29 19:02:40 +02:00
* @param bool|array $data
2018-03-19 16:31:49 +02:00
* @return um\admin\core\Admin_Forms()
*/
2018-11-13 14:54:19 +02:00
function admin_forms ( $data = false ) {
2020-10-29 19:02:40 +02:00
if ( ! isset ( $this -> classes [ 'admin_forms_' . $data [ 'class' ] ] ) || empty ( $this -> classes [ 'admin_forms_' . $data [ 'class' ] ] ) ) {
$this -> classes [ 'admin_forms_' . $data [ 'class' ] ] = new um\admin\core\Admin_Forms ( $data );
2018-03-19 16:31:49 +02:00
}
2020-10-29 19:02:40 +02:00
return $this -> classes [ 'admin_forms_' . $data [ 'class' ] ];
2018-03-19 16:31:49 +02:00
}
/**
* @since 2.0
*
2020-10-29 19:02:40 +02:00
* @param bool|array $data
2018-03-19 16:31:49 +02:00
* @return um\admin\core\Admin_Forms_Settings()
*/
2018-11-13 14:54:19 +02:00
function admin_forms_settings ( $data = false ) {
2020-10-29 19:02:40 +02:00
if ( ! isset ( $this -> classes [ 'admin_forms_settings_' . $data [ 'class' ] ] ) || empty ( $this -> classes [ 'admin_forms_settings_' . $data [ 'class' ] ] ) ) {
$this -> classes [ 'admin_forms_settings_' . $data [ 'class' ] ] = new um\admin\core\Admin_Forms_Settings ( $data );
2018-03-19 16:31:49 +02:00
}
2020-10-29 19:02:40 +02:00
return $this -> classes [ 'admin_forms_settings_' . $data [ 'class' ] ];
2018-03-19 16:31:49 +02:00
}
2018-11-28 11:13:51 +02:00
/**
* @since 2.0.34
*
* @return um\Extensions
*/
function extensions () {
if ( empty ( $this -> classes [ 'extensions' ] ) ) {
$this -> classes [ 'extensions' ] = new um\Extensions ();
}
return $this -> classes [ 'extensions' ];
}
2018-03-19 16:31:49 +02:00
/**
* @since 2.0
*
* @return um\Dependencies
*/
function dependencies () {
if ( empty ( $this -> classes [ 'dependencies' ] ) ) {
$this -> classes [ 'dependencies' ] = new um\Dependencies ();
}
return $this -> classes [ 'dependencies' ];
}
/**
* @since 2.0
*
* @return um\Config
*/
function config () {
if ( empty ( $this -> classes [ 'config' ] ) ) {
$this -> classes [ 'config' ] = new um\Config ();
}
return $this -> classes [ 'config' ];
}
/**
* @since 2.0
*
2019-04-10 15:00:13 +03:00
* @return um\core\rest\API_v1|um\core\rest\API_v2
2018-03-19 16:31:49 +02:00
*/
2024-11-11 19:18:42 +02:00
public function rest_api () {
2019-04-10 15:00:13 +03:00
$api_version = $this -> options () -> get ( 'rest_api_version' );
2018-03-19 16:31:49 +02:00
if ( empty ( $this -> classes [ 'rest_api' ] ) ) {
2019-04-10 15:00:13 +03:00
if ( '1.0' === $api_version ) {
$this -> classes [ 'rest_api' ] = new um\core\rest\API_v1 ();
} elseif ( '2.0' === $api_version ) {
$this -> classes [ 'rest_api' ] = new um\core\rest\API_v2 ();
} else {
$this -> classes [ 'rest_api' ] = new um\core\rest\API_v1 ();
}
2018-03-19 16:31:49 +02:00
}
return $this -> classes [ 'rest_api' ];
}
/**
* @since 2.0
*
* @return um\core\Rewrite
*/
function rewrite () {
if ( empty ( $this -> classes [ 'rewrite' ] ) ) {
$this -> classes [ 'rewrite' ] = new um\core\Rewrite ();
}
return $this -> classes [ 'rewrite' ];
}
/**
* @since 2.0
*
* @return um\core\Setup
*/
function setup () {
if ( empty ( $this -> classes [ 'setup' ] ) ) {
$this -> classes [ 'setup' ] = new um\core\Setup ();
}
return $this -> classes [ 'setup' ];
}
/**
* @since 2.0
*
* @return um\core\FontIcons
*/
function fonticons () {
if ( empty ( $this -> classes [ 'fonticons' ] ) ) {
$this -> classes [ 'fonticons' ] = new um\core\FontIcons ();
}
return $this -> classes [ 'fonticons' ];
}
/**
* @since 2.0
*
* @return um\core\Login
*/
function login () {
if ( empty ( $this -> classes [ 'login' ] ) ) {
$this -> classes [ 'login' ] = new um\core\Login ();
}
return $this -> classes [ 'login' ];
}
/**
* @since 2.0
*
* @return um\core\Register
*/
function register () {
if ( empty ( $this -> classes [ 'register' ] ) ) {
$this -> classes [ 'register' ] = new um\core\Register ();
}
return $this -> classes [ 'register' ];
}
/**
* @since 2.0
2023-09-14 01:08:48 +03:00
* @todo Make it deprecated and review extensions.
2018-03-19 16:31:49 +02:00
*
2023-09-14 01:08:48 +03:00
* @return um\frontend\Enqueue
2018-03-19 16:31:49 +02:00
*/
2023-09-14 01:08:48 +03:00
public function enqueue () {
2023-10-10 18:20:15 +03:00
_deprecated_function ( __METHOD__ , '2.7.0' , 'UM()->frontend()->enqueue()' );
2023-09-14 01:08:48 +03:00
return $this -> frontend () -> enqueue ();
2018-03-19 16:31:49 +02:00
}
/**
* @since 2.0
*
* @return um\core\Shortcodes
*/
function shortcodes () {
if ( empty ( $this -> classes [ 'shortcodes' ] ) ) {
$this -> classes [ 'shortcodes' ] = new um\core\Shortcodes ();
}
return $this -> classes [ 'shortcodes' ];
}
/**
* @since 2.0
*
* @return um\core\Account
*/
function account () {
if ( empty ( $this -> classes [ 'account' ] ) ) {
$this -> classes [ 'account' ] = new um\core\Account ();
}
return $this -> classes [ 'account' ];
}
/**
* @since 2.0
*
* @return um\core\Password
*/
function password () {
if ( empty ( $this -> classes [ 'password' ] ) ) {
$this -> classes [ 'password' ] = new um\core\Password ();
}
return $this -> classes [ 'password' ];
}
/**
* @since 2.0
*
* @return um\core\Form
*/
2023-11-03 17:31:18 +02:00
public function form () {
2018-03-19 16:31:49 +02:00
if ( empty ( $this -> classes [ 'form' ] ) ) {
$this -> classes [ 'form' ] = new um\core\Form ();
}
return $this -> classes [ 'form' ];
}
/**
* @since 2.0
*
* @return um\core\Fields
*/
function fields () {
if ( empty ( $this -> classes [ 'fields' ] ) ) {
$this -> classes [ 'fields' ] = new um\core\Fields ();
}
return $this -> classes [ 'fields' ];
}
/**
* @since 2.0
*
* @return um\core\User
*/
function user () {
if ( empty ( $this -> classes [ 'user' ] ) ) {
$this -> classes [ 'user' ] = new um\core\User ();
}
return $this -> classes [ 'user' ];
}
/**
* @since 2.0
*
* @return um\core\Roles_Capabilities
*/
function roles () {
if ( empty ( $this -> classes [ 'roles' ] ) ) {
$this -> classes [ 'roles' ] = new um\core\Roles_Capabilities ();
}
return $this -> classes [ 'roles' ];
}
/**
* @since 2.0
*
* @return um\core\User_posts
*/
function user_posts () {
if ( empty ( $this -> classes [ 'user_posts' ] ) ) {
$this -> classes [ 'user_posts' ] = new um\core\User_posts ();
}
return $this -> classes [ 'user_posts' ];
}
/**
* @since 2.0
*
* @return um\core\Profile
*/
function profile () {
if ( empty ( $this -> classes [ 'profile' ] ) ) {
$this -> classes [ 'profile' ] = new um\core\Profile ();
}
return $this -> classes [ 'profile' ];
}
/**
* @since 2.0
*
* @return um\core\Query
*/
function query () {
if ( empty ( $this -> classes [ 'query' ] ) ) {
$this -> classes [ 'query' ] = new um\core\Query ();
}
return $this -> classes [ 'query' ];
}
/**
* @since 2.0
*
* @return um\core\Date_Time
*/
function datetime () {
if ( empty ( $this -> classes [ 'datetime' ] ) ) {
$this -> classes [ 'datetime' ] = new um\core\Date_Time ();
}
return $this -> classes [ 'datetime' ];
}
/**
* @since 2.0
*
* @return um\core\Builtin
*/
function builtin () {
if ( empty ( $this -> classes [ 'builtin' ] ) ) {
$this -> classes [ 'builtin' ] = new um\core\Builtin ();
}
return $this -> classes [ 'builtin' ];
}
/**
* @since 2.0
*
* @return um\core\Files
*/
2024-10-02 13:47:42 +03:00
public function files () {
2018-03-19 16:31:49 +02:00
if ( empty ( $this -> classes [ 'files' ] ) ) {
$this -> classes [ 'files' ] = new um\core\Files ();
}
return $this -> classes [ 'files' ];
}
2023-03-19 17:24:47 +02:00
2018-07-31 01:35:08 +08:00
/**
* @since 2.0.21
*
2018-08-07 12:38:19 +03:00
* @return um\core\Uploader
2018-07-31 01:35:08 +08:00
*/
function uploader () {
if ( empty ( $this -> classes [ 'uploader' ] ) ) {
$this -> classes [ 'uploader' ] = new um\core\Uploader ();
}
return $this -> classes [ 'uploader' ];
}
2018-03-19 16:31:49 +02:00
/**
* @since 2.0
*
* @return um\core\Validation
*/
function validation () {
if ( empty ( $this -> classes [ 'validation' ] ) ) {
$this -> classes [ 'validation' ] = new um\core\Validation ();
}
return $this -> classes [ 'validation' ];
}
/**
* @since 2.0
*
* @return um\core\Access
*/
function access () {
if ( empty ( $this -> classes [ 'access' ] ) ) {
$this -> classes [ 'access' ] = new um\core\Access ();
}
return $this -> classes [ 'access' ];
}
/**
* @since 2.0
*
* @return um\core\Permalinks
*/
function permalinks () {
if ( empty ( $this -> classes [ 'permalinks' ] ) ) {
$this -> classes [ 'permalinks' ] = new um\core\Permalinks ();
}
return $this -> classes [ 'permalinks' ];
}
/**
* @since 2.0
*
* @return um\core\Mail
*/
function mail () {
if ( empty ( $this -> classes [ 'mail' ] ) ) {
$this -> classes [ 'mail' ] = new um\core\Mail ();
}
return $this -> classes [ 'mail' ];
}
/**
2019-09-02 16:35:10 +03:00
* @deprecated 2.1.0
*
2018-03-19 16:31:49 +02:00
* @since 2.0
*
* @return um\core\Members
*/
function members () {
2019-09-02 16:35:10 +03:00
um_deprecated_function ( 'UM()->members()' , '2.1.0' , 'UM()->member_directory()' );
2018-03-19 16:31:49 +02:00
if ( empty ( $this -> classes [ 'members' ] ) ) {
$this -> classes [ 'members' ] = new um\core\Members ();
}
return $this -> classes [ 'members' ];
}
/**
* @since 2.0
*
* @return um\core\Logout
*/
function logout () {
if ( empty ( $this -> classes [ 'logout' ] ) ) {
$this -> classes [ 'logout' ] = new um\core\Logout ();
}
return $this -> classes [ 'logout' ];
}
/**
* @since 2.0
*
* @return um\core\Cron
*/
function cron () {
if ( empty ( $this -> classes [ 'cron' ] ) ) {
$this -> classes [ 'cron' ] = new um\core\Cron ();
}
return $this -> classes [ 'cron' ];
}
2018-10-26 14:06:45 +03:00
/**
* @since 2.0
*
* @return um\core\Templates
*/
function templates () {
if ( empty ( $this -> classes [ 'templates' ] ) ) {
$this -> classes [ 'templates' ] = new um\core\Templates ();
}
return $this -> classes [ 'templates' ];
}
2018-03-19 16:31:49 +02:00
/**
* @since 2.0
*
* @return um\lib\mobiledetect\Um_Mobile_Detect
*/
function mobile () {
if ( empty ( $this -> classes [ 'mobile' ] ) ) {
$this -> classes [ 'mobile' ] = new um\lib\mobiledetect\Um_Mobile_Detect ();
}
return $this -> classes [ 'mobile' ];
}
2019-05-13 14:16:11 +03:00
2019-04-24 14:02:47 +03:00
/**
* @since 2.0.44
*
2019-05-13 14:16:11 +03:00
* @return um\core\Multisite
2019-04-24 14:02:47 +03:00
*/
function multisite () {
if ( empty ( $this -> classes [ 'multisite' ] ) ) {
$this -> classes [ 'multisite' ] = new um\core\Multisite ();
}
return $this -> classes [ 'multisite' ];
}
2018-03-19 16:31:49 +02:00
2024-09-04 18:03:22 +02:00
/**
2024-11-06 17:13:38 +02:00
* Maybe include and init Action Scheduler.
*
* @since 2.9.0
2024-09-04 18:03:22 +02:00
*
* @return um\action_scheduler\Init
*/
2024-09-06 15:03:50 +03:00
public function maybe_action_scheduler () {
2024-09-04 18:03:22 +02:00
if ( empty ( $this -> classes [ 'action_scheduler' ] ) ) {
$this -> classes [ 'action_scheduler' ] = new um\action_scheduler\Init ();
}
return $this -> classes [ 'action_scheduler' ];
}
2024-11-19 22:58:04 +02:00
/**
* Checks if the new design is enabled.
*
* @return bool
*/
public function is_new_ui () {
return defined ( 'UM_DEV_MODE' ) && UM_DEV_MODE && $this -> options () -> get ( 'enable_new_ui' );
}
2018-03-19 16:31:49 +02:00
/**
* Include files with hooked filters/actions
*
* @since 2.0
*/
function init () {
ob_start ();
2017-07-26 14:57:52 +03:00
2018-03-19 16:31:49 +02:00
require_once 'core/um-actions-form.php' ;
require_once 'core/um-actions-access.php' ;
require_once 'core/um-actions-wpadmin.php' ;
require_once 'core/um-actions-ajax.php' ;
require_once 'core/um-actions-login.php' ;
require_once 'core/um-actions-register.php' ;
require_once 'core/um-actions-profile.php' ;
require_once 'core/um-actions-account.php' ;
require_once 'core/um-actions-global.php' ;
require_once 'core/um-actions-user.php' ;
require_once 'core/um-actions-save-profile.php' ;
require_once 'core/um-actions-misc.php' ;
require_once 'core/um-filters-login.php' ;
require_once 'core/um-filters-fields.php' ;
require_once 'core/um-filters-files.php' ;
require_once 'core/um-filters-navmenu.php' ;
require_once 'core/um-filters-avatars.php' ;
require_once 'core/um-filters-user.php' ;
2019-09-02 16:35:10 +03:00
2018-03-19 16:31:49 +02:00
require_once 'core/um-filters-profile.php' ;
require_once 'core/um-filters-account.php' ;
require_once 'core/um-filters-misc.php' ;
require_once 'core/um-filters-commenting.php' ;
}
/**
* Init UM widgets
*
* @since 2.0
*/
function widgets_init () {
register_widget ( 'um\widgets\UM_Search_Widget' );
}
}
2017-07-26 14:57:52 +03:00
}
2017-08-16 12:59:55 +03:00
/**
* Function for calling UM methods and variables
*
* @since 2.0
*
* @return UM
*/
2017-07-26 14:57:52 +03:00
function UM () {
2018-03-19 16:31:49 +02:00
return UM :: instance ();
2017-07-26 14:57:52 +03:00
}
2018-04-03 11:46:30 +03:00
2017-07-26 14:57:52 +03:00
// Global for backwards compatibility.
2021-07-23 15:53:07 +03:00
$GLOBALS [ 'ultimatemember' ] = UM ();