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>
This commit is contained in:
root
2025-11-03 21:04:30 -06:00
commit a22573bf0b
24068 changed files with 4993111 additions and 0 deletions

View File

@@ -0,0 +1,75 @@
<?php
/**
* Thrive Themes - https://thrivethemes.com
*
* @package thrive-visual-editor
*/
namespace TCB\ConditionalDisplay\Traits;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Silence is golden!
}
trait Item {
protected static $registered_items = [];
/**
* Get a list of all the registered items
*
* @param bool $sort_by_order
*
* @return static[]
*/
public static function get( $sort_by_order = false ) {
$items = static::$registered_items;
if ( $sort_by_order ) {
uasort( $items, static function ( $item1, $item2 ) {
/* @var Item $item1 , $item2 */
return $item1::get_display_order() - $item2::get_display_order();
} );
}
return $items;
}
/**
* @param $item
*/
public static function register( $item ) {
if ( is_subclass_of( $item, static::class ) ) {
if ( ! empty( $item::get_key() ) ) {
static::$registered_items[ $item::get_key() ] = $item;
} else {
trigger_error( $item . ' does not have an ID.' );
}
} else {
trigger_error( 'Argument ' . $item . ' must be a subclass of ' . static::class );
}
}
/**
* @param string $key
* @param array $extra_data
*
* @return mixed
*/
public static function get_instance( $key = '', $extra_data = [] ) {
$items = static::get();
$instance = null;
if ( isset( $items[ $key ] ) ) {
$instance = new $items[ $key ]( $extra_data );
}
return $instance;
}
/**
* @return string
*/
public function __toString() {
return __CLASS__;
}
}