*/
public function get_next_run() {
if ( false === $this->is_pro ) {
return esc_html__( 'Never', 'wpdef' );
}
$modules = $this->get_active_pro_reports_as_objects();
$next_run = null;
foreach ( $modules as $module ) {
if ( \WP_Defender\Model\Notification::STATUS_ACTIVE !== $module->status ) {
continue;
}
if ( is_null( $next_run ) ) {
$next_run = $module;
} elseif ( $module->est_timestamp < $next_run->est_timestamp ) {
$next_run = $module;
}
}
if ( is_null( $next_run ) ) {
return esc_html__( 'Never', 'wpdef' );
}
return $next_run->get_next_run_as_string();
}
/**
* Get inactive modules.
*
* @return array
* @since 2.7.0 Malware Scanning - Reporting may be inactive.
*/
public function get_inactive_modules(): array {
if ( false === $this->is_pro ) {
return array();
}
$modules = array();
if ( false === wd_di()->get( \WP_Defender\Model\Setting\Scan::class )->scheduled_scanning ) {
$module = wd_di()->get( Malware_Report::class )->export();
$module['link'] = network_admin_url( 'admin.php?page=wdf-scan&view=settings&enable=scheduled_scanning#setting_scheduled_scanning' );
$modules[] = $module;
}
if ( false === wd_di()->get( Audit_Logging::class )->is_active() ) {
$module = wd_di()->get( Audit_Report::class )->export();
$module['link'] = network_admin_url( 'admin.php?page=wdf-logging&view=logs' );
$modules[] = $module;
}
return $modules;
}
/**
* Get active modules of Pro reports as array of arrays.
*
* @return array
*/
public function get_active_pro_reports(): array {
$modules = array();
// Malware_Report.
if ( true === wd_di()->get( \WP_Defender\Model\Setting\Scan::class )->scheduled_scanning ) {
$modules[] = wd_di()->get( Malware_Report::class )->export();
}
// Firewall_Report.
$modules[] = wd_di()->get( Firewall_Report::class )->export();
// Audit_Report.
if ( true === wd_di()->get( Audit_Logging::class )->is_active() ) {
$modules[] = wd_di()->get( Audit_Report::class )->export();
}
return $modules;
}
/**
* Get active modules of Pro reports as array of objects.
*
* @return array
*/
public function get_active_pro_reports_as_objects(): array {
$modules = array();
// Malware_Report.
if ( true === wd_di()->get( \WP_Defender\Model\Setting\Scan::class )->scheduled_scanning ) {
$modules[] = wd_di()->get( Malware_Report::class );
}
// Firewall_Report.
$modules[] = wd_di()->get( Firewall_Report::class );
// Audit_Report.
if ( true === wd_di()->get( Audit_Logging::class )->is_active() ) {
$modules[] = wd_di()->get( Audit_Report::class );
}
return $modules;
}
/**
* Counts the number of active modules.
*
* @return int Number of active modules.
*/
public function count_active(): int {
$count = 0;
foreach ( $this->get_modules() as $module ) {
if ( \WP_Defender\Model\Notification::STATUS_ACTIVE === $module['status'] ) {
++$count;
}
}
return $count;
}
/**
* Dispatches reports if conditions are met.
*/
public function maybe_dispatch_report() {
$modules = array( wd_di()->get( Tweak_Reminder::class ) );
if ( true === $this->is_pro ) {
$modules = array_merge( $modules, $this->get_active_pro_reports_as_objects() );
}
foreach ( $modules as $module ) {
if ( $module->maybe_send() ) {
$module->send();
}
}
}
/**
* Get available user roles with user count.
*
* @return array Return user roles with user count.
*/
public function get_user_roles(): array {
$user_roles = count_users();
if ( isset( $user_roles['avail_roles'] ) ) {
foreach ( $user_roles['avail_roles'] as $key => $value ) {
if ( 0 === $value ) {
unset( $user_roles['avail_roles'][ $key ] );
}
}
}
return $user_roles;
}
}
Fatal error: Uncaught WPMU_DEV\Defender\Vendor\DI\NotFoundException: No entry or class found for 'WP_Defender\Component\Notification' in /var/www/html/gtisolution.com.br/web/wp-content/plugins/wp-defender/lib/packages/DI/Container.php:136
Stack trace:
#0 /var/www/html/gtisolution.com.br/web/wp-content/plugins/wp-defender/src/controller/class-notification.php(70): WPMU_DEV\Defender\Vendor\DI\Container->get('WP_Defender\\Com...')
#1 /var/www/html/gtisolution.com.br/web/wp-content/plugins/wp-defender/lib/packages/DI/Definition/Resolver/ObjectCreator.php(143): WP_Defender\Controller\Notification->__construct()
#2 /var/www/html/gtisolution.com.br/web/wp-content/plugins/wp-defender/lib/packages/DI/Definition/Resolver/ObjectCreator.php(71): WPMU_DEV\Defender\Vendor\DI\Definition\Resolver\ObjectCreator->createInstance(Object(WPMU_DEV\Defender\Vendor\DI\Definition\ObjectDefinition), Array)
#3 /var/www/html/gtisolution.com.br/web/wp-content/plugins/wp-defender/lib/packages/DI/Definition/Resolver/ResolverDispatcher.php(71): WPMU_DEV in /var/www/html/gtisolution.com.br/web/wp-content/plugins/wp-defender/lib/packages/DI/Definition/Resolver/ObjectCreator.php on line 147