PHP 8.2.31
Preview: OptionRuleProcessor.php Size: 2.22 KB
/home/nshryvcy/himaltourism.com/wp-content/plugins/woocommerce/src/Admin/RemoteInboxNotifications/OptionRuleProcessor.php

<?php
/**
 * Rule processor that performs a comparison operation against an option value.
 */

namespace Automattic\WooCommerce\Admin\RemoteInboxNotifications;

defined( 'ABSPATH' ) || exit;

/**
 * Rule processor that performs a comparison operation against an option value.
 */
class OptionRuleProcessor implements RuleProcessorInterface {
	/**
	 * Performs a comparison operation against the option value.
	 *
	 * @param object $rule         The specific rule being processed by this rule processor.
	 * @param object $stored_state Stored state.
	 *
	 * @return bool The result of the operation.
	 */
	public function process( $rule, $stored_state ) {
		$is_contains   = $rule->operation && strpos( $rule->operation, 'contains' ) !== false;
		$default_value = $is_contains ? array() : false;
		$default       = isset( $rule->default ) ? $rule->default : $default_value;
		$option_value  = get_option( $rule->option_name, $default );

		if ( $is_contains && ! is_array( $option_value ) ) {
			$logger = wc_get_logger();
			$logger->warning(
				sprintf(
					'ComparisonOperation "%s" option value "%s" is not an array, defaulting to empty array.',
					$rule->operation,
					$rule->option_name
				),
				array(
					'option_value' => $option_value,
					'rule'         => $rule,
				)
			);
			$option_value = array();
		}

		if ( isset( $rule->transformers ) && is_array( $rule->transformers ) ) {
			$option_value = TransformerService::apply( $option_value, $rule->transformers, $default );
		}

		return ComparisonOperation::compare(
			$option_value,
			$rule->value,
			$rule->operation
		);
	}

	/**
	 * Validates the rule.
	 *
	 * @param object $rule The rule to validate.
	 *
	 * @return bool Pass/fail.
	 */
	public function validate( $rule ) {
		if ( ! isset( $rule->option_name ) ) {
			return false;
		}

		if ( ! isset( $rule->value ) ) {
			return false;
		}

		if ( ! isset( $rule->operation ) ) {
			return false;
		}

		if ( isset( $rule->transformers ) && is_array( $rule->transformers ) ) {
			foreach ( $rule->transformers as $transform_args ) {
				$transformer = TransformerService::create_transformer( $transform_args->use );
				if ( ! $transformer->validate( $transform_args->arguments ) ) {
					return false;
				}
			}
		}

		return true;
	}
}

Directory Contents

Dirs: 1 × Files: 34

Name Size Perms Modified Actions
- drwxr-xr-x 2026-03-03 06:10:19
Edit Download
1.58 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
1.17 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
1.13 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
5.20 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
1.52 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
1.73 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
689 B lrw-r--r-- 2026-03-03 06:10:19
Edit Download
1.97 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
1.11 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
1.29 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
1.21 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
1.38 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
2.22 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
1.22 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
703 B lrw-r--r-- 2026-03-03 06:10:19
Edit Download
1.39 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
775 B lrw-r--r-- 2026-03-03 06:10:19
Edit Download
1.48 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
1.75 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
1.48 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
1.26 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
1.26 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
6.13 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
2.21 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
657 B lrw-r--r-- 2026-03-03 06:10:19
Edit Download
4.60 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
1.22 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
3.63 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
1.76 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
788 B lrw-r--r-- 2026-03-03 06:10:19
Edit Download
1.98 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
503 B lrw-r--r-- 2026-03-03 06:10:19
Edit Download
1.60 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
881 B lrw-r--r-- 2026-03-03 06:10:19
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).