navasena/wp-content/plugins/thinkai-plugin/elementor/feature_carousel.php

1637 lines
52 KiB
PHP
Raw Permalink Normal View History

2024-07-31 13:12:38 +07:00
<?php namespace THINKAIPLUGIN\Element;
use Elementor\Controls_Manager;
use Elementor\Controls_Stack;
use Elementor\Group_Control_Typography;
use Elementor\Group_Control_Border;
use Elementor\Repeater;
use Elementor\Widget_Base;
use Elementor\Utils;
use Elementor\Group_Control_Text_Shadow;
use \Elementor\Group_Control_Box_Shadow;
use \Elementor\Group_Control_Background;
use \Elementor\Group_Control_Image_Size;
use \Elementor\Group_Control_Text_Stroke;
use Elementor\Plugin;
/**
* Elementor button widget.
* Elementor widget that displays a button with the ability to control every
* aspect of the button design.
*
* @since 1.0.0
*/
class Feature_Carousel extends Widget_Base {
/**
* Get widget name.
* Retrieve button widget name.
*
* @since 1.0.0
* @access public
* @return string Widget name.
*/
public function get_name() {
return 'thinkai_feature_carousel';
}
/**
* Get widget title.
* Retrieve button widget title.
*
* @since 1.0.0
* @access public
* @return string Widget title.
*/
public function get_title() {
return esc_html__( 'Thinkai Feature Carousel', 'thinkai' );
}
/**
* Get widget icon.
* Retrieve button widget icon.
*
* @since 1.0.0
* @access public
* @return string Widget icon.
*/
public function get_icon() {
return 'eicon-banner';
}
/**
* Get widget categories.
* Retrieve the list of categories the button widget belongs to.
* Used to determine where to display the widget in the editor.
*
* @since 2.0.0
* @access public
* @return array Widget categories.
*/
public function get_categories() {
return [ 'thinkai' ];
}
public function get_script_depends() {
wp_register_script( 'feature-script', YT_URL . 'assets/js/feature-carousel.js', [ 'elementor-frontend' ], '1.0.0', true );
return [ 'feature-script' ];
}
/**
* Register button widget controls.
* Adds different input fields to allow the user to change and customize the widget settings.
*
* @since 1.0.0
* @access protected
*/
protected function register_controls() {
$this->start_controls_section(
'feature_carousel',
[
'label' => esc_html__( 'Thinkai Feature Carousel', 'thinkai' ),
]
);
$this->add_control(
'layout_control',
[
'label' => esc_html__( 'Layout Style', 'thinkai' ),
'label_block' => true,
'type' => Controls_Manager::SELECT,
'default' => '1',
'options' => array(
'1' => esc_html__( 'Style One ', 'thinkai'),
'2' => esc_html__( 'Style Two ', 'thinkai'),
'3' => esc_html__( 'Style Three ', 'thinkai'),
'4' => esc_html__( 'Style Four ', 'thinkai'),
'5' => esc_html__( 'Style Five ', 'thinkai'),
'6' => esc_html__( 'Style Six ', 'thinkai'),
'7' => esc_html__( 'Style Seven ', 'thinkai'),
),
]
);
//Vertical Client Carousel Repeater
$repeater = new Repeater();
//Title
$repeater->add_control(
'title',
[
'label' => __( 'Title', 'thinkai' ),
'label_block' => true,
'type' => Controls_Manager::TEXT,
'dynamic' => [
'active' => true,
],
'placeholder' => __( 'Enter your Title', 'thinkai' ),
]
);
//text
$repeater->add_control(
'text',
[
'label' => __( 'Text', 'thinkai' ),
'type' => Controls_Manager::TEXTAREA,
'dynamic' => [
'active' => true,
],
'placeholder' => __( 'Enter your Text', 'thinkai' ),
]
);
//Icon Image
$repeater->add_control(
'icon_image',
[
'label' => __( 'Choose Icon Image', 'thinkai' ),
'type' => Controls_Manager::MEDIA,
'default' => ['url' => Utils::get_placeholder_image_src(),],
]
);
//Link
$repeater->add_control(
'link_option',
[
'label' => esc_html__( 'Select link Option', 'thinkai' ),
'label_block' => true,
'type' => Controls_Manager::SELECT,
'default' => 'extranal',
'options' => array(
'extranal' => esc_html__( 'Extranal ', 'thinkai'),
'page' => esc_html__( 'Page ', 'thinkai'),
),
]
);
$repeater->add_control(
'link',
[
'label' => __( 'External Link', 'thinkai' ),
'type' => Controls_Manager::URL,
'label_block' => true,
'placeholder' => __( 'https://your-link.com', 'thinkai' ),
'show_external' => true,
'default' => [
'url' => '',
'is_external' => true,
'nofollow' => true,
],
'condition' => [
'link_option' => 'extranal'
]
]
);
$repeater->add_control(
'page_select',
[
'label' => esc_html__( 'Select Page', 'thinkai' ),
'label_block' => true,
'type' => Controls_Manager::SELECT2,
'default' => 'extranal',
'options' => thinkai_page_list(),
'condition' => [
'link_option' => 'page'
]
]
);
$this->add_control(
'feature',
[
'label' => __('Add Slide Item', 'thinkai'),
'type' => Controls_Manager::REPEATER,
'fields' => $repeater->get_controls(),
'title_field' => '{{{ title }}}',
'condition' => [
'layout_control' => '1'
]
]
);
//Feature Carousel Repeater
$repeater = new Repeater();
$repeater->add_control(
'title',
[
'label' => __( 'Title', 'thinkai' ),
'label_block' => true,
'type' => Controls_Manager::TEXT,
'dynamic' => [
'active' => true,
],
'placeholder' => __( 'Enter your Title', 'thinkai' ),
]
);
//Shape Image
$repeater->add_control(
'shape_image',
[
'label' => __( 'Choose Shape Image', 'thinkai' ),
'type' => Controls_Manager::MEDIA,
'default' => ['url' => Utils::get_placeholder_image_src(),],
]
);
//Icons
$repeater->add_control(
'icon',
[
'label' => esc_html__('Enter The icons', 'thinkai'),
'type' => \Elementor\Controls_Manager::ICONS,
'default' => [
'value' => 'icon-medal',
'library' => 'solid',
],
]
);
//text
$repeater->add_control(
'text',
[
'label' => __( 'Text', 'thinkai' ),
'type' => Controls_Manager::TEXTAREA,
'dynamic' => [
'active' => true,
],
'placeholder' => __( 'Enter your Text', 'thinkai' ),
]
);
//Button Title
$repeater->add_control(
'btn_title',
[
'label' => __( 'Button Title', 'thinkai' ),
'label_block' => true,
'type' => Controls_Manager::TEXT,
'dynamic' => [
'active' => true,
],
'placeholder' => __( 'Enter your Button Title', 'thinkai' ),
]
);
//Link
$repeater->add_control(
'link_option',
[
'label' => esc_html__( 'Select link Option', 'thinkai' ),
'label_block' => true,
'type' => Controls_Manager::SELECT,
'default' => 'extranal',
'options' => array(
'extranal' => esc_html__( 'Extranal ', 'thinkai'),
'page' => esc_html__( 'Page ', 'thinkai'),
),
]
);
$repeater->add_control(
'link',
[
'label' => __( 'External Link', 'thinkai' ),
'type' => Controls_Manager::URL,
'label_block' => true,
'placeholder' => __( 'https://your-link.com', 'thinkai' ),
'show_external' => true,
'default' => [
'url' => '',
'is_external' => true,
'nofollow' => true,
],
'condition' => [
'link_option' => 'extranal'
]
]
);
$repeater->add_control(
'page_select',
[
'label' => esc_html__( 'Select Page', 'thinkai' ),
'label_block' => true,
'type' => Controls_Manager::SELECT2,
'default' => 'extranal',
'options' => thinkai_page_list(),
'condition' => [
'link_option' => 'page'
]
]
);
$this->add_control(
'feature_v2',
[
'label' => __('Add Slide Item', 'thinkai'),
'type' => Controls_Manager::REPEATER,
'fields' => $repeater->get_controls(),
'title_field' => '{{{ title }}}',
'condition' => [
'layout_control' => '2'
]
]
);
//Feature Carousel Repeater
$repeater = new Repeater();
//Shape Image
$repeater->add_control(
'shape_image',
[
'label' => __( 'Choose Shape Image', 'thinkai' ),
'type' => Controls_Manager::MEDIA,
'default' => ['url' => Utils::get_placeholder_image_src(),],
]
);
//Shape Image
$repeater->add_control(
'hover_shape_image',
[
'label' => __( 'Choose Hover Shape Image', 'thinkai' ),
'type' => Controls_Manager::MEDIA,
'default' => ['url' => Utils::get_placeholder_image_src(),],
]
);
//Icons
$repeater->add_control(
'icon',
[
'label' => esc_html__('Enter The icons', 'thinkai'),
'type' => \Elementor\Controls_Manager::ICONS,
'default' => [
'value' => 'icon-startup',
'library' => 'solid',
],
]
);
$repeater->add_control(
'title',
[
'label' => __( 'Title', 'thinkai' ),
'label_block' => true,
'type' => Controls_Manager::TEXT,
'dynamic' => [
'active' => true,
],
'placeholder' => __( 'Enter your Title', 'thinkai' ),
]
);
//text
$repeater->add_control(
'text',
[
'label' => __( 'Text', 'thinkai' ),
'type' => Controls_Manager::TEXTAREA,
'dynamic' => [
'active' => true,
],
'placeholder' => __( 'Enter your Text', 'thinkai' ),
]
);
//Button Title
$repeater->add_control(
'btn_title',
[
'label' => __( 'Button Title', 'thinkai' ),
'label_block' => true,
'type' => Controls_Manager::TEXT,
'dynamic' => [
'active' => true,
],
'placeholder' => __( 'Enter your Button Title', 'thinkai' ),
]
);
//Link
$repeater->add_control(
'link_option',
[
'label' => esc_html__( 'Select link Option', 'thinkai' ),
'label_block' => true,
'type' => Controls_Manager::SELECT,
'default' => 'extranal',
'options' => array(
'extranal' => esc_html__( 'Extranal ', 'thinkai'),
'page' => esc_html__( 'Page ', 'thinkai'),
),
]
);
$repeater->add_control(
'link',
[
'label' => __( 'External Link', 'thinkai' ),
'type' => Controls_Manager::URL,
'label_block' => true,
'placeholder' => __( 'https://your-link.com', 'thinkai' ),
'show_external' => true,
'default' => [
'url' => '',
'is_external' => true,
'nofollow' => true,
],
'condition' => [
'link_option' => 'extranal'
]
]
);
$repeater->add_control(
'page_select',
[
'label' => esc_html__( 'Select Page', 'thinkai' ),
'label_block' => true,
'type' => Controls_Manager::SELECT2,
'default' => 'extranal',
'options' => thinkai_page_list(),
'condition' => [
'link_option' => 'page'
]
]
);
$this->add_control(
'feature_v3',
[
'label' => __('Add Slide Item', 'thinkai'),
'type' => Controls_Manager::REPEATER,
'fields' => $repeater->get_controls(),
'title_field' => '{{{ title }}}',
'condition' => [
'layout_control' => '3'
]
]
);
//Feature Carousel Repeater
$repeater = new Repeater();
//Shape Image
$repeater->add_control(
'shape_image',
[
'label' => __( 'Choose BG Shape Image', 'thinkai' ),
'type' => Controls_Manager::MEDIA,
'default' => ['url' => Utils::get_placeholder_image_src(),],
]
);
//Icons
$repeater->add_control(
'icon',
[
'label' => esc_html__('Enter The icons', 'thinkai'),
'type' => \Elementor\Controls_Manager::ICONS,
'default' => [
'value' => 'icon-website',
'library' => 'solid',
],
]
);
$repeater->add_control(
'title',
[
'label' => __( 'Title', 'thinkai' ),
'label_block' => true,
'type' => Controls_Manager::TEXT,
'dynamic' => [
'active' => true,
],
'placeholder' => __( 'Enter your Title', 'thinkai' ),
]
);
//text
$repeater->add_control(
'text',
[
'label' => __( 'Text', 'thinkai' ),
'type' => Controls_Manager::TEXTAREA,
'dynamic' => [
'active' => true,
],
'placeholder' => __( 'Enter your Text', 'thinkai' ),
]
);
$repeater->add_control(
'text2',
[
'label' => __( 'More Description', 'thinkai' ),
'label_block' => true,
'type' => Controls_Manager::TEXT,
'dynamic' => [
'active' => true,
],
'placeholder' => __( 'Enter your Description', 'thinkai' ),
]
);
$repeater->add_control(
'text3',
[
'label' => __( 'More Description', 'thinkai' ),
'label_block' => true,
'type' => Controls_Manager::TEXT,
'dynamic' => [
'active' => true,
],
'placeholder' => __( 'Enter your Description', 'thinkai' ),
]
);
//Button Title
$repeater->add_control(
'btn_title',
[
'label' => __( 'Button Title', 'thinkai' ),
'label_block' => true,
'type' => Controls_Manager::TEXT,
'dynamic' => [
'active' => true,
],
'placeholder' => __( 'Enter your Button Title', 'thinkai' ),
]
);
//Link
$repeater->add_control(
'link_option',
[
'label' => esc_html__( 'Select link Option', 'thinkai' ),
'label_block' => true,
'type' => Controls_Manager::SELECT,
'default' => 'extranal',
'options' => array(
'extranal' => esc_html__( 'Extranal ', 'thinkai'),
'page' => esc_html__( 'Page ', 'thinkai'),
),
]
);
$repeater->add_control(
'link',
[
'label' => __( 'External Link', 'thinkai' ),
'type' => Controls_Manager::URL,
'label_block' => true,
'placeholder' => __( 'https://your-link.com', 'thinkai' ),
'show_external' => true,
'default' => [
'url' => '',
'is_external' => true,
'nofollow' => true,
],
'condition' => [
'link_option' => 'extranal'
]
]
);
$repeater->add_control(
'page_select',
[
'label' => esc_html__( 'Select Page', 'thinkai' ),
'label_block' => true,
'type' => Controls_Manager::SELECT2,
'default' => 'extranal',
'options' => thinkai_page_list(),
'condition' => [
'link_option' => 'page'
]
]
);
$this->add_control(
'feature_v4',
[
'label' => __('Add Slide Item', 'thinkai'),
'type' => Controls_Manager::REPEATER,
'fields' => $repeater->get_controls(),
'title_field' => '{{{ title }}}',
'condition' => [
'layout_control' => '4'
]
]
);
//Feature Carousel Repeater
$repeater = new Repeater();
//Shape Image
$repeater->add_control(
'shape_image',
[
'label' => __( 'Choose BG Shape Image', 'thinkai' ),
'type' => Controls_Manager::MEDIA,
'default' => ['url' => Utils::get_placeholder_image_src(),],
]
);
//Icons
$repeater->add_control(
'icon',
[
'label' => esc_html__('Enter The icons', 'thinkai'),
'type' => \Elementor\Controls_Manager::ICONS,
'default' => [
'value' => 'icon-website',
'library' => 'solid',
],
]
);
//Sub Title
$repeater->add_control(
'sub_title',
[
'label' => __( 'Sub Title', 'thinkai' ),
'label_block' => true,
'type' => Controls_Manager::TEXT,
'dynamic' => [
'active' => true,
],
'placeholder' => __( 'Enter your Sub Title', 'thinkai' ),
]
);
//Title
$repeater->add_control(
'title',
[
'label' => __( 'Title', 'thinkai' ),
'label_block' => true,
'type' => Controls_Manager::TEXT,
'dynamic' => [
'active' => true,
],
'placeholder' => __( 'Enter your Title', 'thinkai' ),
]
);
//Link
$repeater->add_control(
'link_option',
[
'label' => esc_html__( 'Select link Option', 'thinkai' ),
'label_block' => true,
'type' => Controls_Manager::SELECT,
'default' => 'extranal',
'options' => array(
'extranal' => esc_html__( 'Extranal ', 'thinkai'),
'page' => esc_html__( 'Page ', 'thinkai'),
),
]
);
$repeater->add_control(
'link',
[
'label' => __( 'External Link', 'thinkai' ),
'type' => Controls_Manager::URL,
'label_block' => true,
'placeholder' => __( 'https://your-link.com', 'thinkai' ),
'show_external' => true,
'default' => [
'url' => '',
'is_external' => true,
'nofollow' => true,
],
'condition' => [
'link_option' => 'extranal'
]
]
);
$repeater->add_control(
'page_select',
[
'label' => esc_html__( 'Select Page', 'thinkai' ),
'label_block' => true,
'type' => Controls_Manager::SELECT2,
'default' => 'extranal',
'options' => thinkai_page_list(),
'condition' => [
'link_option' => 'page'
]
]
);
$this->add_control(
'feature_v5',
[
'label' => __('Add Slide Item', 'thinkai'),
'type' => Controls_Manager::REPEATER,
'fields' => $repeater->get_controls(),
'title_field' => '{{{ title }}}',
'condition' => [
'layout_control' => '5'
]
]
);
//Feature Carousel Repeater
$repeater = new Repeater();
$repeater->add_control(
'icon',
[
'label' => esc_html__('Enter The icons', 'thinkai'),
'type' => \Elementor\Controls_Manager::ICONS,
'default' => [
'value' => 'icon-website',
'library' => 'solid',
],
]
);
//Title
$repeater->add_control(
'title',
[
'label' => __( 'Title', 'thinkai' ),
'label_block' => true,
'type' => Controls_Manager::TEXT,
'dynamic' => [
'active' => true,
],
'placeholder' => __( 'Enter your Title', 'thinkai' ),
]
);
//Text
$repeater->add_control(
'text',
[
'label' => __( 'Description', 'thinkai' ),
'label_block' => true,
'type' => Controls_Manager::TEXT,
'dynamic' => [
'active' => true,
],
'placeholder' => __( 'Enter your Description', 'thinkai' ),
]
);
//button Title
$repeater->add_control(
'btn_title',
[
'label' => __( 'Button Title', 'thinkai' ),
'label_block' => true,
'type' => Controls_Manager::TEXT,
'dynamic' => [
'active' => true,
],
'placeholder' => __( 'Enter your Button Title', 'thinkai' ),
]
);
//Link
$repeater->add_control(
'link_option',
[
'label' => esc_html__( 'Select link Option', 'thinkai' ),
'label_block' => true,
'type' => Controls_Manager::SELECT,
'default' => 'extranal',
'options' => array(
'extranal' => esc_html__( 'Extranal ', 'thinkai'),
'page' => esc_html__( 'Page ', 'thinkai'),
),
]
);
$repeater->add_control(
'link',
[
'label' => __( 'External Link', 'thinkai' ),
'type' => Controls_Manager::URL,
'label_block' => true,
'placeholder' => __( 'https://your-link.com', 'thinkai' ),
'show_external' => true,
'default' => [
'url' => '',
'is_external' => true,
'nofollow' => true,
],
'condition' => [
'link_option' => 'extranal'
]
]
);
$repeater->add_control(
'page_select',
[
'label' => esc_html__( 'Select Page', 'thinkai' ),
'label_block' => true,
'type' => Controls_Manager::SELECT2,
'default' => 'extranal',
'options' => thinkai_page_list(),
'condition' => [
'link_option' => 'page'
]
]
);
$this->add_control(
'feature_v6',
[
'label' => __('Add Slide Item', 'thinkai'),
'type' => Controls_Manager::REPEATER,
'fields' => $repeater->get_controls(),
'title_field' => '{{{ title }}}',
'condition' => [
'layout_control' => '6'
],
'default' => [
[
'title' => esc_html__( 'Marketing', 'thinkai' ),
'text' => esc_html__( 'Trouble that are bound to ensue and equal blame belongs...', 'thinkai' ),
'btn_title' => esc_html__( 'Read More', 'thinkai' ),
'link' => esc_html__( '#', 'thinkai' ),
],
[
'title' => esc_html__( 'Human Resources', 'thinkai' ),
'text' => esc_html__( 'Righteous indignation and dislike men who are so beguiled...', 'thinkai' ),
'btn_title' => esc_html__( 'Read More', 'thinkai' ),
'link' => esc_html__( '#', 'thinkai' ),
],
[
'title' => esc_html__( 'Education', 'thinkai' ),
'text' => esc_html__( 'Foresee the pain and trouble that all are bound to ensue equal...', 'thinkai' ),
'btn_title' => esc_html__( 'Read More', 'thinkai' ),
'link' => esc_html__( '#', 'thinkai' ),
],
[
'title' => esc_html__( 'Medical', 'thinkai' ),
'text' => esc_html__( 'Every pleasure is too be welcomed and every pain avoided.', 'thinkai' ),
'btn_title' => esc_html__( 'Read More', 'thinkai' ),
'link' => esc_html__( '#', 'thinkai' ),
],
],
]
);
//Feature Image
$this->add_control(
'feature_img',
[
'label' => __( 'Choose Feature Image', 'thinkai' ),
'type' => Controls_Manager::MEDIA,
'default' => ['url' => Utils::get_placeholder_image_src(),],
'condition' => [
'layout_control' => '7'
],
]
);
//About Ai Powered Carousel Repeater
$repeater = new Repeater();
$repeater->add_control(
'title',
[
'label' => __( 'Title', 'thinkai' ),
'label_block' => true,
'type' => Controls_Manager::TEXT,
'dynamic' => [
'active' => true,
],
'placeholder' => __( 'Enter your Title', 'thinkai' ),
]
);
//Text
$repeater->add_control(
'text',
[
'label' => __( 'Description', 'thinkai' ),
'label_block' => true,
'type' => Controls_Manager::TEXT,
'dynamic' => [
'active' => true,
],
'placeholder' => __( 'Enter your Description', 'thinkai' ),
]
);
$this->add_control(
'feature_v7',
[
'label' => __('Add Slide Item', 'thinkai'),
'type' => Controls_Manager::REPEATER,
'fields' => $repeater->get_controls(),
'title_field' => '{{{ title }}}',
'condition' => [
'layout_control' => '7'
],
'default' => [
[
'title' => esc_html__( 'AI-Powered Journey', 'thinkai' ),
'text' => esc_html__( 'Rationally encounter consequences that allextremely painful or again is there anyone wholoves or pursues desires our power of choice is and to do what we like best.', 'thinkai' ),
],
[
'title' => esc_html__( 'AI-Powered Journey', 'thinkai' ),
'text' => esc_html__( 'Rationally encounter consequences that allextremely painful or again is there anyone wholoves or pursues desires our power of choice is and to do what we like best.', 'thinkai' ),
],
[
'title' => esc_html__( 'AI-Powered Journey', 'thinkai' ),
'text' => esc_html__( 'Rationally encounter consequences that allextremely painful or again is there anyone wholoves or pursues desires our power of choice is and to do what we like best.', 'thinkai' ),
],
],
]
);
$this->end_controls_section();
/************************************************************************
Tab Style Start
*************************************************************************/
/**Layout Control Style**/
$this->start_controls_section(
'thinkai_layout_style',
[
'label' => esc_html__('Thinkai Layout Setting', 'thinkai'),
'tab' => Controls_Manager::TAB_STYLE,
]
);
$this->add_responsive_control(
'thinkai_layout_margin',
[
'label' => __( 'Spacing', 'thinkai' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [ 'px', 'em', '%' ],
'selectors' => [
'{{WRAPPER}} .thinkai-card' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}} !important;'
],
'frontend_available' => true,
]
);
$this->add_responsive_control(
'thinkai_layout_padding',
[
'label' => __( 'Gapping', 'thinkai' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [ 'px', 'em', '%' ],
'selectors' => [
'{{WRAPPER}} .thinkai-card' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}} !important;'
],
'frontend_available' => true,
]
);
$this->add_control(
'thinkai_layout_background',
[
'label' => __( 'Background', 'thinkai' ),
'type' => Controls_Manager::HEADING,
'separator' => 'before',
]
);
$this->add_group_control(
Group_Control_Background::get_type(),
[
'name' => 'thinkai_layout_bgtype',
'label' => __( 'Button Background', 'thinkai' ),
'types' => [ 'classic', 'gradient', 'video' ],
'selector' =>
'{{WRAPPER}} .thinkai-card',
]
);
$this->end_controls_section();
//Title Style
$this->start_controls_section(
'title_style',
[
'label' => esc_html__( 'Title Style Settings', 'thinkai' ),
'tab' => Controls_Manager::TAB_STYLE,
]
);
$this->add_responsive_control(
'title__margin',
[
'label' => esc_html__( 'Margin', 'thinkai' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => ['px', '%', 'em'],
'selectors' => [
'{{WRAPPER}} .te-title' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}} !important;',
],
'separator' => 'before',
]
);
$this->add_responsive_control(
'title_padding',
[
'label' => esc_html__( 'Padding', 'thinkai' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => ['px', '%', 'em'],
'selectors' => [
'{{WRAPPER}} .te-title' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}} !important;',
],
'separator' => 'before',
]
);
$this->add_control(
'title_color',
[
'label' => esc_html__( 'Text Color', 'thinkai' ),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .te-title' => 'color: {{VALUE}} !important;',
'{{WRAPPER}} .te-title a' => 'color: {{VALUE}} !important;',
],
]
);
$this->add_group_control(
Group_Control_Typography::get_type(),
[
'name' => 'title_typography',
'label' => __('Typography', 'thinkai'),
'selector' => '{{WRAPPER}} .te-title,
{{WRAPPER}} .te-title a',
]
);
$this->add_group_control(
Group_Control_Text_Stroke::get_type(),
[
'name' => 'title_text_stroke',
'selector' => '{{WRAPPER}} .te-title',
]
);
$this->add_group_control(
Group_Control_Text_Shadow::get_type(),
[
'name' => 'title_text_shadow',
'selector' => '{{WRAPPER}} .te-title',
]
);
$this->end_controls_section();
//Text Style
$this->start_controls_section(
'text_style',
[
'label' => esc_html__( 'Text Style Settings', 'thinkai' ),
'tab' => Controls_Manager::TAB_STYLE,
]
);
$this->add_responsive_control(
'text__margin',
[
'label' => esc_html__( 'Margin', 'thinkai' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => ['px', '%', 'em'],
'selectors' => [
'{{WRAPPER}} .te-text' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}} !important;',
],
'separator' => 'before',
]
);
$this->add_responsive_control(
'text_padding',
[
'label' => esc_html__( 'Padding', 'thinkai' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => ['px', '%', 'em'],
'selectors' => [
'{{WRAPPER}} .te-text' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}} !important;',
],
'separator' => 'before',
]
);
$this->add_control(
'text_color',
[
'label' => esc_html__( 'Text Color', 'thinkai' ),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .te-text' => 'color: {{VALUE}} !important;',
],
]
);
$this->add_group_control(
Group_Control_Typography::get_type(),
[
'name' => 'text_typography',
'label' => __('Typography', 'thinkai'),
'selector' => '{{WRAPPER}} .te-text',
]
);
$this->add_group_control(
Group_Control_Text_Stroke::get_type(),
[
'name' => 'text_text_stroke',
'selector' => '{{WRAPPER}} .te-text',
]
);
$this->add_group_control(
Group_Control_Text_Shadow::get_type(),
[
'name' => 'text_text_shadow',
'selector' => '{{WRAPPER}} .te-text',
]
);
$this->end_controls_section();
}
/**
* Render button 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();
$allowed_tags = wp_kses_allowed_html('post');
$layout = $settings[ 'layout_control' ];
?>
<?php if($layout == '7') : ?>
<div class="intro-style2__content-bottom">
<div class="row">
<div class="col-xl-6 col-lg-5">
<div class="intro-style2__content-bottom-img">
<img src="<?php echo esc_url(wp_get_attachment_url($settings['feature_img']['id'])); ?>" alt="<?php bloginfo( 'name' ); ?>">
</div>
</div>
<div class="col-xl-6 col-md-7">
<div class="intro-style2__content-bottom-content">
<div class="intro-style2__content-bottom-content-inner">
<div class="owl-carousel owl-theme thm-owl__carousel intro-style2-carousel"
data-owl-options='{
"loop": true,
"autoplay": false,
"margin": 0,
"nav": false,
"dots": true,
"smartSpeed": 500,
"autoplayTimeout": 10000,
"navText": ["<span class=\"left icon-left-arrow\"></span>","<span class=\"right icon-right-arrow\"></span>"],
"responsive": {
"0": {
"items": 1
},
"768": {
"items": 1
},
"992": {
"items": 1
},
"1200": {
"items": 1
}
}
}'>
<?php
foreach ( $settings['feature_v7'] as $key => $item ) {
?>
<div class="single-content">
<h2 class="te-title"><?php echo wp_kses($item['title'], true); ?></h2>
<p class="te-text"><?php echo wp_kses($item['text'], true); ?></p>
</div>
<?php } ?>
</div>
</div>
</div>
</div>
</div>
</div>
<?php elseif($layout == '6') : ?>
<!--Start Templates Style2-->
<section class="templates-style2 p-0 m-0">
<div class="container">
<div class="row">
<div class="col-xl-12">
<div class="owl-carousel owl-theme thm-owl__carousel templates-style2__carousel"
data-owl-options='{
"loop": true,
"autoplay": false,
"margin": 30,
"nav": false,
"dots": false,
"smartSpeed": 500,
"autoplayTimeout": 10000,
"navText": ["<span class=\"left icon-right-arrow-4\"></span>","<span class=\"right icon-right-arrow-4\"></span>"],
"responsive": {
"0": {
"items": 1
},
"768": {
"items": 2
},
"992": {
"items": 3
},
"1200": {
"items": 3
}
}
}'>
<?php
$i = 1;
foreach ( $settings['feature_v6'] as $key => $item ) {
$icon = $item['icon'];
$page = $item['link_option'];
$page_select = $item[ 'page_select' ];
$ext_url = $item[ 'link' ];
if( $page == 'page' ){
$mount_link = get_page_link( $page_select );
}else{
$mount_link = $ext_url['url'];
$target = $ext_url['is_external'] ? ' target="_blank"' : '';
$nofollow = $ext_url['nofollow'] ? ' rel="nofollow"' : '';
}
?>
<!--Start Single Templates Style2-->
<div class="templates-style2__single">
<?php if($icon){ ?>
<div class="overlay-icon">
<?php
$icon = str_replace( "icon ", "", $item['icon']);
if( !empty( $icon ) ):?>
<?php \Elementor\Icons_Manager::render_icon( $icon ); ?>
<?php else:?>
<span class="icon-megaphone-1"></span>
<?php endif;?>
</div>
<?php } ?>
<div class="templates-style2__single-content">
<div class="counting">
<span><?php $i = sprintf('%02d', $i); echo $i; ?>.</span>
</div>
<div class="title-box">
<h3 class="te-title"><a href="<?php echo esc_url( $mount_link );?>" <?php if( $page == 'extranal' ) echo esc_attr( $target );?> <?php if( $page == 'extranal' ) echo esc_attr( $nofollow );?>><?php echo wp_kses($item['title'], true); ?></a></h3>
<p class="te-text"><?php echo wp_kses($item['text'], true); ?></p>
</div>
<div class="btn-box">
<a href="<?php echo esc_url( $mount_link );?>" <?php if( $page == 'extranal' ) echo esc_attr( $target );?> <?php if( $page == 'extranal' ) echo esc_attr( $nofollow );?>>
<span class="icon-right-arrow1"></span>
<?php echo wp_kses($item['btn_title'], true); ?>
</a>
</div>
</div>
</div>
<!--End Single Templates Style2-->
<?php $i++; } ?>
</div>
</div>
</div>
</div>
</section>
<!--End Templates Style2-->
<?php elseif($layout == '5') : ?>
<!--Start Templates Style1-->
<section class="templates-style1 p-0 m-0">
<div class="container">
<div class="templates-style1__inner">
<div class="owl-carousel owl-theme thm-owl__carousel templates-style1-carousel owl-nav-style-one"
data-owl-options='{
"loop": true,
"autoplay": false,
"margin": 30,
"nav": true,
"dots": false,
"smartSpeed": 500,
"autoplayTimeout": 10000,
"navText": ["<span class=\"left icon-left-arrow\"></span>","<span class=\"right icon-right-arrow\"></span>"],
"responsive": {
"0": {
"items": 1
},
"768": {
"items": 2
},
"992": {
"items": 3
},
"1200": {
"items": 4
},
"1450": {
"items": 5
},
"1700": {
"items": 6
}
}
}'>
<?php
foreach ( $settings['feature_v5'] as $key => $item ) {
$icon = $item['icon'];
$page = $item['link_option'];
$page_select = $item[ 'page_select' ];
$ext_url = $item[ 'link' ];
if( $page == 'page' ){
$mount_link = get_page_link( $page_select );
}else{
$mount_link = $ext_url['url'];
$target = $ext_url['is_external'] ? ' target="_blank"' : '';
$nofollow = $ext_url['nofollow'] ? ' rel="nofollow"' : '';
}
?>
<!--Start Templates Style1 Single-->
<div class="templates-style1__single">
<div class="shape1 float-bob-y">
<img class="zoominout" src="<?php echo esc_url(wp_get_attachment_url($item['shape_image']['id'])); ?>" alt="<?php bloginfo( 'name' ); ?>">
</div>
<div class="text-box">
<p class="te-text"><?php echo wp_kses($item['sub_title'], true); ?></p>
<h3 class="te-title">
<a href="<?php echo esc_url( $mount_link );?>" <?php if( $page == 'extranal' ) echo esc_attr( $target );?> <?php if( $page == 'extranal' ) echo esc_attr( $nofollow );?>><?php echo wp_kses($item['title'], true); ?></a>
</h3>
</div>
<div class="templates-style1__single-bottom">
<div class="btn-box">
<a href="<?php echo esc_url( $mount_link );?>" <?php if( $page == 'extranal' ) echo esc_attr( $target );?> <?php if( $page == 'extranal' ) echo esc_attr( $nofollow );?>><span class="icon-right-arrow1"></span></a>
</div>
<div class="icon-box">
<?php
$icon = str_replace( "icon ", "", $item['icon']);
if( !empty( $icon ) ):?>
<?php \Elementor\Icons_Manager::render_icon( $icon ); ?>
<?php else:?>
<span class="icon-customer-care"></span>
<?php endif;?>
</div>
</div>
</div>
<!--End Templates Style1 Single-->
<?php } ?>
</div>
</div>
</div>
</section>
<!--End Templates Style1-->
<?php elseif($layout == '4') : ?>
<!--Start Channels Style1-->
<section class="channels-style1 thinkai-card p-0 m-0">
<div class="owl-carousel owl-theme thm-owl__carousel channels-style1-carousel owl-nav-style-one"
data-owl-options='{
"loop": true,
"autoplay": false,
"margin": 30,
"nav": true,
"dots": false,
"smartSpeed": 500,
"autoplayTimeout": 10000,
"navText": ["<span class=\"left icon-left-arrow\"></span>","<span class=\"right icon-right-arrow\"></span>"],
"responsive": {
"0": {
"items": 1
},
"768": {
"items": 2
},
"992": {
"items": 3
},
"1200": {
"items": 4
}
}
}'>
<?php
foreach ( $settings['feature_v4'] as $key => $item ) {
$icon = $item['icon'];
$page = $item['link_option'];
$page_select = $item[ 'page_select' ];
$ext_url = $item[ 'link' ];
if( $page == 'page' ){
$mount_link = get_page_link( $page_select );
}else{
$mount_link = $ext_url['url'];
$target = $ext_url['is_external'] ? ' target="_blank"' : '';
$nofollow = $ext_url['nofollow'] ? ' rel="nofollow"' : '';
}
?>
<!--Start Channels Style1 Single-->
<div class="channels-style1__single">
<div class="pattern-bg" style="background-image: url('<?php echo esc_url(wp_get_attachment_url($item['shape_image']['id'])); ?>');"></div>
<div class="channels-style1__single-inner">
<div class="icon-box">
<?php
$icon = str_replace( "icon ", "", $item['icon']);
if( !empty( $icon ) ):?>
<?php \Elementor\Icons_Manager::render_icon( $icon ); ?>
<?php else:?>
<span class="icon-website"></span>
<?php endif;?>
</div>
<div class="text-box">
<h3 class="te-title"><a href="<?php echo esc_url( $mount_link );?>" <?php if( $page == 'extranal' ) echo esc_attr( $target );?> <?php if( $page == 'extranal' ) echo esc_attr( $nofollow );?>><?php echo wp_kses($item['title'], true); ?></a></h3>
<p class="te-text"><?php echo wp_kses($item['text'], true); ?></p>
<p class="more-text te-text"> <?php echo wp_kses($item['text2'], true); ?></p>
<p class="more-text2 te-text"><?php echo wp_kses($item['text3'], true); ?></p>
</div>
<div class="btn-box">
<a href="<?php echo esc_url( $mount_link );?>" <?php if( $page == 'extranal' ) echo esc_attr( $target );?> <?php if( $page == 'extranal' ) echo esc_attr( $nofollow );?>><span class="icon-right-arrow1"></span> <?php echo wp_kses($item['btn_title'], true); ?></a>
</div>
</div>
</div>
<!--End Channels Style1 Single-->
<?php } ?>
</div>
</section>
<!--End Channels Style1-->
<?php elseif($layout == '3') : ?>
<!--Start Ai Tools Style1-->
<section class="thinkai_feature thinkai-card">
<div class="owl-carousel owl-theme thm-owl__carousel ai-tools-style1-carousel owl-nav-style-one"
data-owl-options='{
"loop": true,
"autoplay": false,
"margin": 30,
"nav": true,
"dots": false,
"smartSpeed": 500,
"autoplayTimeout": 10000,
"navText": ["<span class=\"left icon-left-arrow\"></span>","<span class=\"right icon-right-arrow\"></span>"],
"responsive": {
"0": {
"items": 1
},
"768": {
"items": 2
},
"992": {
"items": 3
},
"1200": {
"items": 3
}
}
}'>
<?php
foreach ( $settings['feature_v3'] as $key => $item ) {
$icon = $item['icon'];
$page = $item['link_option'];
$page_select = $item[ 'page_select' ];
$ext_url = $item[ 'link' ];
if( $page == 'page' ){
$mount_link = get_page_link( $page_select );
}else{
$mount_link = $ext_url['url'];
$target = $ext_url['is_external'] ? ' target="_blank"' : '';
$nofollow = $ext_url['nofollow'] ? ' rel="nofollow"' : '';
}
?>
<!--Start Ai Tools Style1 Single -->
<div class="ai-tools-style1__single text-center">
<div class="icon-box">
<?php
$icon = str_replace( "icon ", "", $item['icon']);
if( !empty( $icon ) ):?>
<?php \Elementor\Icons_Manager::render_icon( $icon ); ?>
<?php else:?>
<span class="icon-startup"></span>
<?php endif;?>
<div class="border-box">
<img src="<?php echo esc_url(wp_get_attachment_url($item['shape_image']['id'])); ?>" alt="<?php bloginfo( 'name' ); ?>">
<div class="overlay-border">
<img src="<?php echo esc_url(wp_get_attachment_url($item['hover_shape_image']['id'])); ?>" alt="<?php bloginfo( 'name' ); ?>">
</div>
</div>
</div>
<div class="content-box">
<h3 class="te-title"><a href="<?php echo esc_url( $mount_link );?>" <?php if( $page == 'extranal' ) echo esc_attr( $target );?> <?php if( $page == 'extranal' ) echo esc_attr( $nofollow );?>><?php echo wp_kses($item['title'], true); ?></a></h3>
<div class="text">
<p class="te-text"><?php echo wp_kses($item['text'], true); ?></p>
</div>
<div class="btn-box">
<a href="<?php echo esc_url( $mount_link );?>" <?php if( $page == 'extranal' ) echo esc_attr( $target );?> <?php if( $page == 'extranal' ) echo esc_attr( $nofollow );?>><span class="icon-right-arrow1"></span> <?php echo wp_kses($item['btn_title'], true); ?></a>
</div>
</div>
</div>
<!--End Ai Tools Style1 Single -->
<?php } ?>
</div>
</section>
<!--End Ai Tools Style1-->
<?php elseif($layout == '2') : ?>
<!--Start Features style1-->
<section class="thinkai_feature thinkai-card">
<div class="owl-carousel owl-theme thm-owl__carousel features-style1-carousel owl-nav-style-one"
data-owl-options='{
"loop": true,
"autoplay": false,
"margin": 0,
"nav": true,
"dots": false,
"smartSpeed": 500,
"autoplayTimeout": 10000,
"navText": ["<span class=\"left icon-left-arrow\"></span>","<span class=\"right icon-right-arrow\"></span>"],
"responsive": {
"0": {
"items": 1
},
"768": {
"items": 2
},
"992": {
"items": 3
},
"1200": {
"items": 4
}
}
}'>
<?php
foreach ( $settings['feature_v2'] as $key => $item ) {
$icon = $item['icon'];
$page = $item['link_option'];
$page_select = $item[ 'page_select' ];
$ext_url = $item[ 'link' ];
if( $page == 'page' ){
$mount_link = get_page_link( $page_select );
}else{
$mount_link = $ext_url['url'];
$target = $ext_url['is_external'] ? ' target="_blank"' : '';
$nofollow = $ext_url['nofollow'] ? ' rel="nofollow"' : '';
}
?>
<!--Start Features style1 Single-->
<div class="features-style1__single">
<div class="title">
<h2 class="te-title"><?php echo wp_kses($item['title'], true); ?></h2>
</div>
<div class="icon-box">
<div class="icon-box__bg" style="background-image: url(<?php echo esc_url(wp_get_attachment_url($item['shape_image']['id'])); ?>);"></div>
<div class="icon">
<?php
$icon = str_replace( "icon ", "", $item['icon']);
if( !empty( $icon ) ):?>
<?php \Elementor\Icons_Manager::render_icon( $icon ); ?>
<?php else:?>
<span class="icon-medal"></span>
<?php endif;?>
</div>
</div>
<div class="text">
<p class="te-text"><?php echo wp_kses($item['text'], true); ?> </p>
</div>
<div class="btn-box">
<a href="<?php echo esc_url( $mount_link );?>" <?php if( $page == 'extranal' ) echo esc_attr( $target );?> <?php if( $page == 'extranal' ) echo esc_attr( $nofollow );?>><span class="icon-right-arrow1"></span> <?php echo wp_kses($item['btn_title'], true); ?></a>
</div>
</div>
<!--End Features style1 Single-->
<?php } ?>
</div>
</section>
<!--End Features style1-->
<?php else: ?>
<div class="thinkai_feature thinkai-card">
<div class="owl-carousel owl-theme thm-owl__carousel partner-style1-carousel owl-nav-style-one"
data-owl-options='{
"loop": true,
"autoplay": false,
"margin": 30,
"nav": true,
"dots": false,
"smartSpeed": 500,
"autoplayTimeout": 10000,
"navText": ["<span class=\"left icon-left-arrow\"></span>","<span class=\"right icon-right-arrow\"></span>"],
"responsive": {
"0": {
"items": 1
},
"768": {
"items": 2
},
"992": {
"items": 3
},
"1200": {
"items": 4
}
}
}'>
<?php
foreach ( $settings['feature'] as $key => $item ) {
$page = $item['link_option'];
$page_select = $item[ 'page_select' ];
$ext_url = $item[ 'link' ];
if( $page == 'page' ){
$mount_link = get_page_link( $page_select );
}else{
$mount_link = $ext_url['url'];
$target = $ext_url['is_external'] ? ' target="_blank"' : '';
$nofollow = $ext_url['nofollow'] ? ' rel="nofollow"' : '';
}
?>
<!--Start Single Partner Style1-->
<div class="partner-style1__single">
<div class="title-box">
<h3 class="te-title"><a href="<?php echo esc_url( $mount_link );?>" <?php if( $page == 'extranal' ) echo esc_attr( $target );?> <?php if( $page == 'extranal' ) echo esc_attr( $nofollow );?>><?php echo wp_kses($item['title'], true); ?></a></h3>
<p class="te-text"><?php echo wp_kses($item['text'], true); ?></p>
</div>
<div class="logo-box">
<a href="<?php echo esc_url( $mount_link );?>" <?php if( $page == 'extranal' ) echo esc_attr( $target );?> <?php if( $page == 'extranal' ) echo esc_attr( $nofollow );?>><img src="<?php echo esc_url(wp_get_attachment_url($item['icon_image']['id'])); ?>" alt="<?php bloginfo( 'name' ); ?>"></a>
<div class="btn-box">
<a href="<?php echo esc_url( $mount_link );?>" <?php if( $page == 'extranal' ) echo esc_attr( $target );?> <?php if( $page == 'extranal' ) echo esc_attr( $nofollow );?>><span class="icon-right-arrow1"></span></a>
</div>
</div>
</div>
<!--End Single Partner Style1-->
<?php } ?>
</div>
</div>
<?php endif; ?>
<?php
}
}