- 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>
100 lines
2.4 KiB
PHP
Executable File
100 lines
2.4 KiB
PHP
Executable File
<?php
|
|
|
|
class Thrive_Ult_Saved_Options {
|
|
private $table_name = 'settings_templates';
|
|
private $db;
|
|
private $name;
|
|
private $description;
|
|
public $show_options;
|
|
public $hide_options;
|
|
|
|
public function __construct( $name = '', $show_options = '', $hide_options = '', $description = '' ) {
|
|
/**
|
|
* @var $wpdb wpdb
|
|
*/
|
|
global $wpdb;
|
|
$this->db = $wpdb;
|
|
$this->table_name = tve_ult_table_name( $this->table_name );
|
|
$this->name = $name;
|
|
$this->description = $description;
|
|
$this->show_options = $show_options;
|
|
$this->hide_options = $hide_options;
|
|
}
|
|
|
|
protected function _processPreSave( $jsonOptions ) {
|
|
$options = @json_decode( stripcslashes( $jsonOptions ), true );
|
|
if ( empty( $options ) || empty( $options['tabs'] ) ) {
|
|
return json_encode( array( 'identifier' => $jsonOptions['identifier'] ) );
|
|
}
|
|
|
|
$clean_options = array();
|
|
|
|
foreach ( $options['tabs'] as $index => $tabOptions ) {
|
|
$clean_options['tabs'][ $index ]['options'] = $tabOptions;
|
|
}
|
|
|
|
return json_encode( $clean_options );
|
|
}
|
|
|
|
public function save() {
|
|
$this->delete();
|
|
$this->db->suppress_errors();
|
|
|
|
$show_options = $this->_processPreSave( $this->show_options );
|
|
$hide_options = $this->_processPreSave( $this->hide_options );
|
|
|
|
return $this->db->insert( $this->table_name, array(
|
|
'name' => $this->name,
|
|
'description' => $this->description,
|
|
'show_options' => $show_options,
|
|
'hide_options' => $hide_options,
|
|
) ) !== false ? true : $this->db->last_error;
|
|
}
|
|
|
|
public function delete() {
|
|
$this->db->delete( $this->table_name, array( 'name' => $this->name ) );
|
|
}
|
|
|
|
/**
|
|
* Read options from database
|
|
*
|
|
* @return $this
|
|
*/
|
|
public function initOptions( $byId = false, $from_data = null ) {
|
|
if ( $from_data !== null ) {
|
|
$row = $from_data;
|
|
} else {
|
|
$where = $byId === false ? "name = '{$this->name}'" : "id = {$byId}";
|
|
$sql = "SELECT * FROM {$this->table_name} WHERE {$where}";
|
|
$row = $this->db->get_row( $sql );
|
|
}
|
|
if ( $row ) {
|
|
$this->show_options = $row->show_options;
|
|
$this->hide_options = $row->hide_options;
|
|
}
|
|
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* @return string
|
|
*/
|
|
public function getShowGroupOptions() {
|
|
return $this->show_options;
|
|
}
|
|
|
|
/**
|
|
* @return string
|
|
*/
|
|
public function getHideGroupOptions() {
|
|
return $this->hide_options;
|
|
}
|
|
|
|
public function getAll() {
|
|
$sql = "SELECT * FROM {$this->table_name} ORDER BY name";
|
|
$results = $this->db->get_results( $sql );
|
|
|
|
return $results;
|
|
}
|
|
}
|