updateChecker = $updateChecker;
$title = sprintf(
'',
esc_attr( $this->updateChecker->slug ),
$this->updateChecker->slug
);
parent::Debug_Bar_Panel( $title );
}
public function render() {
printf(
'
',
esc_attr( $this->updateChecker->slug ),
esc_attr( wp_create_nonce( 'puc-ajax' ) )
);
$responseBox = '
';
echo '
Configuration
';
echo '
';
$this->row( 'Plugin file', htmlentities( $this->updateChecker->pluginFile ) );
$this->row( 'Slug', htmlentities( $this->updateChecker->slug ) );
$this->row( 'DB option', htmlentities( $this->updateChecker->optionName ) );
$requestInfoButton = function_exists( 'get_submit_button' ) ? get_submit_button( 'Request Info', 'secondary', 'puc-request-info-button', false ) : '';
$this->row( 'Metadata URL', htmlentities( $this->updateChecker->metadataUrl ) . ' ' . $requestInfoButton . $responseBox );
if ( $this->updateChecker->checkPeriod > 0 ) {
$this->row( 'Automatic checks', 'Every ' . $this->updateChecker->checkPeriod . ' hours' );
} else {
$this->row( 'Automatic checks', 'Disabled' );
}
echo '
';
echo '
Status
';
echo '
';
$state = $this->updateChecker->getUpdateState();
$checkNowButton = function_exists( 'get_submit_button' ) ? get_submit_button( 'Check Now', 'secondary', 'puc-check-now-button', false ) : '';
if ( isset( $state, $state->lastCheck ) ) {
$this->row( 'Last check', $this->formatTimeWithDelta( $state->lastCheck ) . ' ' . $checkNowButton . $responseBox );
} else {
$this->row( 'Last check', 'Never' );
}
$nextCheck = wp_next_scheduled( $this->updateChecker->getCronHookName() );
$this->row( 'Next automatic check', $this->formatTimeWithDelta( $nextCheck ) );
if ( isset( $state, $state->checkedVersion ) ) {
$this->row( 'Checked version', htmlentities( $state->checkedVersion ) );
$this->row( 'Cached update', $state->update );
}
$this->row( 'Update checker class', htmlentities( get_class( $this->updateChecker ) ) );
echo '
';
$update = $this->updateChecker->getUpdate();
if ( $update !== null ) {
echo '
An Update Is Available
';
echo '
';
$fields = array( 'version', 'download_url', 'slug', 'homepage', 'upgrade_notice' );
foreach ( $fields as $field ) {
$this->row( ucwords( str_replace( '_', ' ', $field ) ), htmlentities( $update->$field ) );
}
echo '
';
} else {
echo '
No updates currently available
';
}
echo '
';
}
private function formatTimeWithDelta( $unixTime ) {
if ( empty( $unixTime ) ) {
return 'Never';
}
$delta = time() - $unixTime;
$result = human_time_diff( time(), $unixTime );
if ( $delta < 0 ) {
$result = 'after ' . $result;
} else {
$result = $result . ' ago';
}
$result .= ' (' . $this->formatTimestamp( $unixTime ) . ')';
return $result;
}
private function formatTimestamp( $unixTime ) {
return gmdate( 'Y-m-d H:i:s', $unixTime + ( get_option( 'gmt_offset' ) * 3600 ) );
}
private function row( $name, $value ) {
if ( is_object( $value ) || is_array( $value ) ) {
$value = '' . htmlentities( print_r( $value, true ) ) . '
';
} else if ( $value === null ) {
$value = 'null';
}
printf( '| %1$s | %2$s |
', $name, $value );
}
}
}