mirror of
https://github.com/10h30/ultimatemember.git
synced 2026-06-05 15:09:37 +09:00
c8bd79fceb
Introduce a new `Users` class to handle scheduled tasks for user status checks and batch processing. Refactor user approval functionality to allow silent operations and avoid sending notifications where unnecessary. Enhance user registration to prevent unfinished registrations from being processed in scheduled checks.
134 lines
2.7 KiB
PHP
134 lines
2.7 KiB
PHP
<?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() {
|
|
$this->actions();
|
|
|
|
$this->cpt()->hooks();
|
|
$this->screen();
|
|
$this->secure()->hooks();
|
|
$this->site_health();
|
|
$this->theme()->hooks();
|
|
$this->users()->hooks();
|
|
}
|
|
|
|
/**
|
|
* Init actions that can be scheduled via Action Scheduler.
|
|
*
|
|
* @since 2.9.0
|
|
*/
|
|
private function actions() {
|
|
if ( empty( UM()->classes['um\common\actions\emails'] ) ) {
|
|
UM()->classes['um\common\actions\emails'] = new actions\Emails();
|
|
}
|
|
|
|
if ( empty( UM()->classes['um\common\actions\users'] ) ) {
|
|
UM()->classes['um\common\actions\users'] = new actions\Users();
|
|
}
|
|
// Other classes init here as soon as possible.
|
|
}
|
|
|
|
/**
|
|
* @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'];
|
|
}
|
|
|
|
/**
|
|
* @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'];
|
|
}
|
|
|
|
/**
|
|
* @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'];
|
|
}
|
|
|
|
/**
|
|
* @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'];
|
|
}
|
|
}
|
|
}
|