Files
roi-theme/wp-content/plugins/ajax-search-pro/backend/Classes/Options/Option.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

106 lines
3.9 KiB
PHP
Executable File

<?php
namespace WPDRMS\Backend\Options;
if (!defined('ABSPATH')) die('-1');
class Option {
public static function create($optionType, $args) {
$class = __NAMESPACE__ . "\\" . $optionType;
if ( !class_exists( $class ) ) {
$class = __NAMESPACE__ . "\\" . 'YesNo';
}
$c = new $class($args);
return $c->render();
}
public static function init() {
add_action('admin_enqueue_scripts', array( static::class, 'registerAssets' ));
CustomFieldSearch::registerAjax();
UserSelect::registerAjax();
PostSearch::registerAjax();
}
public static function getOptions() {
$all_options = array();
foreach ( OptionDefaults::getGlobalDefaults() as $option_group_key => $default_options ) {
$stored = get_site_option($option_group_key, array());
$options = array();
foreach ( $default_options as $key => $default_value ) {
if ( isset($stored[$key]) ) {
$options[$key] = self::optionValue($default_value, $stored[$key]);
} else {
$options[$key] = self::optionValue($default_value);
}
}
$all_options[$option_group_key] = $options;
}
foreach ( OptionDefaults::getLocalDefaults() as $option_group_key => $default_options ) {
$stored = get_option($option_group_key, array());
$options = array();
foreach ( $default_options as $key => $default_value ) {
if ( isset($stored[$key]) ) {
$options[$key] = self::optionValue($default_value, $stored[$key]);
} else {
$options[$key] = self::optionValue($default_value);
}
}
$all_options[$option_group_key] = $options;
}
return $all_options;
}
public static function optionValue($default_value, $stored_value = null) {
if ( is_array($default_value) && isset( $default_value['option_type'], $default_value['value'] ) ) {
if ( $stored_value === null ) {
return $default_value['value'];
} else {
$class = __NAMESPACE__ . "\\" . $default_value['option_type'];
return $class::value($stored_value, $default_value['value']);
}
} else {
if ( $stored_value === null ) {
return $default_value;
} else {
return $stored_value;
}
}
}
public static function saveOptions($group_key, $new_options) {
if ( isset(OptionDefaults::$global_defaults[$group_key]) ) {
return update_site_option($group_key, $new_options);
} else if ( isset(OptionDefaults::$local_defaults[$group_key]) ) {
return update_option($group_key, $new_options);
} else {
return false;
}
}
public static function registerAssets() {
$media_query = ASP_DEBUG == 1 ? asp_gen_rnd_str() : get_site_option("asp_media_query", "defn");
wp_enqueue_script('jquery');
wp_enqueue_script('jquery-ui-core', false, array('jquery'), false, true);
wp_enqueue_script('jquery-ui-slider', false, array('jquery-ui-core'), false, true);
wp_enqueue_script('jquery-ui-tabs', false, array('jquery-ui-core'), false, true);
wp_enqueue_script('jquery-ui-sortable', false, array('jquery-ui-core'), false, true);
wp_enqueue_script('jquery-ui-draggable', false, array('jquery-ui-core'), false, true);
wp_enqueue_script('jquery-ui-datepicker', false, array('jquery-ui-core'), false, true);
wp_enqueue_script('wpd-options-jquery-select2', ASP_URL_NP . 'backend/Assets/Options/dist/select2.min.js', array(
'jquery'
), $media_query, false);
wp_enqueue_style('wpd-options-jquery-select2', ASP_URL_NP . 'backend/Assets/Options/dist/select2.min.css', false, $media_query);
/*wp_enqueue_script('wpd-options', ASP_URL_NP . 'backend/Assets/Options/dist/options.min.js',
array('jquery', 'wpd-options-jquery-select2', 'jquery-ui-datepicker'), $media_query, true);*/
wp_enqueue_script('wpd-options', ASP_URL_NP . 'backend/Assets/Options/dist/App.js',
array('jquery', 'wpd-options-jquery-select2', 'jquery-ui-datepicker'), $media_query, true);
wp_enqueue_style('wpd-options', ASP_URL_NP . 'backend/Assets/Options/dist/options.min.css', array(), $media_query);
}
}