Files
roi-theme/wp-content/plugins/thrive-visual-editor/inc/classes/conditional-display/abstract/class-condition.php
root a22573bf0b Commit inicial - WordPress Análisis de Precios Unitarios
- WordPress core y plugins
- Tema Twenty Twenty-Four configurado
- Plugin allow-unfiltered-html.php simplificado
- .gitignore configurado para excluir wp-config.php y uploads

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-03 21:04:30 -06:00

133 lines
2.6 KiB
PHP
Executable File

<?php
/**
* Thrive Themes - https://thrivethemes.com
*
* @package thrive-visual-editor
*/
namespace TCB\ConditionalDisplay;
use TCB\ConditionalDisplay\Traits\Item;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Silence is golden!
}
abstract class Condition {
use Item;
private $value;
private $operator;
private $um;
private $extra;
public function __construct( $data ) {
$this->prepare_data( $data );
}
public function prepare_data( $data ) {
$this->value = empty( $data['value'] ) ? '' : $data['value'];
if ( ! empty( $data['operator'] ) ) {
$this->operator = $data['operator'];
}
if ( ! empty( $data['extra'] ) ) {
$this->extra = $data['extra'];
}
if ( ! empty( $data['um'] ) ) {
$this->um = $data['um'];
}
}
public function get_value() {
return $this->value;
}
public function get_operator() {
return $this->operator;
}
public function get_um() {
return $this->um;
}
public function get_extra() {
return $this->extra;
}
/**
* @return string
*/
abstract public static function get_key();
abstract public static function get_label();
abstract public function apply( $data );
/**
* Function that should be implemented individually - for situations where the filter has multiple operators, get a list of them
*/
abstract public static function get_operators();
/**
* Allows adding extra operators, for conditions on multiple rows
*
* @return array
*/
public static function get_extra_operators() {
return [];
}
public static function get_control_type() {
return 'input';
}
/**
* This determines whether the select for the operator is shown or not.
*
* @return bool
*/
public static function is_hidden() {
return false;
}
public static function get_display_size() {
return 'small';
}
/**
* @return array
*/
public static function get_data_to_localize() {
$operators = static::get_operators();
return [
'label' => static::get_label(),
'operators' => $operators,
'extra_operators' => static::get_extra_operators(),
'is_hidden' => static::is_hidden(),
'control_type' => static::get_control_type(),
'display_size' => static::get_display_size(),
'validation_data' => static::get_validation_data(),
'is_single_operator' => count( $operators ) === 1,
'has_options_to_preload' => static::has_options_to_preload(),
];
}
/**
* @return array
*/
public static function get_validation_data() {
return [
'min' => 0,
'max' => PHP_INT_MAX,
];
}
public static function has_options_to_preload() {
return false;
}
}