LLMS_Abstract_Admin_Tool
Source Source
File: includes/abstracts/llms-abstract-admin-tool.php
abstract class LLMS_Abstract_Admin_Tool {
/**
* Tool ID
*
* @var string
*/
protected $id = '';
/**
* Tool Priority
*
* Passed to the `llms_status_tools` filter when registering the tool.
*
* @var integer
*/
protected $priority = 10;
/**
* Process the tool.
*
* This method should do whatever the tool actually does.
*
* By the time this tool is called a nonce and the user's capabilities have already been checked.
*
* @since 3.37.19
*
* @return mixed
*/
abstract protected function handle();
/**
* Retrieve a description of the tool
*
* This is displayed on the right side of the tool's list before the button.
*
* @since 3.37.19
*
* @return string
*/
abstract protected function get_description();
/**
* Retrieve the tool's label
*
* The label is the tool's title. It's displayed in the left column on the tool's list.
*
* @since 3.37.19
*
* @return string
*/
abstract protected function get_label();
/**
* Retrieve the tool's button text
*
* @since 3.37.19
*
* @return string
*/
abstract protected function get_text();
/**
* Static constructor.
*
* @since 3.37.19
*
* @return void
*/
public function __construct() {
add_action( 'llms_status_tool', array( $this, 'maybe_handle' ) );
add_filter( 'llms_status_tools', array( $this, 'register' ), $this->priority );
}
/**
* Processes the tool if the submitted tool matches the tool's ID.
*
* @since 3.37.19
* @since 5.0.0 Add before and after action hooks.
*
* @param string tool_id ID of the submitted tool.
* @return mixed|false
*/
public function maybe_handle( $tool_id ) {
if ( $this->should_load() && $this->id === $tool_id ) {
/**
* Action run prior to running an admin tool's main `handle()` method.
*
* The dynamic portion of this hook `{$tool_id}` refers to the unique ID
* of the admin tool.
*
* @since 5.0.0
*
* @param object $tool_class Instance of the extending tool class.
*/
do_action( "llms_before_handle_tool_{$tool_id}", $this );
$handled = $this->handle();
/**
* Action run prior to running an admin tool's main `handle()` method.
*
* The dynamic portion of this hook `{$tool_id}` refers to the unique ID
* of the admin tool.
*
* @since 5.0.0
*
* @param object $tool_class Instance of the extending tool class.
*/
do_action( "llms_after_handle_tool_{$tool_id}", $this );
return $handled;
}
return false;
}
/**
* Register the tool.
*
* @since 3.37.19
*
* @see llms_status_tools (filter)
*
* @param array[] $tools Array of tool definitions.
* @return array[]
*/
public function register( $tools ) {
if ( ! $this->should_load() ) {
return $tools;
}
$tools[ $this->id ] = array(
'description' => $this->get_description(),
'label' => $this->get_label(),
'text' => $this->get_text(),
);
return $tools;
}
/**
* Conditionally load the tool
*
* This stub can be overridden by the tool to provide custom logic to determine
* whether or not the tool should be loaded and registered.
*
* @since 3.37.19
*
* @return boolean Return `true` to load the tool and `false` to not load it.
*/
protected function should_load() {
return true;
}
}
Expand full source code Collapse full source code View on GitHub
Methods Methods
- __construct — Static constructor.
- get_description — Retrieve a description of the tool
- get_label — Retrieve the tool's label
- get_text — Retrieve the tool's button text
- handle — Process the tool.
- maybe_handle — Processes the tool if the submitted tool matches the tool's ID.
- register — Register the tool.
- should_load — Conditionally load the tool
Changelog Changelog
| Version | Description |
|---|---|
| 3.37.19 | Introduced. |