# redirection/5.4.2/models/redirect/redirect-options.php

Redirection, version 5.4.2. 63 lines.

- Page: https://pluginprobe.com/plugins/redirection/5.4.2/code/models/redirect/redirect-options.php
- Raw: https://pluginprobe.com/plugins/redirection/5.4.2/raw/models/redirect/redirect-options.php
- Modified: 2021-01-16T13:00:14+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/redirection/5.4.2/code/models/redirect/redirect-options.php#L10-L20`.

```php
<?php

/**
 * Options for a redirect source URL
 */
class Red_Source_Options {
	/**
	 * Exclude this from logging.
	 *
	 * @var boolean
	 */
	private $log_exclude = false;

	/**
	 * Constructor
	 *
	 * @param array|null $options Options.
	 */
	public function __construct( $options = null ) {
		if ( $options ) {
			$this->set_options( $options );
		}
	}

	/**
	 * Set options
	 *
	 * @param array $options Options.
	 * @return void
	 */
	public function set_options( $options ) {
		if ( isset( $options['log_exclude'] ) && $options['log_exclude'] === true ) {
			$this->log_exclude = true;
		}
	}

	/**
	 * Can this source be logged?
	 *
	 * @return boolean
	 */
	public function can_log() {
		$options = red_get_options();

		if ( isset( $options['expire_redirect'] ) && $options['expire_redirect'] !== -1 ) {
			return ! $this->log_exclude;
		}

		return false;
	}

	/**
	 * Get options as JSON
	 *
	 * @return array
	 */
	public function get_json() {
		return array_filter( [
			'log_exclude' => $this->log_exclude,
		] );
	}
}

```
