laipower/wp-content/plugins/easy-digital-downloads/src/Admin/SiteHealth/Information.php

87 lines
2.0 KiB
PHP

<?php
/**
* Filters the WordPress debug_information array to add EDD's data.
*
* @since 3.1.2
* @package EDD\Admin\SiteHealth
*/
namespace EDD\Admin\SiteHealth;
/**
* Registers the EDD information for the Site Health.
*
* @since 3.1.2
*/
class Information implements \EDD\EventManagement\SubscriberInterface {
/**
* Returns an array of events that this subscriber wants to listen to.
*
* @since 3.1.2
* @return array
*/
public static function get_subscribed_events() {
return array(
'admin_head-site-health.php' => 'maybe_filter_debug',
);
}
/**
* Adds the EDD filters to the debug information.
* Additionally, removes other filters on the information if using the
* EDD system info link.
*
* @since 3.1.2
* @return void
*/
public function maybe_filter_debug() {
if ( ! empty( $_GET['edd'] ) && 'filter' === $_GET['edd'] ) {
remove_all_filters( 'debug_information' );
}
add_filter( 'debug_information', array( $this, 'get_data' ) );
}
/**
* Gets the array of EDD sections for the Site Health.
*
* @since 3.1.2
* @param array $information The debug information.
* @return array
*/
public function get_data( $information ) {
return array_merge( $information, $this->get_edd_data() );
}
/**
* Gets all of the EDD data for the Site Health.
*
* @since 3.1.4
* @return array
*/
private function get_edd_data() {
$collectors = array(
'edd_general' => new General(),
'edd_tables' => new Tables(),
'edd_pages' => new Pages(),
'edd_templates' => new Templates(),
'edd_gateways' => new Gateways(),
'edd_taxes' => new Taxes(),
'edd_sessions' => new Sessions(),
);
$information = array();
foreach ( $collectors as $key => $class ) {
$information[ $key ] = $class->get();
}
/**
* Allow extensions to add their own debug information that's specific to EDD.
*
* @since 3.1.4
* @param array $information The debug information.
*/
return apply_filters( 'edd_debug_information', $information );
}
}