Files
roi-theme/wp-content/plugins/thrive-visual-editor/inc/classes/elements/class-tcb-lead-generation-element.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

327 lines
7.9 KiB
PHP
Executable File

<?php
/**
* Thrive Themes - https://thrivethemes.com
*
* @package TCB2.0
*/
if ( ! defined( 'ABSPATH' ) ) {
exit; // Silence is golden
}
/**
* Class TCB_Lead_Generation_Element
*/
class TCB_Lead_Generation_Element extends TCB_Cloud_Template_Element_Abstract {
/**
* @return string
*/
public function name() {
return __( 'Lead Generation', 'thrive-cb' );
}
public function is_placeholder() {
return false;
}
/**
* HTML layout of the element for when it's dragged in the canvas
*
* @return string
*/
public function html_placeholder( $title = null ) {
if ( empty( $title ) ) {
$title = $this->name();
}
return tcb_template( 'elements/element-placeholder', array(
'icon' => $this->icon(),
'class' => 'tcb-ct-placeholder',
'title' => $title,
'extra_attr' => 'data-ct="' . $this->tag() . '-0" data-tcb-elem-type="' . $this->tag() . '" data-tcb-lg-type="' . $this->tag() . '" data-specific-modal="lead-generation"',
), true );
}
/**
* Get element alternate
*
* @return string
*/
public function alternate() {
return 'form';
}
/**
* @return string
*/
public function icon() {
return 'lead_gen';
}
/**
* @return string
*/
public function identifier() {
return '.thrv_lead_generation';
}
/**
* @return array
*/
public function get_spam_prevention_tools() {
$spam_prevention_tools = apply_filters( 'tcb_spam_prevention_tools', [] );
$formatted_tools = [];
foreach ( $spam_prevention_tools as $tool ) {
$credentials = Thrive_Dash_List_Manager::credentials( $tool );
$disabled = 1;
if ( ! empty( $credentials['site_key'] ) && ! empty( $credentials['secret_key'] ) ) {
unset( $credentials['secret_key'] );
$disabled = 0;
}
$config = [
'value' => $tool,
'name' => ucfirst( $tool ),
'disabled' => $disabled,
'class' => $disabled ? 'tve-disabled' : '',
'tool_settings' => $credentials,
'logo' => $this->get_logo_url( $tool ),
];
$formatted_tools[ $tool ] = $config;
}
$formatted_tools['thrive-sp'] = [
'name' => 'Thrive spam protection',
'value' => 'thrive-sp',
'enabled' => 0,
'tool_settings' => [
'site_key' => '0i1Lk8skHd2no5dNK',
'secret_key' => 'xVCSHKWlohcZbw0hutIC93Lr2NK',
],
'logo' => $this->get_logo_url( 'thrive-spam-protect' ),
];
$formatted_tools['disabled'] = [
'name' => 'Disabled',
'value' => 'disabled',
'enabled' => 0,
'tool_settings' => [
'site_key' => '0i1Lk8skHd2no5d',
'secret_key' => 'xVCSHKWlohcZbw0hutIC93Lr2',
],
'logo' => $this->get_logo_url( 'disabled' ),
];
return $formatted_tools;
}
public function get_logo_url( $name ) {
return TVE_DASH_URL . '/inc/auto-responder/views/images/' . $name . '.png';
}
/**
* @return array
*/
public function own_components() {
$spam_prevention_tools = $this->get_spam_prevention_tools();
$lead_generation = array(
'lead_generation' => array(
'config' => array(
'ModalPicker' => array(
'config' => array(
'label' => __( 'Template', 'thrive-cb' ),
),
),
'FormPalettes' => [
'config' => [],
'extends' => 'Palettes',
],
'connectionType' => array(
'config' => array(
'name' => __( 'Connection', 'thrive-cb' ),
'buttons' => [
[
'text' => 'API',
'value' => 'api',
'default' => true,
],
[
'text' => 'HTML code',
'value' => 'custom-html',
],
],
),
),
'FieldsControl' => [
'config' => [
'sortable' => true,
'settings_icon' => 'pen-light',
],
],
'HiddenFieldsControl' => [
'config' => [
'sortable' => false,
'settings_icon' => 'pen-light',
],
'extends' => 'PreviewList',
],
'ApiConnections' => [
'config' => [],
],
'SPTools' => array(
'config' => array(
'name' => '',
'options' => $spam_prevention_tools
),
'extends' => 'Select',
),
'consent' => array(
'config' => array(
'labels' => array(
'wordpress' => __( 'Create WordPress account', 'thrive-cb' ),
'default' => __( '{service}', 'thrive-cb' ),
),
),
),
'FormIdentifier' => array(
'config' => array(
'label' => __( 'Form identifier', 'thrive-cb' ),
'full-width' => true,
'tooltip' => __( 'Used in other Thrive plugins to identify this form. It should be unique.', 'thrive-cb' ),
'tooltip_side' => 'top',
'width' => '100%',
),
'extends' => 'LabelInput',
),
),
),
'typography' => [
'hidden' => true,
],
'layout' => [
'disabled_controls' => [
'.tve-advanced-controls',
],
'config' => [
'Width' => [
'important' => true,
],
],
],
'borders' => [
'disabled_controls' => [],
'config' => [
'Corners' => [
'overflow' => false,
],
],
],
'animation' => [
'hidden' => true,
],
'shadow' => [
'config' => [
'disabled_controls' => [ 'text' ],
],
],
'styles-templates' => [
'config' => [
'ID' => [
'hidden' => true,
],
],
],
);
return array_merge( $lead_generation, $this->group_component() );
}
/**
* Element category that will be displayed in the sidebar
*
* @return string
*/
public function category() {
return static::get_thrive_advanced_label();
}
/**
* Element info
*
* @return string|string[][]
*/
public function info() {
return [
'instructions' => [
'type' => 'help',
'url' => 'lead_generation',
'link' => 'https://help.thrivethemes.com/en/articles/4425779-how-to-use-the-lead-generation-element',
],
];
}
/**
* Group Edit Properties
*
* @return array|bool
*/
public function has_group_editing() {
return array(
'select_values' => array(
array(
'value' => 'all_labels',
'selector' => '.thrv_text_element[data-label-for]',
'name' => __( 'Grouped Lead Generation Labels', 'thrive-cb' ),
'singular' => __( '-- Label %s', 'thrive-cb' ),
),
array(
'value' => 'all_lead_gen_items',
'selector' => '.tve_lg_input,.tve_lg_textarea',
'name' => __( 'Grouped Lead Generation Inputs', 'thrive-cb' ),
'singular' => __( '-- Input %s', 'thrive-cb' ),
),
array(
'value' => 'all_radio_elements',
'selector' => '.tve_lg_radio',
'name' => __( 'Grouped Lead Generation Radio', 'thrive-cb' ),
'singular' => __( '-- Radio %s', 'thrive-cb' ),
),
array(
'value' => 'all_checkbox_elements',
'selector' => '.tve_lg_checkbox:not(.tcb-lg-consent)',
'name' => __( 'Grouped Form Checkbox', 'thrive-cb' ),
'singular' => __( '-- Checkbox %s', 'thrive-cb' ),
),
array(
'value' => 'all_dropdown_elements',
'selector' => '.tve_lg_dropdown, .tve_lg_country, .tve_lg_state',
'name' => __( 'Grouped Dropdown', 'thrive-cb' ),
'singular' => __( '-- Dropdown %s', 'thrive-cb' ),
),
array(
'value' => 'radio_options',
'selector' => '.tve_lg_radio_wrapper',
'name' => __( 'Grouped Radio Options', 'thrive-cb' ),
'singular' => __( '-- Option %s', 'thrive-cb' ),
),
array(
'value' => 'dropdown_options',
'selector' => '.tve-lg-dropdown-option',
'name' => __( 'Grouped Dropdown Options', 'thrive-cb' ),
'singular' => __( '-- Option %s', 'thrive-cb' ),
),
array(
'value' => 'checkbox_options',
'selector' => '.tve_lg_checkbox_wrapper:not(.tcb-lg-consent .tve_lg_checkbox_wrapper)',
'name' => __( 'Grouped Checkbox Options', 'thrive-cb' ),
'singular' => __( '-- Option %s', 'thrive-cb' ),
),
),
);
}
}