2024-05-06 11:04:37 +07:00

59 lines
2.7 KiB
PHP

<?php
namespace ElementorPro\Modules\DisplayConditions\Classes;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly
}
class Comparator_Provider {
private static array $comparators = [];
public const COMPARATOR_IS = 'is';
public const COMPARATOR_IS_NOT = 'is_not';
public const COMPARATOR_IS_ONE_OF = 'is_one_of';
public const COMPARATOR_IS_NONE_OF = 'is_none_of';
public const COMPARATOR_CONTAINS = 'contains';
public const COMPARATOR_NOT_CONTAIN = 'not_contain';
public const COMPARATOR_IS_BEFORE = 'is_before';
public const COMPARATOR_IS_AFTER = 'is_after';
public const COMPARATOR_IS_LESS_THAN_INCLUSIVE = 'is_less_than_inclusive';
public const COMPARATOR_IS_GREATER_THAN_INCLUSIVE = 'is_greater_than_inclusive';
public const COMPARATOR_IS_BEFORE_INCLUSIVE = 'is_before_inclusive';
public const COMPARATOR_IS_AFTER_INCLUSIVE = 'is_after_inclusive';
public const COMPARATOR_IS_EMPTY = 'is_empty';
public const COMPARATOR_IS_NOT_EMPTY = 'is_not_empty';
public static function get_comparators( array $comparators ): array {
self::init_comparators_array_if_empty();
return array_intersect_key( self::$comparators, array_flip( $comparators ) );
}
/**
* @return void
*/
private static function init_comparators_array_if_empty(): void {
if ( ! empty( self::$comparators ) ) {
return;
}
self::$comparators[ static::COMPARATOR_IS ] = esc_html__( 'Is', 'elementor-pro' );
self::$comparators[ static::COMPARATOR_IS_NOT ] = esc_html__( 'Is Not', 'elementor-pro' );
self::$comparators[ static::COMPARATOR_IS_ONE_OF ] = esc_html__( 'Is', 'elementor-pro' );
self::$comparators[ static::COMPARATOR_IS_NONE_OF ] = esc_html__( 'Is Not', 'elementor-pro' );
self::$comparators[ static::COMPARATOR_CONTAINS ] = esc_html__( 'Contains', 'elementor-pro' );
self::$comparators[ static::COMPARATOR_NOT_CONTAIN ] = esc_html__( 'Does not contain', 'elementor-pro' );
self::$comparators[ static::COMPARATOR_IS_BEFORE ] = esc_html__( 'Is Before', 'elementor-pro' );
self::$comparators[ static::COMPARATOR_IS_AFTER ] = esc_html__( 'Is After', 'elementor-pro' );
self::$comparators[ static::COMPARATOR_IS_LESS_THAN_INCLUSIVE ] = esc_html__( 'Less than or equal', 'elementor-pro' );
self::$comparators[ static::COMPARATOR_IS_GREATER_THAN_INCLUSIVE ] = esc_html__( 'Greater than or equal', 'elementor-pro' );
self::$comparators[ static::COMPARATOR_IS_BEFORE_INCLUSIVE ] = esc_html__( 'Is on or before', 'elementor-pro' );
self::$comparators[ static::COMPARATOR_IS_AFTER_INCLUSIVE ] = esc_html__( 'Is on or after', 'elementor-pro' );
self::$comparators[ static::COMPARATOR_IS_EMPTY ] = esc_html__( 'Is Empty', 'elementor-pro' );
self::$comparators[ static::COMPARATOR_IS_NOT_EMPTY ] = esc_html__( 'Is not Empty', 'elementor-pro' );
}
}