Server IP : 104.21.14.103 / Your IP : 3.137.178.122 Web Server : LiteSpeed System : Linux business53.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64 User : giankuin ( 1871) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/self/root/proc/thread-self/root/proc/thread-self/root/home/giankuin/thietke365.net/wp-content/plugins/woocommerce/src/Admin/RemoteInboxNotifications/ |
Upload File : |
<?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 = $this->get_option_value( $rule, $default, $is_contains ); 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 ); } /** * Retrieves the option value and handles logging if necessary. * * @param object $rule The specific rule being processed. * @param mixed $default The default value. * @param bool $is_contains Indicates whether the operation is "contains". * * @return mixed The option value. */ private function get_option_value( $rule, $default, $is_contains ) { $option_value = get_option( $rule->option_name, $default ); $is_contains_valid = $is_contains && ( is_array( $option_value ) || ( is_string( $option_value ) && is_string( $rule->value ) ) ); if ( $is_contains && ! $is_contains_valid ) { $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(); } return $option_value; } /** * 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; } }