Files
ultimatemember/includes/common/class-init.php
T

130 lines
2.5 KiB
PHP
Raw Normal View History

2023-07-07 00:34:11 +03:00
<?php
namespace um\common;
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
if ( ! class_exists( 'um\common\Init' ) ) {
/**
* Class Init
*
* @package um\common
*/
class Init {
/**
* Create classes' instances where __construct isn't empty for hooks init
*
* @used-by \UM::includes()
*/
public function includes() {
2024-09-06 15:03:50 +03:00
$this->actions();
2023-07-07 00:34:11 +03:00
$this->cpt()->hooks();
$this->screen();
$this->secure()->hooks();
2023-07-11 17:59:54 +03:00
$this->site_health();
$this->theme()->hooks();
2024-09-20 18:41:08 +03:00
$this->users()->hooks();
2023-07-07 00:34:11 +03:00
}
2024-09-06 15:03:50 +03:00
/**
2024-11-06 17:13:38 +02:00
* Init actions that can be scheduled via Action Scheduler.
2024-09-06 15:03:50 +03:00
*
2024-11-06 17:13:38 +02:00
* @since 2.9.0
2024-09-06 15:03:50 +03:00
*/
private function actions() {
if ( empty( UM()->classes['um\common\actions\emails'] ) ) {
UM()->classes['um\common\actions\emails'] = new actions\Emails();
}
2024-11-06 17:13:38 +02:00
// Other classes init here as soon as possible.
2024-09-06 15:03:50 +03:00
}
2023-07-07 00:34:11 +03:00
/**
* @since 2.6.8
*
* @return CPT
*/
public function cpt() {
if ( empty( UM()->classes['um\common\cpt'] ) ) {
UM()->classes['um\common\cpt'] = new CPT();
}
return UM()->classes['um\common\cpt'];
}
/**
* @since 2.8.7
*
* @return Filesystem
*/
public function filesystem() {
if ( empty( UM()->classes['um\common\filesystem'] ) ) {
UM()->classes['um\common\filesystem'] = new Filesystem();
}
return UM()->classes['um\common\filesystem'];
}
2023-07-07 00:34:11 +03:00
/**
* @since 2.6.8
*
* @return Screen
*/
public function screen() {
if ( empty( UM()->classes['um\common\screen'] ) ) {
UM()->classes['um\common\screen'] = new Screen();
}
return UM()->classes['um\common\screen'];
}
/**
* @since 2.6.8
*
* @return Secure
*/
public function secure() {
if ( empty( UM()->classes['um\common\secure'] ) ) {
UM()->classes['um\common\secure'] = new Secure();
}
return UM()->classes['um\common\secure'];
}
2023-07-11 17:59:54 +03:00
/**
* @since 2.6.8
*
* @return Site_Health
*/
public function site_health() {
if ( empty( UM()->classes['um\common\site_health'] ) ) {
UM()->classes['um\common\site_health'] = new Site_Health();
}
return UM()->classes['um\common\site_health'];
}
/**
* @since 2.8.3
*
* @return Theme
*/
public function theme() {
if ( empty( UM()->classes['um\common\theme'] ) ) {
UM()->classes['um\common\theme'] = new Theme();
}
return UM()->classes['um\common\theme'];
}
2024-09-20 18:41:08 +03:00
/**
* @since 2.8.7
*
* @return Users
*/
public function users() {
if ( empty( UM()->classes['um\common\users'] ) ) {
UM()->classes['um\common\users'] = new Users();
}
return UM()->classes['um\common\users'];
}
2023-07-07 00:34:11 +03:00
}
}