LLMS_Abstract_Options_Data
LifterLMS Options Table Data Store abstract
Source Source
File: includes/abstracts/llms.abstract.options.data.php
abstract class LLMS_Abstract_Options_Data { /** * Option name prefix. * * @var string */ protected $option_prefix = 'llms_'; /** * Options data abstract version * * This is used to determine the behavior of the `get_option()` method. * * Concrete classes should use version 2 in order to use the new (future default) * behavior of the method. * * @var int */ protected $version = 1; /** * Retrieve the value of an option from the database * * @since 3.8.0 * @since 4.21.0 Changed the behavior of the function when the concrete class defines `$this->version` greater than 1. * * @param string $name Option name (unprefixed). * @param mixed $default Default value to use if no option is found. * @return mixed The option value. */ public function get_option( $name, $default = false ) { $full_name = $this->get_option_name( $name ); // If the class is version 1, use the old method. if ( 1 === $this->version ) { // If only one argument is passed switch the default to the old argument default (an empty string). $default = 1 === func_num_args() ? '' : $default; return $this->get_option_deprecated( $full_name, $default ); } add_filter( "default_option_{$full_name}", array( $this, 'get_option_default_value' ), 10, 3 ); // Call this way so that the `$passed_default_value` of the filter is accurate based on the number of arguments actually passed. $args = func_num_args() > 1 ? array( $full_name, $default ) : array( $full_name ); $val = get_option( ...$args ); remove_filter( "default_option_{$full_name}", array( $this, 'get_option_default_value' ), 10, 3 ); return $val; } /** * Retrieve the value of an option from the database * * This is the "old" (to be deprecated) version of the function. * * We will transition extending classes little by little to use the new behavior and deprecate this once * all classes are fully transitioned. * * @since 4.21.0 * * @param string $name Full (prefixed) option name. * @param mixed $default Default value to use if no option is found. * @return mixed The option value. */ private function get_option_deprecated( $name, $default = '' ) { $val = get_option( $name, '' ); if ( '' === $val ) { return $default; } return $val; } /** * Option default value autoloader * * By default, this method does nothing but extending classes can implement an autoloader to pull * default values from other sources. * * This is a callback function for the WP core filter `default_option_{$option}`. * * @since 4.21.0 * * @param mixed $default_value The default value. If no value is passed to `get_option()`, this will be an empty string. * Otherwise it will be the default value passed to the method. * @param string $full_option_name The full (prefixed) option name. * @param bool $passed_default_value Whether or not a default value was passed to `get_option()`. * @return mixed The default option value. */ public function get_option_default_value( $default_value, $full_option_name, $passed_default_value ) { return $default_value; } /** * Retrieve a prefix for options * * @since 3.8.0 * * @return string */ protected function get_option_prefix() { return $this->option_prefix; } /** * Retrieve a prefixed option name from the database * Prefix automatically adds a trigger and type to the option name * in addition to llms_notification * * @since 3.8.0 * * @param string $name Option name (unprefixed). * @return string */ public function get_option_name( $name ) { return $this->get_option_prefix() . $name; } /** * Set the value of an option * * @since 3.17.8 * * @param string $name Option name (unprefixed). * @param mixed $value Option value. * @return bool Returns `true` if option value has changed and `false` if no update or the update failed. */ public function set_option( $name, $value ) { return update_option( $this->get_option_name( $name ), $value ); } }
Expand full source code Collapse full source code View on GitHub
Methods Methods
- get_option — Retrieve the value of an option from the database
- get_option_default_value — Option default value autoloader
- get_option_deprecated — Retrieve the value of an option from the database
- get_option_name — Retrieve a prefixed option name from the database Prefix automatically adds a trigger and type to the option name in addition to llms_notification
- get_option_prefix — Retrieve a prefix for options
- set_option — Set the value of an option
Changelog Changelog
Version | Description |
---|---|
3.8.0 | Introduced. |