<?php
use \Elementor\Controls_Manager;
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
class WPR_DC_Section_General_Settings extends WPR_DC_Section_Base {
public function get_id() {
return 'wpr_dc_general';
}
public function get_label() {
return sprintf(esc_html__('Visibility - %s', 'wpr-addons'), esc_html('RA'));
}
public function get_order() {
return 10;
}
public function register_controls( $element ) {
$element->add_control(
'wpr_dc_enabled',
[
'label' => esc_html__( 'Enable Visibility Logic', 'wpr-addons' ),
'description' => esc_html__( 'Powered by Royal Addons for Elementor.', 'wpr-addons' ),
'type' => Controls_Manager::SWITCHER,
'default' => '',
'return_value' => 'yes',
'render_type' => 'none',
]
);
$element->add_control(
'wpr_dc_mode',
[
'label' => esc_html__( 'When conditions are met', 'wpr-addons' ),
'type' => Controls_Manager::SELECT,
'label_block' => true,
'default' => 'show',
'options' => [
'show' => esc_html__( 'Show this element', 'wpr-addons' ),
'hide' => esc_html__( 'Hide this element', 'wpr-addons' ),
],
'condition' => [
'wpr_dc_enabled' => 'yes',
],
'render_type' => 'none',
]
);
$element->add_control(
'wpr_dc_logic',
[
'label' => esc_html__( 'Condition logic', 'wpr-addons' ),
'type' => Controls_Manager::SELECT,
'label_block' => true,
'default' => 'any',
'options' => [
'any' => esc_html__( 'Any condition is true (OR)', 'wpr-addons' ),
'all' => esc_html__( 'All conditions are true (AND)', 'wpr-addons' ),
],
'condition' => [
'wpr_dc_enabled' => 'yes',
],
'render_type' => 'none',
]
);
$element->add_control(
'wpr_dc_css_only',
[
'label' => esc_html__( 'Hide with CSS only', 'wpr-addons' ),
'description' => esc_html__( 'Keep the element in the page code but hide it visually. By default, hidden elements are removed from the page completely.', 'wpr-addons' ),
'type' => Controls_Manager::SWITCHER,
'default' => '',
'return_value'=> 'yes',
'condition' => [
'wpr_dc_enabled' => 'yes',
],
'render_type' => 'none',
]
);
}
/**
* General settings don't evaluate conditions — they provide global config.
*/
public function evaluate( $settings ) {
return null;
}
}