File "option.php"

Full Path: /home/apmablcosr/www/wp-content/plugins/yoast-test-helper/src/option.php
File size: 1.48 KB
MIME-type: text/x-php
Charset: utf-8

<?php

namespace Yoast\WP\Test_Helper;

/**
 * Class to manage registering and rendering the admin page in WordPress.
 */
class Option {

	/**
	 * The name of our option.
	 *
	 * @var string
	 */
	private $option_name;

	/**
	 * Holds our options.
	 *
	 * @var array
	 */
	private $options;

	/**
	 * Option constructor.
	 *
	 * @param string $option_name The option to construct for.
	 */
	public function __construct( $option_name = 'yoast_test_helper' ) {
		$this->option_name = $option_name;
		$this->options     = $this->get_option();
	}

	/**
	 * Retrieve a single option.
	 *
	 * @param string $key The key to retrieve.
	 *
	 * @return mixed|null The content of the retrieved key.
	 */
	public function get( $key ) {
		return isset( $this->options[ $key ] ) ? $this->options[ $key ] : null;
	}

	/**
	 * Sets a single option.
	 *
	 * @param string $key   The key to set.
	 * @param mixed  $value The value to set key to.
	 *
	 * @return mixed|null The content of the retrieved key.
	 */
	public function set( $key, $value ) {
		$this->options[ $key ] = $value;

		return $this->save_options();
	}

	/**
	 * Returns the Test Helper option.
	 *
	 * @return array The Test Helper options.
	 */
	private function get_option() {
		return \get_option( $this->option_name );
	}

	/**
	 * Sets the Test Helper option.
	 *
	 * @return bool False if value was not updated and true if value was updated.
	 */
	private function save_options() {
		return \update_option( $this->option_name, $this->options, true );
	}
}