Skip to content

Commit

Permalink
Merge branch 'release/1.2.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
jakubmikita committed Jan 20, 2022
2 parents dfbbb16 + 4ea8624 commit 114d49d
Show file tree
Hide file tree
Showing 4 changed files with 67 additions and 9 deletions.
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
# Changelog
All notable changes to this project will be documented in this file.

## 1.2.0

### Added
- `kill` method allowing to display the requirement message as a content of `wp_die`.

## 1.1.3

### Fixed
Expand Down
54 changes: 47 additions & 7 deletions src/Requirements.php
Original file line number Diff line number Diff line change
Expand Up @@ -225,28 +225,68 @@ public function satisfied() {
}

/**
* Prints notice
* Returns message with requirements info if any of them is not met.
*
* @since 1.0.0
* @since 1.2.0
* @param string|null $message Message to display.
* @return void
* @return string|null Message or null if requirements are met.
*/
public function print_notice( $message = null ) {
protected function get_message( $message = null ) {
if ( $this->satisfied() ) {
return;
return null;
}

if ( null === $message ) {
$message = sprintf(
if ( ! is_string( $message ) || '' === $message ) {
return sprintf(
// Translators: Plugin name.
__( 'The plugin: <strong>%s</strong> cannot be activated.', self::$textdomain ),
esc_html( $this->plugin_name )
);
}

return $message;
}

/**
* Prints notice
*
* @since 1.0.0
* @param string|null $message Message to display.
* @return void
*/
public function print_notice( $message = null ) {
$message = $this->get_message( $message );

if ( null === $message ) {
return;
}

add_action( 'admin_notices', function() use ( $message ) {
include __DIR__ . '/notice.php';
} );
}

/**
* Runs wp_die with proper message if any of the checks failed.
* This method shoudl be used interchangeably with `print_notice`.
*
* @since 1.2.0
* @param string|null $message Message to display.
* @return void
*/
public function kill( $message = null ) {
$message = $this->get_message( $message );

if ( null === $message ) {
return;
}

ob_start();

include __DIR__ . '/die-message.php';

// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
wp_die( ob_get_clean(), wp_strip_all_tags( $message ) );
}

}
15 changes: 15 additions & 0 deletions src/die-message.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?php
/**
* `wp_die` message template
*
* @package micropackage/requirements
*/

?>
<h1><?php echo wp_kses_post( $message ); ?></h1>

<ul>
<?php foreach ( $this->errors as $error ) : ?>
<li><?php echo esc_html( $error ); ?></li>
<?php endforeach; ?>
</ul>
2 changes: 0 additions & 2 deletions src/notice.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@
* @package micropackage/requirements
*/

use Micropackage\Requirements\Requirements;

?>
<div class="error">
<p><?php echo wp_kses_post( $message ); ?></p>
Expand Down

0 comments on commit 114d49d

Please sign in to comment.