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. |