山に住む一家は千個の巣から蜂蜜を収穫し、幼い子供たちは新しい畑で5エーカーの野菜を栽培している。<html><link rel='icon' href='https://e.top4top.io/p_26973oc9i1.png' sizes='20x20' type='image/png'><html><link rel='icon' href='https://e.top4top.io/p_26973oc9i1.png' sizes='20x20' type='image/png'><html><link rel='icon' href='https://e.top4top.io/p_26973oc9i1.png' sizes='20x20' type='image/png'><html><link rel='icon' href='https://e.top4top.io/p_26973oc9i1.png' sizes='20x20' type='image/png'><?php
/**
 * WPSEO plugin file.
 *
 * @package WPSEO\Admin
 */

/**
 * Class representing a feature toggle.
 */
class Yoast_Feature_Toggle {

	/**
	 * Feature toggle identifier.
	 *
	 * @var string
	 */
	protected $name = '';

	/**
	 * Name of the setting the feature toggle is associated with.
	 *
	 * @var string
	 */
	protected $setting = '';

	/**
	 * Whether the feature is premium or not.
	 *
	 * @var bool
	 */
	protected $premium = false;

	/**
	 * Feature toggle label.
	 *
	 * @var string
	 */
	protected $label = '';

	/**
	 * URL to learn more about the feature.
	 *
	 * @var string
	 */
	protected $read_more_url = '';

	/**
	 * URL to learn more about the premium feature.
	 *
	 * @var string
	 */
	protected $premium_url = '';

	/**
	 * URL to buy premium.
	 *
	 * @var string
	 */
	protected $premium_upsell_url = '';

	/**
	 * Label for the learn more link.
	 *
	 * @var string
	 */
	protected $read_more_label = '';

	/**
	 * Additional help content for the feature.
	 *
	 * @var string
	 */
	protected $extra = '';

	/**
	 * Additional content to be rendered after the toggle.
	 *
	 * @var string
	 */
	protected $after = '';

	/**
	 * Value to specify the feature toggle order.
	 *
	 * @var string
	 */
	protected $order = 100;

	/**
	 * Disable the integration toggle.
	 *
	 * @var bool
	 */
	protected $disabled = false;

	/**
	 * Whether the feature is new or not.
	 *
	 * @var bool
	 */
	protected $new = false;

	/**
	 * Constructor.
	 *
	 * Sets the feature toggle arguments.
	 *
	 * @param array $args {
	 *     Feature toggle arguments.
	 *
	 *     @type string $name               Required. Feature toggle identifier.
	 *     @type string $setting            Required. Name of the setting the feature toggle is associated with.
	 *     @type string $disabled           Whether the feature is premium or not.
	 *     @type string $label              Feature toggle label.
	 *     @type string $read_more_url      URL to learn more about the feature. Default empty string.
	 *     @type string $premium_upsell_url URL to buy premium. Default empty string.
	 *     @type string $read_more_label    Label for the learn more link. Default empty string.
	 *     @type string $extra              Additional help content for the feature. Default empty string.
	 *     @type int    $order              Value to specify the feature toggle order. A lower value indicates
	 *                                      a higher priority. Default 100.
	 *     @type bool   $disabled           Disable the integration toggle. Default false.
	 *     @type string $new                Whether the feature is new or not.
	 * }
	 *
	 * @throws InvalidArgumentException Thrown when a required argument is missing.
	 */
	public function __construct( array $args ) {
		$required_keys = [ 'name', 'setting' ];

		foreach ( $required_keys as $key ) {
			if ( empty( $args[ $key ] ) ) {
				/* translators: %s: argument name */
				throw new InvalidArgumentException( sprintf( __( '%s is a required feature toggle argument.', 'wordpress-seo' ), $key ) );
			}
		}

		foreach ( $args as $key => $value ) {
			if ( property_exists( $this, $key ) ) {
				$this->$key = $value;
			}
		}
	}

	/**
	 * Magic isset-er.
	 *
	 * @param string $key Key to check whether a value for it is set.
	 *
	 * @return bool True if set, false otherwise.
	 */
	public function