Files
roi-theme/wp-content/plugins/thrive-ultimatum/inc/classes/display_settings/class-thrive-display-settings-manager.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

209 lines
7.1 KiB
PHP
Executable File

<?php
class Thrive_Ult_Display_Settings_Manager {
/** @var int */
protected $campaign_id;
/** @var Thrive_Ult_Campaign_Options */
protected $saved_options;
public function __construct( $campaign_id = null ) {
if ( isset( $campaign_id ) ) {
$this->campaign_id = $campaign_id;
}
}
public function initHangers( $campaign_id ) {
$hangers[] = new Thrive_Ult_Hanger( 'show_options', $campaign_id );
$hangers[] = new Thrive_Ult_Hanger( 'hide_options', $campaign_id );
$tabs = array(
'other_screens' => __( 'Basic Settings', 'thrive-ult' ),
'taxonomy_terms' => __( 'Categories etc.', 'thrive-ult' ),
'posts' => __( 'Posts', 'thrive-ult' ),
'pages' => __( 'Pages', 'thrive-ult' ),
'page_templates' => __( 'Page Templates', 'thrive-ult' ),
'post_types' => __( 'Post Types', 'thrive-ult' ),
'taxonomy_archives' => __( 'Archive Pages', 'thrive-ult' ),
'others' => __( 'Other', 'thrive-ult' ),
);
/**
* @var $hanger Thrive_Ult_Hanger
*/
foreach ( $hangers as $hanger ) {
$hanger->initTabs( $tabs, $this->saved_options );
}
return $hangers;
}
/**
* Call this only once
* Saved options for a campaign are the same for all tabs
*/
protected function load_saved_options() {
$this->saved_options = new Thrive_Ult_Campaign_Options( $this->campaign_id );
$this->saved_options->initOptions();
}
public function get_popup_data() {
$this->load_dependencies();
$this->load_saved_options();
$group = isset( $_GET['campaign_id'] ) ? $_GET['campaign_id'] : $this->campaign_id;
$hangers = $this->initHangers( $group );
//used in file included at the end of this function
$saved_templates = apply_filters( 'thrive_display_options_get_templates', array() );
return array(
'hangers' => $hangers,
'savedTemplates' => $saved_templates,
);
}
public function load_template() {
$this->load_dependencies();
$templates = new Thrive_Ult_Saved_Options();
$template_id = $_REQUEST['template_id'];
if ( strpos( $template_id, 'TU-' ) === 0 ) {
$template_id = str_replace( 'TU-', '', $template_id );
} else {
$template = apply_filters( 'thrive_display_options_get_template', array(), $template_id );
}
$templates->initOptions( isset( $template ) ? false : $template_id, isset( $template ) ? $template : null );
$hangers = array(
new Thrive_Ult_Hanger( 'show_options', $_REQUEST['campaign_id'] ),
new Thrive_Ult_Hanger( 'hide_options', $_REQUEST['campaign_id'] ),
);
$identifiers = array(
'other_screens' => __( 'Basic Settings', 'thrive-ult' ),
'taxonomy_terms' => __( 'Categories etc.', 'thrive-ult' ),
'posts' => __( 'Posts', 'thrive-ult' ),
'pages' => __( 'Pages', 'thrive-ult' ),
'page_templates' => __( 'Page Templates', 'thrive-ult' ),
'post_types' => __( 'Post Types', 'thrive-ult' ),
'taxonomy_archives' => __( 'Archive Pages', 'thrive-ult' ),
'others' => __( 'Other', 'thrive-ult' ),
);
/**
* @var $hanger Thrive_Ult_Hanger
*/
foreach ( $hangers as $hanger ) {
/**
* @var $tab Thrive_Ult_Tab
*/
foreach ( $identifiers as $identifier => $label ) {
$tab = Thrive_Ult_Tab_Factory::build( $identifier );
$tab->setGroup( $_REQUEST['campaign_id'] )
->setIdentifier( $identifier )
->setSavedOptions( new Thrive_Ult_Campaign_Options( $_REQUEST['campaign_id'], $templates->getShowGroupOptions(), $templates->getHideGroupOptions() ) )
->setLabel( $label )
->setHanger( $hanger->identifier )
->initOptions()
->initFilters();
$hanger->tabs[] = $tab;
}
}
wp_send_json( $hangers );
}
public function getSavedTemplates() {
$savedTemplates = new Thrive_Ult_Saved_Options();
$templates = $savedTemplates->getAll();
foreach ( $templates as $template ) {
$template->id = TVE_Dash_Product_LicenseManager::TU_TAG . $template->id;
$template->show_options = $this->processTpl( json_decode( stripcslashes( $template->show_options ), true ) );
$template->hide_options = $this->processTpl( json_decode( stripcslashes( $template->hide_options ), true ) );
}
return $templates;
}
protected function processTpl( $savedOptions ) {
$return = array();
foreach ( $savedOptions['tabs'] as $index => $tab ) {
$options = $this->checkBackwardsComp( $tab['options'] );
$return[] = array(
'options' => $options,
'index' => $index,
);
}
return $return;
}
public function checkBackwardsComp( $options ) {
$return = array();
foreach ( $options as $o ) {
if ( is_array( $o ) ) {
if ( ! empty( $o['isChecked'] ) || ( ! empty( $o['type'] ) && $o['type'] == 'direct_url' ) ) {
$return [] = $o['id'];
}
} else {
$return [] = $o;
}
}
return $return;
}
public function save_options() {
if ( empty( $_POST['options'] ) || empty( $_POST['campaign_id'] ) ) {
return __( 'Empty values', 'thrive-ult' );
}
require_once plugin_dir_path( __FILE__ ) . 'class-thrive-ult-campaign-options.php';
$campaign_id = new Thrive_Ult_Campaign_Options( $_POST['campaign_id'], $_POST['options'][0], $_POST['options'][1] );
return $campaign_id->save();
}
public function save_template() {
if ( empty( $_POST['options'] ) || empty( $_POST['name'] ) ) {
return false;
}
require_once plugin_dir_path( __FILE__ ) . 'class-thrive-ult-saved-options.php';
$template = new Thrive_Ult_Saved_Options( $_POST['name'], $_POST['options'][0], $_POST['options'][1], '' );
return $template->save();
}
/**
* Load all the dependencies that are needed for this manager
*/
public function load_dependencies() {
require_once plugin_dir_path( __FILE__ ) . 'class-thrive-ult-filter.php';
require_once plugin_dir_path( __FILE__ ) . 'class-thrive-ult-action.php';
require_once plugin_dir_path( __FILE__ ) . 'class-thrive-ult-option.php';
require_once plugin_dir_path( __FILE__ ) . 'class-thrive-ult-hanger.php';
require_once plugin_dir_path( __FILE__ ) . 'class-thrive-ult-tab-interface.php';
require_once plugin_dir_path( __FILE__ ) . 'class-thrive-ult-tab.php';
require_once plugin_dir_path( __FILE__ ) . 'class-thrive-ult-tab-factory.php';
require_once plugin_dir_path( __FILE__ ) . 'class-thrive-ult-posts-tab.php';
require_once plugin_dir_path( __FILE__ ) . 'class-thrive-ult-pages-tab.php';
require_once plugin_dir_path( __FILE__ ) . 'class-thrive-ult-page-templates-tab.php';
require_once plugin_dir_path( __FILE__ ) . 'class-thrive-ult-post-types-tab.php';
require_once plugin_dir_path( __FILE__ ) . 'class-thrive-ult-taxonomy-archives-tab.php';
require_once plugin_dir_path( __FILE__ ) . 'class-thrive-ult-taxonomy-terms-tab.php';
require_once plugin_dir_path( __FILE__ ) . 'class-thrive-ult-other-screens-tab.php';
require_once plugin_dir_path( __FILE__ ) . 'class-thrive-ult-direct-urls-tab.php';
require_once plugin_dir_path( __FILE__ ) . 'class-thrive-ult-visitors-status-tab.php';
require_once plugin_dir_path( __FILE__ ) . 'class-thrive-ult-campaign-options.php';
require_once plugin_dir_path( __FILE__ ) . 'class-thrive-ult-saved-options.php';
require_once plugin_dir_path( __FILE__ ) . 'class-thrive-others-tab.php';
}
}