start_controls_section( 'premium_person_general_settings', array( 'label' => __( 'General Settings', 'premium-addons-for-elementor' ), ) ); $this->add_control( 'multiple', array( 'label' => __( 'Multiple Member', 'premium-addons-for-elementor' ), 'description' => __( 'Enable this option if you need to add multiple persons', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::SWITCHER, ) ); $this->add_control( 'premium_person_style', array( 'label' => __( 'Style', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::SELECT, 'default' => 'style1', 'options' => array( 'style1' => __( 'Style 1', 'premium-addons-for-elementor' ), 'style2' => __( 'Style 2', 'premium-addons-for-elementor' ), 'style3' => __( 'Style 3', 'premium-addons-for-elementor' ), ), 'label_block' => true, 'render_type' => 'template', ) ); $this->add_control( 'title_rotate', array( 'label' => __( 'Title Rotate', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::SELECT, 'options' => array( 'cw' => __( '90 Degrees', 'premium-addons-for-elementor' ), 'ccw' => __( '-90 Degrees', 'premium-addons-for-elementor' ), ), 'default' => 'cw', 'prefix_class' => 'premium-persons-title-', 'label_block' => true, 'condition' => array( 'premium_person_style' => 'style3', ), ) ); $this->add_group_control( Group_Control_Image_Size::get_type(), array( 'name' => 'thumbnail', 'default' => 'full', ) ); $this->add_responsive_control( 'premium_person_image_width', array( 'label' => __( 'Width', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::SLIDER, 'description' => __( 'Enter image width in (PX, EM, %), default is 100%', 'premium-addons-for-elementor' ), 'size_units' => array( 'px', 'em', '%', 'custom' ), 'range' => array( 'px' => array( 'min' => 1, 'max' => 800, ), 'em' => array( 'min' => 1, 'max' => 50, ), ), 'default' => array( 'unit' => '%', 'size' => '100', ), 'label_block' => true, 'selectors' => array( '{{WRAPPER}} .premium-persons-container' => 'width: {{SIZE}}{{UNIT}};', ), ) ); $this->add_responsive_control( 'premium_person_align', array( 'label' => __( 'Alignment', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::CHOOSE, 'options' => array( 'flex-start' => array( 'title' => __( 'Left', 'premium-addons-for-elementor' ), 'icon' => 'eicon-text-align-left', ), 'center' => array( 'title' => __( 'Center', 'premium-addons-for-elementor' ), 'icon' => 'eicon-text-align-center', ), 'flex-end' => array( 'title' => __( 'Right', 'premium-addons-for-elementor' ), 'icon' => 'eicon-text-align-right', ), ), 'default' => 'center', 'selectors' => array( '{{WRAPPER}} .elementor-widget-container' => 'justify-content: {{VALUE}};', ), ) ); $this->add_control( 'premium_person_hover_image_effect', array( 'label' => __( 'Hover Effect', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::SELECT, 'options' => array( 'none' => __( 'None', 'premium-addons-for-elementor' ), 'zoomin' => __( 'Zoom In', 'premium-addons-for-elementor' ), 'zoomout' => __( 'Zoom Out', 'premium-addons-for-elementor' ), 'scale' => __( 'Scale', 'premium-addons-for-elementor' ), 'grayscale' => __( 'Grayscale', 'premium-addons-for-elementor' ), 'blur' => __( 'Blur', 'premium-addons-for-elementor' ), 'bright' => __( 'Bright', 'premium-addons-for-elementor' ), 'sepia' => __( 'Sepia', 'premium-addons-for-elementor' ), 'trans' => __( 'Translate', 'premium-addons-for-elementor' ), ), 'default' => 'zoomin', 'label_block' => true, ) ); $this->add_responsive_control( 'premium_person_text_align', array( 'label' => __( 'Content Alignment', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::CHOOSE, 'options' => array( 'left' => array( 'title' => __( 'Left', 'premium-addons-for-elementor' ), 'icon' => 'eicon-text-align-left', ), 'center' => array( 'title' => __( 'Center', 'premium-addons-for-elementor' ), 'icon' => 'eicon-text-align-center', ), 'right' => array( 'title' => __( 'Right', 'premium-addons-for-elementor' ), 'icon' => 'eicon-text-align-right', ), ), 'default' => 'left', 'selectors' => array( '{{WRAPPER}} .premium-person-info' => 'text-align: {{VALUE}};', ), ) ); $this->add_control( 'premium_person_name_heading', array( 'label' => __( 'Name Tag', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::SELECT, 'default' => 'h2', 'options' => array( 'h1' => 'H1', 'h2' => 'H2', 'h3' => 'H3', 'h4' => 'H4', 'h5' => 'H5', 'h6' => 'H6', 'div' => 'div', 'span' => 'span', 'p' => 'p', ), 'label_block' => true, ) ); $this->add_control( 'premium_person_title_heading', array( 'label' => __( 'Title Tag', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::SELECT, 'default' => 'h4', 'options' => array( 'h1' => 'H1', 'h2' => 'H2', 'h3' => 'H3', 'h4' => 'H4', 'h5' => 'H5', 'h6' => 'H6', 'div' => 'div', 'span' => 'span', 'p' => 'p', ), 'label_block' => true, ) ); $this->add_responsive_control( 'persons_per_row', array( 'label' => __( 'Members/Row', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::SELECT, 'options' => array( '100%' => __( '1 Column', 'premium-addons-for-elementor' ), '50%' => __( '2 Columns', 'premium-addons-for-elementor' ), '33.33%' => __( '3 Columns', 'premium-addons-for-elementor' ), '25%' => __( '4 Columns', 'premium-addons-for-elementor' ), '20%' => __( '5 Columns', 'premium-addons-for-elementor' ), '16.667%' => __( '6 Columns', 'premium-addons-for-elementor' ), ), 'default' => '33.33%', 'tablet_default' => '100%', 'mobile_default' => '100%', 'render_type' => 'template', 'selectors' => array( '{{WRAPPER}} .premium-person-container' => 'width: {{VALUE}}', ), 'condition' => array( 'multiple' => 'yes', ), 'frontend_available' => true, ) ); $this->add_responsive_control( 'spacing', array( 'label' => __( 'Spacing', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', '%', 'em' ), 'default' => array( 'top' => 5, 'right' => 5, 'bottom' => 5, 'left' => 5, ), 'condition' => array( 'multiple' => 'yes', ), 'selectors' => array( '{{WRAPPER}} .premium-person-container' => 'padding: 0 {{RIGHT}}{{UNIT}} 0 {{LEFT}}{{UNIT}}; margin: {{TOP}}{{UNIT}} 0 {{BOTTOM}}{{UNIT}} 0', ' {{WRAPPER}} .premium-person-style1 .premium-person-info' => 'left: {{LEFT}}{{UNIT}}; right: {{RIGHT}}{{UNIT}}', ), ) ); $this->add_control( 'multiple_equal_height', array( 'label' => __( 'Equal Height', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::SWITCHER, 'default' => 'yes', 'description' => __( 'This option searches for the image with the largest height and applies that height to the other images', 'premium-addons-for-elementor' ), 'condition' => array( 'multiple' => 'yes', 'custom_height[size]' => '', ), ) ); $this->add_responsive_control( 'custom_height', array( 'label' => __( 'Custom Height', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::SLIDER, 'size_units' => array( 'px', 'em', 'custom' ), 'range' => array( 'px' => array( 'min' => 0, 'max' => 500, ), 'em' => array( 'min' => 0, 'max' => 50, ), ), 'condition' => array( 'multiple' => 'yes', ), 'selectors' => array( '{{WRAPPER}} .premium-person-image-container img' => 'height: {{SIZE}}{{UNIT}} !important;', ), ) ); $this->end_controls_section(); $this->start_controls_section( 'premium_person_settings', array( 'label' => __( 'Single Member Settings', 'premium-addons-for-elementor' ), 'condition' => array( 'multiple!' => 'yes', ), ) ); $this->add_control( 'premium_person_image', array( 'label' => __( 'Image', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::MEDIA, 'dynamic' => array( 'active' => true ), 'default' => array( 'url' => Utils::get_placeholder_image_src(), ), 'label_block' => true, ) ); $this->add_control( 'premium_person_name', array( 'label' => __( 'Name', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::TEXT, 'dynamic' => array( 'active' => true ), 'default' => 'John Frank', 'separator' => 'before', 'label_block' => true, ) ); $this->add_control( 'premium_person_title', array( 'label' => __( 'Title', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::TEXT, 'dynamic' => array( 'active' => true ), 'default' => __( 'Developer', 'premium-addons-for-elementor' ), 'label_block' => true, ) ); $this->add_control( 'premium_person_content', array( 'label' => __( 'Description', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::WYSIWYG, 'dynamic' => array( 'active' => true ), 'default' => __( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit', 'premium-addons-for-elementor' ), ) ); $this->add_control( 'premium_person_social_enable', array( 'label' => __( 'Enable Social Icons', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::SWITCHER, 'default' => 'yes', 'separator' => 'before', ) ); $this->add_control( 'premium_person_facebook', array( 'label' => __( 'Facebook', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::TEXT, 'dynamic' => array( 'active' => true ), 'default' => '#', 'label_block' => true, 'condition' => array( 'premium_person_social_enable' => 'yes', ), ) ); $this->add_control( 'premium_person_twitter', array( 'label' => __( 'Twitter', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::TEXT, 'dynamic' => array( 'active' => true ), 'default' => '#', 'label_block' => true, 'condition' => array( 'premium_person_social_enable' => 'yes', ), ) ); $this->add_control( 'premium_person_linkedin', array( 'label' => __( 'LinkedIn', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::TEXT, 'dynamic' => array( 'active' => true ), 'label_block' => true, 'condition' => array( 'premium_person_social_enable' => 'yes', ), ) ); $this->add_control( 'premium_person_google', array( 'label' => __( 'Google+', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::TEXT, 'dynamic' => array( 'active' => true ), 'label_block' => true, 'condition' => array( 'premium_person_social_enable' => 'yes', ), ) ); $this->add_control( 'premium_person_youtube', array( 'label' => __( 'YouTube', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::TEXT, 'dynamic' => array( 'active' => true ), 'label_block' => true, 'condition' => array( 'premium_person_social_enable' => 'yes', ), ) ); $this->add_control( 'premium_person_instagram', array( 'label' => __( 'Instagram', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::TEXT, 'dynamic' => array( 'active' => true ), 'default' => '#', 'label_block' => true, 'condition' => array( 'premium_person_social_enable' => 'yes', ), ) ); $this->add_control( 'premium_person_skype', array( 'label' => __( 'Skype', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::TEXT, 'dynamic' => array( 'active' => true ), 'label_block' => true, 'condition' => array( 'premium_person_social_enable' => 'yes', ), ) ); $this->add_control( 'premium_person_pinterest', array( 'label' => __( 'Pinterest', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::TEXT, 'dynamic' => array( 'active' => true ), 'label_block' => true, 'condition' => array( 'premium_person_social_enable' => 'yes', ), ) ); $this->add_control( 'premium_person_dribbble', array( 'label' => __( 'Dribbble', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::TEXT, 'dynamic' => array( 'active' => true ), 'default' => '#', 'label_block' => true, 'condition' => array( 'premium_person_social_enable' => 'yes', ), ) ); $this->add_control( 'premium_person_behance', array( 'label' => __( 'Behance', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::TEXT, 'dynamic' => array( 'active' => true ), 'label_block' => true, 'condition' => array( 'premium_person_social_enable' => 'yes', ), ) ); $this->add_control( 'premium_person_whatsapp', array( 'label' => __( 'WhatsApp', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::TEXT, 'dynamic' => array( 'active' => true ), 'label_block' => true, 'condition' => array( 'premium_person_social_enable' => 'yes', ), ) ); $this->add_control( 'premium_person_telegram', array( 'label' => __( 'Telegram', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::TEXT, 'dynamic' => array( 'active' => true ), 'label_block' => true, 'condition' => array( 'premium_person_social_enable' => 'yes', ), ) ); $this->add_control( 'premium_person_mail', array( 'label' => __( 'Email Address', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::TEXT, 'dynamic' => array( 'active' => true ), 'label_block' => true, 'condition' => array( 'premium_person_social_enable' => 'yes', ), ) ); $this->add_control( 'premium_person_site', array( 'label' => __( 'Website', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::TEXT, 'dynamic' => array( 'active' => true ), 'label_block' => true, 'condition' => array( 'premium_person_social_enable' => 'yes', ), ) ); $this->add_control( 'premium_person_number', array( 'label' => __( 'Phone Number', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::TEXT, 'dynamic' => array( 'active' => true ), 'description' => __( 'Example: tel: +012 345 678 910', 'premium-addons-for-elementor' ), 'label_block' => true, 'condition' => array( 'premium_person_social_enable' => 'yes', ), ) ); $this->add_control( 'phone_notice', array( 'raw' => __( 'Please note that Phone Number icon will show only on mobile devices.', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::RAW_HTML, 'content_classes' => 'elementor-panel-alert elementor-panel-alert-info', 'condition' => array( 'premium_person_social_enable' => 'yes', ), ) ); $this->end_controls_section(); $this->start_controls_section( 'multiple_settings', array( 'label' => __( 'Multiple Members Settings', 'premium-addons-for-elementor' ), 'condition' => array( 'multiple' => 'yes', ), ) ); $repeater = new REPEATER(); $repeater->add_control( 'multiple_image', array( 'label' => __( 'Image', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::MEDIA, 'dynamic' => array( 'active' => true ), 'default' => array( 'url' => Utils::get_placeholder_image_src(), ), ) ); $repeater->add_control( 'multiple_name', array( 'label' => __( 'Name', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::TEXT, 'dynamic' => array( 'active' => true ), 'default' => 'John Frank', 'separator' => 'before', 'label_block' => true, ) ); $repeater->add_control( 'multiple_title', array( 'label' => __( 'Title', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::TEXT, 'dynamic' => array( 'active' => true ), 'default' => __( 'Developer', 'premium-addons-for-elementor' ), 'label_block' => true, ) ); $repeater->add_control( 'multiple_description', array( 'label' => __( 'Description', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::WYSIWYG, 'dynamic' => array( 'active' => true ), 'default' => __( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit', 'premium-addons-for-elementor' ), ) ); $repeater->add_control( 'multiple_social_enable', array( 'label' => __( 'Enable Social Icons', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::SWITCHER, 'default' => 'yes', 'separator' => 'before', ) ); $repeater->add_control( 'multiple_facebook', array( 'label' => __( 'Facebook', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::TEXT, 'dynamic' => array( 'active' => true ), 'default' => '#', 'label_block' => true, 'condition' => array( 'multiple_social_enable' => 'yes', ), ) ); $repeater->add_control( 'multiple_twitter', array( 'label' => __( 'Twitter', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::TEXT, 'dynamic' => array( 'active' => true ), 'default' => '#', 'label_block' => true, 'condition' => array( 'multiple_social_enable' => 'yes', ), ) ); $repeater->add_control( 'multiple_linkedin', array( 'label' => __( 'LinkedIn', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::TEXT, 'dynamic' => array( 'active' => true ), 'label_block' => true, 'condition' => array( 'multiple_social_enable' => 'yes', ), ) ); $repeater->add_control( 'multiple_google', array( 'label' => __( 'Google+', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::TEXT, 'dynamic' => array( 'active' => true ), 'label_block' => true, 'condition' => array( 'multiple_social_enable' => 'yes', ), ) ); $repeater->add_control( 'multiple_youtube', array( 'label' => __( 'YouTube', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::TEXT, 'dynamic' => array( 'active' => true ), 'label_block' => true, 'condition' => array( 'multiple_social_enable' => 'yes', ), ) ); $repeater->add_control( 'multiple_instagram', array( 'label' => __( 'Instagram', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::TEXT, 'dynamic' => array( 'active' => true ), 'default' => '#', 'label_block' => true, 'condition' => array( 'multiple_social_enable' => 'yes', ), ) ); $repeater->add_control( 'multiple_skype', array( 'label' => __( 'Skype', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::TEXT, 'dynamic' => array( 'active' => true ), 'label_block' => true, 'condition' => array( 'multiple_social_enable' => 'yes', ), ) ); $repeater->add_control( 'multiple_pinterest', array( 'label' => __( 'Pinterest', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::TEXT, 'dynamic' => array( 'active' => true ), 'label_block' => true, 'condition' => array( 'multiple_social_enable' => 'yes', ), ) ); $repeater->add_control( 'multiple_dribbble', array( 'label' => __( 'Dribbble', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::TEXT, 'dynamic' => array( 'active' => true ), 'default' => '#', 'label_block' => true, 'condition' => array( 'multiple_social_enable' => 'yes', ), ) ); $repeater->add_control( 'multiple_behance', array( 'label' => __( 'Behance', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::TEXT, 'dynamic' => array( 'active' => true ), 'label_block' => true, 'condition' => array( 'multiple_social_enable' => 'yes', ), ) ); $repeater->add_control( 'multiple_whatsapp', array( 'label' => __( 'WhatsApp', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::TEXT, 'dynamic' => array( 'active' => true ), 'label_block' => true, 'condition' => array( 'multiple_social_enable' => 'yes', ), ) ); $repeater->add_control( 'multiple_telegram', array( 'label' => __( 'Telegram', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::TEXT, 'dynamic' => array( 'active' => true ), 'label_block' => true, 'condition' => array( 'multiple_social_enable' => 'yes', ), ) ); $repeater->add_control( 'multiple_mail', array( 'label' => __( 'Email Address', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::TEXT, 'dynamic' => array( 'active' => true ), 'label_block' => true, 'condition' => array( 'multiple_social_enable' => 'yes', ), ) ); $repeater->add_control( 'multiple_site', array( 'label' => __( 'Website', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::TEXT, 'dynamic' => array( 'active' => true ), 'label_block' => true, 'condition' => array( 'multiple_social_enable' => 'yes', ), ) ); $repeater->add_control( 'multiple_number', array( 'label' => __( 'Phone Number', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::TEXT, 'dynamic' => array( 'active' => true ), 'description' => __( 'Example: tel: +012 345 678 910', 'premium-addons-for-elementor' ), 'label_block' => true, 'condition' => array( 'multiple_social_enable' => 'yes', ), ) ); $repeater->add_control( 'phone_notice', array( 'raw' => __( 'Please note that Phone Number icon will show only on mobile devices.', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::RAW_HTML, 'content_classes' => 'elementor-panel-alert elementor-panel-alert-info', 'condition' => array( 'multiple_social_enable' => 'yes', ), ) ); $this->add_control( 'multiple_persons', array( 'label' => __( 'Members', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::REPEATER, 'default' => array( array( 'multiple_name' => 'John Frank', ), array( 'multiple_name' => 'John Frank', ), array( 'multiple_name' => 'John Frank', ), ), 'fields' => $repeater->get_controls(), 'title_field' => '{{{multiple_name}}} - {{{multiple_title}}}', 'prevent_empty' => false, ) ); $this->add_control( 'carousel', array( 'label' => __( 'Carousel', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::SWITCHER, 'frontend_available' => true, ) ); $this->add_control( 'carousel_play', array( 'label' => __( 'Auto Play', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::SWITCHER, 'condition' => array( 'carousel' => 'yes', ), 'frontend_available' => true, ) ); $this->add_control( 'speed', array( 'label' => __( 'Autoplay Speed', 'premium-addons-for-elementor' ), 'description' => __( 'Autoplay Speed means at which time the next slide should come. Set a value in milliseconds (ms)', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::NUMBER, 'default' => 5000, 'condition' => array( 'carousel' => 'yes', 'carousel_play' => 'yes', ), 'frontend_available' => true, ) ); $this->add_responsive_control( 'carousel_arrows_pos', array( 'label' => __( 'Arrows Position', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::SLIDER, 'size_units' => array( 'px', 'em' ), 'range' => array( 'px' => array( 'min' => -100, 'max' => 100, ), 'em' => array( 'min' => -10, 'max' => 10, ), ), 'condition' => array( 'carousel' => 'yes', ), 'selectors' => array( '{{WRAPPER}} .premium-persons-container a.carousel-arrow.carousel-next' => 'right: {{SIZE}}{{UNIT}};', '{{WRAPPER}} .premium-persons-container a.carousel-arrow.carousel-prev' => 'left: {{SIZE}}{{UNIT}};', ), ) ); $this->end_controls_section(); $this->start_controls_section( 'section_pa_docs', array( 'label' => __( 'Help & Docs', 'premium-addons-for-elementor' ), ) ); $doc1_url = Helper_Functions::get_campaign_link( 'https://premiumaddons.com/docs/persons-widget-tutorial/', 'editor-page', 'wp-editor', 'get-support' ); $doc2_url = Helper_Functions::get_campaign_link( 'https://premiumaddons.com/docs/why-im-not-able-to-see-elementor-font-awesome-5-icons-in-premium-add-ons', 'editor-page', 'wp-editor', 'get-support' ); $this->add_control( 'doc_1', array( 'type' => Controls_Manager::RAW_HTML, 'raw' => sprintf( '%s', $doc1_url, __( 'Getting started »', 'premium-addons-for-elementor' ) ), 'content_classes' => 'editor-pa-doc', ) ); $this->add_control( 'doc_2', array( 'type' => Controls_Manager::RAW_HTML, 'raw' => sprintf( '%s', $doc2_url, __( 'I\'m not able to see the social icons in the widget »', 'premium-addons-for-elementor' ) ), 'content_classes' => 'editor-pa-doc', ) ); $this->end_controls_section(); $this->start_controls_section( 'premium_person_image_style', array( 'label' => __( 'Image', 'premium-addons-for-elementor' ), 'tab' => Controls_Manager::TAB_STYLE, ) ); $this->add_responsive_control( 'image_border_radius', array( 'label' => __( 'Border Radius', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', 'em', '%' ), 'selectors' => array( '{{WRAPPER}} .premium-person-image-container' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), 'condition' => array( 'premium_person_style' => 'style2', ), ) ); $this->add_control( 'image_adv_radius', array( 'label' => __( 'Advanced Border Radius', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::SWITCHER, 'description' => __( 'Apply custom radius values. Get the radius value from ', 'premium-addons-for-elementor' ) . 'here' . __('. See ', 'premium-addons-for-elementor') . 'tutorial', 'condition' => array( 'premium_person_style' => 'style2', ), ) ); $this->add_control( 'image_adv_radius_value', array( 'label' => __( 'Border Radius', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::TEXT, 'dynamic' => array( 'active' => true ), 'selectors' => array( '{{WRAPPER}} .premium-person-image-container' => 'border-radius: {{VALUE}};', ), 'condition' => array( 'premium_person_style' => 'style2', 'image_adv_radius' => 'yes', ), ) ); $this->add_group_control( Group_Control_Css_Filter::get_type(), array( 'name' => 'css_filters', 'selector' => '{{WRAPPER}} .premium-person-container img', ) ); $this->add_group_control( Group_Control_Css_Filter::get_type(), array( 'name' => 'hover_css_filters', 'label' => __( 'Hover CSS Filters', 'premium-addons-for-elementor' ), 'selector' => '{{WRAPPER}} .premium-person-container:hover img', ) ); $this->add_group_control( Group_Control_Box_Shadow::get_type(), array( 'name' => 'premium_person_shadow', 'selector' => '{{WRAPPER}} .premium-person-social', 'condition' => array( 'premium_person_style' => 'style2', ), ) ); $this->add_control( 'blend_mode', array( 'label' => __( 'Blend Mode', 'elementor' ), 'type' => Controls_Manager::SELECT, 'options' => array( '' => __( 'Normal', 'elementor' ), 'multiply' => 'Multiply', 'screen' => 'Screen', 'overlay' => 'Overlay', 'darken' => 'Darken', 'lighten' => 'Lighten', 'color-dodge' => 'Color Dodge', 'saturation' => 'Saturation', 'color' => 'Color', 'luminosity' => 'Luminosity', ), 'separator' => 'before', 'selectors' => array( '{{WRAPPER}} .premium-person-image-container img' => 'mix-blend-mode: {{VALUE}}', ), ) ); $this->end_controls_section(); $this->start_controls_section( 'premium_person_name_style', array( 'label' => __( 'Name', 'premium-addons-for-elementor' ), 'tab' => Controls_Manager::TAB_STYLE, ) ); $this->add_control( 'premium_person_name_color', array( 'label' => __( 'Color', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::COLOR, 'global' => array( 'default' => Global_Colors::COLOR_PRIMARY, ), 'selectors' => array( '{{WRAPPER}} .premium-person-name' => 'color: {{VALUE}};', ), ) ); $this->add_group_control( Group_Control_Typography::get_type(), array( 'name' => 'name_typography', 'global' => array( 'default' => Global_Typography::TYPOGRAPHY_PRIMARY, ), 'selector' => '{{WRAPPER}} .premium-person-name', ) ); $this->add_group_control( Group_Control_Text_Shadow::get_type(), array( 'name' => 'name_shadow', 'selector' => '{{WRAPPER}} .premium-person-name', ) ); $this->add_responsive_control( 'name_padding', array( 'label' => __( 'Padding', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', 'em', '%' ), 'selectors' => array( '{{WRAPPER}} .premium-person-name' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), ) ); $this->end_controls_section(); $this->start_controls_section( 'premium_person_title_style', array( 'label' => __( 'Job Title', 'premium-addons-for-elementor' ), 'tab' => Controls_Manager::TAB_STYLE, ) ); $this->add_control( 'premium_person_title_color', array( 'label' => __( 'Color', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::COLOR, 'global' => array( 'default' => Global_Colors::COLOR_SECONDARY, ), 'selectors' => array( '{{WRAPPER}} .premium-person-title' => 'color: {{VALUE}};', ), ) ); $this->add_group_control( Group_Control_Typography::get_type(), array( 'name' => 'title_typography', 'global' => array( 'default' => Global_Typography::TYPOGRAPHY_PRIMARY, ), 'selector' => '{{WRAPPER}} .premium-person-title', ) ); $this->add_group_control( Group_Control_Text_Shadow::get_type(), array( 'name' => 'title_shadow', 'selector' => '{{WRAPPER}} .premium-person-title', ) ); $this->add_responsive_control( 'title_margin', array( 'label' => __( 'Margin', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', 'em', '%' ), 'selectors' => array( '{{WRAPPER}} .premium-person-title' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), ) ); $this->add_responsive_control( 'title_padding', array( 'label' => __( 'Padding', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', 'em', '%' ), 'selectors' => array( '{{WRAPPER}} .premium-person-title' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), ) ); $this->end_controls_section(); $this->start_controls_section( 'premium_person_description_style', array( 'label' => __( 'Description', 'premium-addons-for-elementor' ), 'tab' => Controls_Manager::TAB_STYLE, ) ); $this->add_control( 'premium_person_description_color', array( 'label' => __( 'Color', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::COLOR, 'global' => array( 'default' => Global_Colors::COLOR_TEXT, ), 'selectors' => array( '{{WRAPPER}} .premium-person-content' => 'color: {{VALUE}};', ), ) ); $this->add_group_control( Group_Control_Typography::get_type(), array( 'name' => 'description_typography', 'global' => array( 'default' => Global_Typography::TYPOGRAPHY_PRIMARY, ), 'selector' => '{{WRAPPER}} .premium-person-content', ) ); $this->add_group_control( Group_Control_Text_Shadow::get_type(), array( 'name' => 'description_shadow', 'selector' => '{{WRAPPER}} .premium-person-content', ) ); $this->add_responsive_control( 'description_padding', array( 'label' => __( 'Padding', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', 'em', '%' ), 'selectors' => array( '{{WRAPPER}} .premium-person-content' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), ) ); $this->end_controls_section(); $this->start_controls_section( 'premium_person_social_icon_style', array( 'label' => __( 'Social Icons', 'premium-addons-for-elementor' ), 'tab' => Controls_Manager::TAB_STYLE, 'condition' => array( 'premium_person_social_enable' => 'yes', ), ) ); $this->add_responsive_control( 'premium_person_social_size', array( 'label' => __( 'Size', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::SLIDER, 'size_units' => array( 'px', 'em', '%' ), 'label_block' => true, 'selectors' => array( '{{WRAPPER}} .premium-person-list-item i' => 'font-size: {{SIZE}}{{UNIT}};', ), ) ); $this->add_control( 'premium_person_social_color', array( 'label' => __( 'Color', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::COLOR, 'global' => array( 'default' => Global_Colors::COLOR_PRIMARY, ), 'selectors' => array( '{{WRAPPER}} .premium-person-list-item i' => 'color: {{VALUE}};', ), ) ); $this->add_control( 'premium_person_social_hover_color', array( 'label' => __( 'Hover Color', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::COLOR, 'global' => array( 'default' => Global_Colors::COLOR_SECONDARY, ), 'selectors' => array( '{{WRAPPER}} .premium-person-list-item:hover i' => 'color: {{VALUE}}', ), ) ); $this->add_control( 'premium_person_social_background', array( 'label' => __( 'Background Color', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::COLOR, 'selectors' => array( '{{WRAPPER}} .premium-person-list-item a' => 'background-color: {{VALUE}}', ), ) ); $this->add_control( 'premium_person_social_default_colors', array( 'label' => __( 'Brands Default Colors', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::SWITCHER, 'prefix_class' => 'premium-person-defaults-', ) ); $this->add_control( 'premium_person_social_hover_background', array( 'label' => __( 'Hover Background Color', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::COLOR, 'selectors' => array( '{{WRAPPER}} li.premium-person-list-item:hover a' => 'background-color: {{VALUE}}', ), 'condition' => array( 'premium_person_social_default_colors!' => 'yes', ), ) ); $this->add_group_control( Group_Control_Border::get_type(), array( 'name' => 'premium_person_social_border', 'selector' => '{{WRAPPER}} .premium-person-list-item a', ) ); $this->add_responsive_control( 'premium_person_social_radius', array( 'label' => __( 'Border Radius', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', 'em', '%' ), 'selectors' => array( '{{WRAPPER}} .premium-person-list-item a' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}', ), 'condition' => array( 'social_adv_radius!' => 'yes', ), ) ); $this->add_control( 'social_adv_radius', array( 'label' => __( 'Advanced Border Radius', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::SWITCHER, 'description' => __( 'Apply custom radius values. Get the radius value from ', 'premium-addons-for-elementor' ) . 'here' . __('. See ', 'premium-addons-for-elementor') . 'tutorial', ) ); $this->add_control( 'social_adv_radius_value', array( 'label' => __( 'Border Radius', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::TEXT, 'dynamic' => array( 'active' => true ), 'selectors' => array( '{{WRAPPER}} .premium-person-list-item a' => 'border-radius: {{VALUE}};', ), 'condition' => array( 'social_adv_radius' => 'yes', ), ) ); $this->add_responsive_control( 'premium_person_social_margin', array( 'label' => __( 'Margin', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', 'em', '%' ), 'selectors' => array( '{{WRAPPER}} .premium-person-list-item a' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), ) ); $this->add_responsive_control( 'premium_person_social_padding', array( 'label' => __( 'Padding', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', 'em', '%' ), 'selectors' => array( '{{WRAPPER}} .premium-person-list-item a' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), ) ); $this->end_controls_section(); $this->start_controls_section( 'premium_person_general_style', array( 'label' => __( 'Content', 'premium-addons-for-elementor' ), 'tab' => Controls_Manager::TAB_STYLE, ) ); $this->add_control( 'premium_person_content_background_color', array( 'label' => __( 'Background Color', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::COLOR, 'default' => 'rgba(245,245,245,0.97)', 'selectors' => array( '{{WRAPPER}} .premium-person-info' => 'background-color: {{VALUE}};', ), ) ); $this->add_responsive_control( 'premium_person_border_bottom_width', array( 'label' => __( 'Bottom Offset', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::SLIDER, 'size_units' => array( 'px', 'em', '%' ), 'range' => array( 'px' => array( 'min' => 0, 'max' => 700, ), ), 'default' => array( 'size' => 20, 'unit' => 'px', ), 'label_block' => true, 'condition' => array( 'premium_person_style' => 'style1', ), 'selectors' => array( '{{WRAPPER}} .premium-person-info' => 'bottom: {{SIZE}}{{UNIT}}', ), ) ); $this->add_responsive_control( 'premium_person_content_speed', array( 'label' => __( 'Transition Duration (sec)', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::SLIDER, 'range' => array( 'px' => array( 'min' => 0, 'max' => 5, 'step' => 0.1, ), ), 'selectors' => array( '{{WRAPPER}} .premium-person-info, {{WRAPPER}} .premium-person-image-container img' => 'transition-duration: {{SIZE}}s', ), ) ); $this->add_responsive_control( 'premium_person_content_padding', array( 'label' => __( 'Padding', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array( 'px', 'em', '%' ), 'selectors' => array( '{{WRAPPER}} .premium-person-info-container' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), ) ); $this->end_controls_section(); $this->start_controls_section( 'carousel_style', array( 'label' => __( 'Carousel', 'premium-addons-for-elementor' ), 'tab' => Controls_Manager::TAB_STYLE, 'condition' => array( 'carousel' => 'yes', ), ) ); $this->add_control( 'arrow_color', array( 'label' => __( 'Color', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::COLOR, 'global' => array( 'default' => Global_Colors::COLOR_PRIMARY, ), 'selectors' => array( '{{WRAPPER}} .premium-persons-container .slick-arrow' => 'color: {{VALUE}};', ), ) ); $this->add_control( 'arrow_hover_color', array( 'label' => __( 'Hover Color', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::COLOR, 'global' => array( 'default' => Global_Colors::COLOR_PRIMARY, ), 'selectors' => array( '{{WRAPPER}} .premium-persons-container .slick-arrow:hover' => 'color: {{VALUE}};', ), ) ); $this->add_responsive_control( 'arrow_size', array( 'label' => __( 'Size', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::SLIDER, 'size_units' => array( 'px', '%', 'em' ), 'selectors' => array( '{{WRAPPER}} .premium-persons-container .slick-arrow i' => 'font-size: {{SIZE}}{{UNIT}};', ), ) ); $this->add_control( 'arrow_background', array( 'label' => __( 'Background Color', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::COLOR, 'global' => array( 'default' => Global_Colors::COLOR_SECONDARY, ), 'selectors' => array( '{{WRAPPER}} .premium-persons-container .slick-arrow' => 'background-color: {{VALUE}};', ), ) ); $this->add_control( 'arrow_hover_background', array( 'label' => __( 'Background Hover Color', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::COLOR, 'global' => array( 'default' => Global_Colors::COLOR_SECONDARY, ), 'selectors' => array( '{{WRAPPER}} .premium-persons-container .slick-arrow:hover' => 'background-color: {{VALUE}};', ), ) ); $this->add_control( 'arrow_border_radius', array( 'label' => __( 'Border Radius', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::SLIDER, 'size_units' => array( 'px', '%', 'em' ), 'selectors' => array( '{{WRAPPER}} .premium-persons-container .slick-arrow' => 'border-radius: {{SIZE}}{{UNIT}};', ), ) ); $this->add_control( 'arrow_padding', array( 'label' => __( 'Padding', 'premium-addons-for-elementor' ), 'type' => Controls_Manager::SLIDER, 'size_units' => array( 'px', '%', 'em' ), 'selectors' => array( '{{WRAPPER}} .premium-persons-container .slick-arrow' => 'padding: {{SIZE}}{{UNIT}};', ), ) ); $this->end_controls_section(); } /** * Render Persons widget output on the frontend. * * Written in PHP and used to generate the final HTML. * * @since 1.0.0 * @access protected */ protected function render() { $settings = $this->get_settings_for_display(); $image_effect = $settings['premium_person_hover_image_effect']; $image_html = ''; if ( ! empty( $settings['premium_person_image']['url'] ) ) { $image_html = Group_Control_Image_Size::get_attachment_image_html( $settings, 'thumbnail', 'premium_person_image' ); } $this->add_render_attribute( 'persons_container', 'class', array( 'premium-persons-container', 'premium-person-' . $settings['premium_person_style'], ) ); $this->add_render_attribute( 'person_container', 'class', array( 'premium-person-container', 'premium-person-' . $image_effect . '-effect', ) ); if ( 'yes' === $settings['multiple'] ) { $persons = $settings['multiple_persons']; $this->add_render_attribute( 'persons_container', 'class', 'multiple-persons' ); $this->add_render_attribute( 'persons_container', 'data-persons-equal', $settings['multiple_equal_height'] ); } $carousel = 'yes' === $settings['carousel'] ? true : false; if ( $carousel ) { $this->add_render_attribute( 'persons_container', 'data-carousel', $carousel ); $this->add_render_attribute( 'persons_container', array( 'data-rtl' => is_rtl(), ) ); } ?>