<?php
namespace BdevsElement\Widget;
use \Elementor\Controls_Manager;
use \Elementor\Repeater;
use \Elementor\Group_Control_Border;
use \Elementor\Group_Control_Box_Shadow;
use \Elementor\Group_Control_Image_Size;
use \Elementor\Group_Control_Typography;
Use \Elementor\Core\Schemes\Typography;
use \Elementor\Utils;
defined('ABSPATH') || die();
class CF7 extends BDevs_El_Widget
{
/**
* Get widget name.
*
* Retrieve Bdevs Element widget name.
*
* @return string Widget name.
* @since 1.0.0
* @access public
*
*/
public function get_name()
{
return 'cf7';
}
/**
* Get widget title.
*
* @return string Widget title.
* @since 1.0.0
* @access public
*
*/
public function get_title()
{
return __('Contact Form 7', 'bdevselement');
}
public function get_custom_help_url()
{
return 'http://elementor.bdevs.net//widgets/contact-7-form/';
}
/**
* Get widget icon.
*
* @return string Widget icon.
* @since 1.0.0
* @access public
*
*/
public function get_icon()
{
return 'eicon-shortcode';
}
public function get_keywords()
{
return ['form', 'contact', 'cf7', 'contact form', 'gravity', 'ninja'];
}
protected function register_content_controls()
{
$this->start_controls_section(
'_section_design_title',
[
'label' => __('Design Style', 'bdevselement'),
'tab' => Controls_Manager::TAB_CONTENT,
]
);
$this->add_control(
'design_style',
[
'label' => __('Design Style', 'bdevselement'),
'type' => Controls_Manager::SELECT,
'options' => [
'style_1' => __('Style 1', 'bdevselement'),
'style_2' => __('Style 2', 'bdevselement'),
],
'default' => 'style_1',
'frontend_available' => true,
'style_transfer' => true,
]
);
$this->end_controls_section();
$this->start_controls_section(
'_section_title',
[
'label' => __('Title & Desccription', 'bdevselement'),
'tab' => Controls_Manager::TAB_CONTENT,
'condition' => [
'design_style' => ['style_1']
]
]
);
$this->add_control(
'title',
[
'label' => __('Title', 'bdevselement'),
'type' => Controls_Manager::TEXT,
'default' => 'Heading Title',
'placeholder' => __('Heading Text', 'bdevselement'),
'dynamic' => [
'active' => true,
]
]
);
$this->add_control(
'title_tag',
[
'label' => __('Title HTML Tag', 'bdevselement'),
'type' => Controls_Manager::CHOOSE,
'options' => [
'h1' => [
'title' => __('H1', 'bdevselement'),
'icon' => 'eicon-editor-h1'
],
'h2' => [
'title' => __('H2', 'bdevselement'),
'icon' => 'eicon-editor-h2'
],
'h3' => [
'title' => __('H3', 'bdevselement'),
'icon' => 'eicon-editor-h3'
],
'h4' => [
'title' => __('H4', 'bdevselement'),
'icon' => 'eicon-editor-h4'
],
'h5' => [
'title' => __('H5', 'bdevselement'),
'icon' => 'eicon-editor-h5'
],
'h6' => [
'title' => __('H6', 'bdevselement'),
'icon' => 'eicon-editor-h6'
]
],
'default' => 'h2',
'toggle' => false,
]
);
$this->add_responsive_control(
'align',
[
'label' => __('Alignment', 'bdevselement'),
'type' => Controls_Manager::CHOOSE,
'options' => [
'left' => [
'title' => __('Left', 'bdevselement'),
'icon' => 'fa fa-align-left',
],
'center' => [
'title' => __('Center', 'bdevselement'),
'icon' => 'fa fa-align-center',
],
'right' => [
'title' => __('Right', 'bdevselement'),
'icon' => 'fa fa-align-right',
],
],
'toggle' => true,
'selectors' => [
'{{WRAPPER}}' => 'text-align: {{VALUE}};'
]
]
);
$this->end_controls_section();
$this->start_controls_section(
'_chat_title',
[
'label' => __('Chat Section', 'bdevselement'),
'tab' => Controls_Manager::TAB_CONTENT,
'condition' => [
'design_style' => ['style_1']
]
]
);
$this->add_control(
'chat_title',
[
'type' => Controls_Manager::TEXT,
'label_block' => true,
'show_label' => false,
'default' => __('Live Chat', 'bdevselement'),
'placeholder' => __('Type title here', 'bdevselement'),
'dynamic' => [
'active' => true,
]
]
);
$this->add_control(
'chat_desc',
[
'type' => Controls_Manager::TEXTAREA,
'label_block' => true,
'show_label' => false,
'default' => __('We are the broadband internet service provider at New', 'bdevselement'),
'placeholder' => __('Type content here', 'bdevselement'),
'dynamic' => [
'active' => true,
]
]
);
$this->add_control(
'chat_button_text',
[
'type' => Controls_Manager::TEXT,
'label_block' => true,
'show_label' => false,
'default' => __('Live Chat to Executive', 'bdevselement'),
'placeholder' => __('Type button text', 'bdevselement'),
'dynamic' => [
'active' => true,
]
]
);
$this->add_control(
'chat_button_link',
[
'type' => Controls_Manager::TEXT,
'label_block' => true,
'show_label' => false,
'default' => __('#', 'bdevselement'),
'placeholder' => __('Type button link', 'bdevselement'),
'dynamic' => [
'active' => true,
]
]
);
$this->end_controls_section();
$this->start_controls_section(
'_talk_title',
[
'label' => __('Talk Section', 'bdevselement'),
'tab' => Controls_Manager::TAB_CONTENT,
'condition' => [
'design_style' => ['style_1']
]
]
);
$this->add_control(
'talk_title',
[
'type' => Controls_Manager::TEXT,
'label_block' => true,
'show_label' => false,
'default' => __('Not interested to talk?', 'bdevselement'),
'placeholder' => __('Type title here', 'bdevselement'),
'dynamic' => [
'active' => true,
]
]
);
$this->add_control(
'talk_desc',
[
'type' => Controls_Manager::TEXTAREA,
'label_block' => true,
'show_label' => false,
'default' => __('Please check out or best suggested <a href="#">Help Center & FAQ</a>', 'bdevselement'),
'placeholder' => __('Type content here', 'bdevselement'),
'dynamic' => [
'active' => true,
]
]
);
$this->end_controls_section();
$this->start_controls_section(
'_section_features_list',
[
'label' => __('Contact List', 'bdevselement'),
'tab' => Controls_Manager::TAB_CONTENT,
'condition' => [
'design_style' => ['style_1']
]
]
);
$this->add_control(
'contact_title',
[
'label' => __('Contact Title', 'bdevselement'),
'type' => Controls_Manager::TEXT,
'default' => __('Direct Contact', 'bdevselement'),
'placeholder' => __('Type title', 'bdevselement'),
'dynamic' => [
'active' => true,
],
'condition' => [
'design_style' => ['style_1']
]
]
);
$this->add_control(
'contact_desc',
[
'label' => __('Contact Desc', 'bdevselement'),
'type' => Controls_Manager::TEXTAREA,
'default' => __('We are the broadband internet service provider at New', 'bdevselement'),
'placeholder' => __('Type content', 'bdevselement'),
'dynamic' => [
'active' => true,
],
'condition' => [
'design_style' => ['style_1']
]
]
);
$repeater = new Repeater();
$repeater->add_control(
'field_condition',
[
'label' => __( 'Field condition', 'bdevselement' ),
'type' => Controls_Manager::SELECT,
'options' => [
'phone_condition' => __( 'Phone', 'bdevselement' ),
'email_condition' => __( 'Email', 'bdevselement' ),
'address_condition' => __( 'Address', 'bdevselement' ),
],
'default' => 'phone_condition',
'frontend_available' => true,
'style_transfer' => true,
]
);
$repeater->add_control(
'type',
[
'label' => __('Media Type', 'bdevselement'),
'type' => Controls_Manager::CHOOSE,
'label_block' => false,
'options' => [
'icon' => [
'title' => __('Icon', 'bdevselement'),
'icon' => 'fa fa-smile-o',
],
'image' => [
'title' => __('Image', 'bdevselement'),
'icon' => 'fa fa-image',
],
],
'default' => 'icon',
'toggle' => false,
'style_transfer' => true,
]
);
$repeater->add_control(
'image',
[
'label' => __('Image', 'bdevselement'),
'type' => Controls_Manager::MEDIA,
'default' => [
'url' => Utils::get_placeholder_image_src(),
],
'condition' => [
'type' => 'image'
],
'dynamic' => [
'active' => true,
]
]
);
$repeater->add_group_control(
Group_Control_Image_Size::get_type(),
[
'name' => 'thumbnail',
'default' => 'medium_large',
'separator' => 'none',
'exclude' => [
'full',
'custom',
'large',
'shop_catalog',
'shop_single',
'shop_thumbnail'
],
'condition' => [
'type' => 'image'
]
]
);
if (bdevs_element_is_elementor_version('<', '2.6.0')) {
$repeater->add_control(
'icon',
[
'label' => __('Icon', 'bdevselement'),
'label_block' => true,
'type' => Controls_Manager::ICON,
'options' => bdevs_element_get_bdevs_element_icons(),
'default' => 'fa fa-smile-o',
'condition' => [
'type' => 'icon'
]
]
);
} else {
$repeater->add_control(
'selected_icon',
[
'type' => Controls_Manager::ICONS,
'fa4compatibility' => 'icon',
'label_block' => true,
'default' => [
'value' => 'fas fa-smile-wink',
'library' => 'fa-solid',
],
'condition' => [
'type' => 'icon'
]
]
);
}
$repeater->add_control(
'tab_title',
[
'type' => Controls_Manager::TEXT,
'label_block' => true,
'label' => __('Title', 'bdevselement'),
'default' => __('Title', 'bdevselement'),
'placeholder' => __('Type title here', 'bdevselement'),
'dynamic' => [
'active' => true,
]
]
);
$repeater->add_control(
'tab_link',
[
'type' => Controls_Manager::TEXT,
'label_block' => true,
'label' => __('Link', 'bdevselement'),
'default' => __('#', 'bdevselement'),
'placeholder' => __('Type link here', 'bdevselement'),
'dynamic' => [
'active' => true,
],
'condition' => [
'field_condition' => ['phone_condition', 'email_condition']
]
]
);
$this->add_control(
'slides',
[
'show_label' => false,
'type' => Controls_Manager::REPEATER,
'fields' => $repeater->get_controls(),
'title_field' => '<# print(tab_title || "Carousel Item"); #>',
'default' => [
[
'image' => [
'url' => Utils::get_placeholder_image_src(),
],
],
[
'image' => [
'url' => Utils::get_placeholder_image_src(),
],
],
]
]
);
$this->end_controls_section();
$this->start_controls_section(
'_section_cf7',
[
'label' => bdevs_element_is_cf7_activated() ? __('Contact Form 7', 'bdevselement') : __('Missing Notice', 'bdevselement'),
'tab' => Controls_Manager::TAB_CONTENT,
]
);
if (!bdevs_element_is_cf7_activated()) {
$this->add_control(
'_cf7_missing_notice',
[
'type' => Controls_Manager::RAW_HTML,
'raw' => sprintf(
__('Hello %2$s, looks like %1$s is missing in your site. Please click on the link below and install/activate %1$s. Make sure to refresh this page after installation or activation.', 'bdevselement'),
'<a href="' . esc_url(admin_url('plugin-install.php?s=Contact+Form+7&tab=search&type=term'))
. '" target="_blank" rel="noopener">Contact Form 7</a>',
bdevs_element_get_current_user_display_name()
),
'content_classes' => 'elementor-panel-alert elementor-panel-alert-danger',
]
);
$this->add_control(
'_cf7_install',
[
'type' => Controls_Manager::RAW_HTML,
'raw' => '<a href="' . esc_url(admin_url('plugin-install.php?s=Contact+Form+7&tab=search&type=term')) . '" target="_blank" rel="noopener">Click to install or activate Contact Form 7</a>',
]
);
$this->end_controls_section();
return;
}
$this->add_control(
'form_id',
[
'label' => __('Select Your Form', 'bdevselement'),
'type' => Controls_Manager::SELECT,
'label_block' => true,
'options' => ['' => __('', 'bdevselement')] + \bdevs_element_get_cf7_forms(),
]
);
$this->add_control(
'html_class',
[
'label' => __('HTML Class', 'bdevselement'),
'type' => Controls_Manager::TEXT,
'label_block' => true,
'description' => __('Add CSS custom class to the form.', 'bdevselement'),
]
);
$this->end_controls_section();
$this->start_controls_section(
'section_map',
[
'label' => __('Map', 'elementor'),
]
);
$default_address = __('London Eye, London, United Kingdom', 'elementor');
$this->add_control(
'address',
[
'label' => __('Address', 'elementor'),
'type' => Controls_Manager::TEXT,
'placeholder' => $default_address,
'default' => $default_address,
'label_block' => true,
]
);
$this->add_control(
'zoom',
[
'label' => __('Zoom Level', 'elementor'),
'type' => Controls_Manager::SLIDER,
'default' => [
'size' => 10,
],
'range' => [
'px' => [
'min' => 1,
'max' => 20,
],
],
]
);
$this->add_responsive_control(
'height',
[
'label' => __('Height', 'elementor'),
'type' => Controls_Manager::SLIDER,
'default' => [
'size' => 300,
],
'range' => [
'px' => [
'min' => 40,
'max' => 1440,
],
],
'selectors' => [
'{{WRAPPER}} iframe' => 'height: {{SIZE}}{{UNIT}};',
],
]
);
$this->add_control(
'prevent_scroll',
[
'label' => __('Prevent Scroll', 'elementor'),
'type' => Controls_Manager::SWITCHER,
'default' => 'yes',
'selectors' => [
'{{WRAPPER}} iframe' => 'pointer-events: none;',
],
]
);
$this->add_control(
'view',
[
'label' => __('View', 'elementor'),
'type' => Controls_Manager::HIDDEN,
'default' => 'traditional',
]
);
$this->end_controls_section();
}
protected function register_style_controls()
{
$this->start_controls_section(
'_section_fields_style',
[
'label' => __('Form Fields', 'bdevselement'),
'tab' => Controls_Manager::TAB_STYLE,
]
);
$this->add_responsive_control(
'field_width',
[
'label' => __('Width', 'bdevselement'),
'type' => Controls_Manager::SLIDER,
'default' => [
'unit' => '%',
],
'tablet_default' => [
'unit' => '%',
],
'mobile_default' => [
'unit' => '%',
],
'size_units' => ['%', 'px'],
'range' => [
'%' => [
'min' => 1,
'max' => 100,
],
'px' => [
'min' => 1,
'max' => 500,
],
],
'selectors' => [
'{{WRAPPER}} .wpcf7-form-control:not(.wpcf7-submit)' => 'width: {{SIZE}}{{UNIT}};',
'{{WRAPPER}} .bdevs-cf7-form label' => 'width: {{SIZE}}{{UNIT}};',
],
]
);
$this->add_responsive_control(
'field_margin',
[
'label' => __('Spacing Bottom', 'bdevselement'),
'type' => Controls_Manager::SLIDER,
'size_units' => ['px'],
'range' => [
'px' => [
'min' => 0,
'max' => 100,
],
],
'selectors' => [
'{{WRAPPER}} .wpcf7-form-control:not(.wpcf7-submit)' => 'margin-bottom: {{SIZE}}{{UNIT}};',
],
]
);
$this->add_responsive_control(
'field_padding',
[
'label' => __('Padding', 'bdevselement'),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => ['px', 'em', '%'],
'selectors' => [
'{{WRAPPER}} .wpcf7-form-control:not(.wpcf7-submit)' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
]
);
$this->add_responsive_control(
'field_border_radius',
[
'label' => __('Border Radius', 'bdevselement'),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => ['px', '%'],
'selectors' => [
'{{WRAPPER}} .wpcf7-form-control:not(.wpcf7-submit)' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
]
);
$this->add_control(
'hr',
[
'type' => Controls_Manager::DIVIDER,
'style' => 'thick',
]
);
$this->add_group_control(
Group_Control_Typography::get_type(),
[
'name' => 'field_typography',
'label' => __('Typography', 'bdevselement'),
'selector' => '{{WRAPPER}} .wpcf7-form-control:not(.wpcf7-submit)',
'scheme' => Typography::TYPOGRAPHY_3
]
);
$this->add_control(
'field_color',
[
'label' => __('Text Color', 'bdevselement'),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .wpcf7-form-control:not(.wpcf7-submit)' => 'color: {{VALUE}}',
],
]
);
$this->add_control(
'field_placeholder_color',
[
'label' => __('Placeholder Text Color', 'bdevselement'),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} ::-webkit-input-placeholder' => 'color: {{VALUE}};',
'{{WRAPPER}} ::-moz-placeholder' => 'color: {{VALUE}};',
'{{WRAPPER}} ::-ms-input-placeholder' => 'color: {{VALUE}};',
],
]
);
$this->start_controls_tabs('tabs_field_state');
$this->start_controls_tab(
'tab_field_normal',
[
'label' => __('Normal', 'bdevselement'),
]
);
$this->add_group_control(
Group_Control_Border::get_type(),
[
'name' => 'field_border',
'selector' => '{{WRAPPER}} .wpcf7-form-control:not(.wpcf7-submit)',
]
);
$this->add_group_control(
Group_Control_Box_Shadow::get_type(),
[
'name' => 'field_box_shadow',
'selector' => '{{WRAPPER}} .wpcf7-form-control:not(.wpcf7-submit)',
]
);
$this->add_control(
'field_bg_color',
[
'label' => __('Background Color', 'bdevselement'),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .wpcf7-form-control:not(.wpcf7-submit)' => 'background-color: {{VALUE}}',
],
]
);
$this->end_controls_tab();
$this->start_controls_tab(
'tab_field_focus',
[
'label' => __('Focus', 'bdevselement'),
]
);
$this->add_group_control(
Group_Control_Border::get_type(),
[
'name' => 'field_focus_border',
'selector' => '{{WRAPPER}} .wpcf7-form-control:not(.wpcf7-submit):focus',
]
);
$this->add_group_control(
Group_Control_Box_Shadow::get_type(),
[
'name' => 'field_focus_box_shadow',
'exclude' => [
'box_shadow_position',
],
'selector' => '{{WRAPPER}} .wpcf7-form-control:not(.wpcf7-submit):focus',
]
);
$this->add_control(
'field_focus_bg_color',
[
'label' => __('Background Color', 'bdevselement'),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .wpcf7-form-control:not(.wpcf7-submit):focus' => 'background-color: {{VALUE}}',
],
]
);
$this->end_controls_tab();
$this->end_controls_tabs();
$this->end_controls_section();
$this->start_controls_section(
'cf7-form-label',
[
'label' => __('Form Fields Label', 'bdevselement'),
'tab' => Controls_Manager::TAB_STYLE,
]
);
$this->add_responsive_control(
'label_margin',
[
'label' => __('Spacing Bottom', 'bdevselement'),
'type' => Controls_Manager::SLIDER,
'size_units' => ['px'],
'range' => [
'px' => [
'min' => 0,
'max' => 100,
],
],
'selectors' => [
'{{WRAPPER}} .wpcf7-form-control:not(.wpcf7-submit)' => 'margin-top: {{SIZE}}{{UNIT}};',
],
]
);
$this->add_control(
'hr3',
[
'type' => Controls_Manager::DIVIDER,
'style' => 'thick',
]
);
$this->add_group_control(
Group_Control_Typography::get_type(),
[
'name' => 'label_typography',
'label' => __('Typography', 'bdevselement'),
'selector' => '{{WRAPPER}} label',
'scheme' => Typography::TYPOGRAPHY_3
]
);
$this->add_control(
'label_color',
[
'label' => __('Text Color', 'bdevselement'),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} label' => 'color: {{VALUE}}',
],
]
);
$this->end_controls_section();
$this->start_controls_section(
'submit',
[
'label' => __('Submit Button', 'bdevselement'),
'tab' => Controls_Manager::TAB_STYLE,
]
);
$this->add_responsive_control(
'submit_margin',
[
'label' => __('Margin', 'bdevselement'),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => ['px', '%'],
'selectors' => [
'{{WRAPPER}} .bdevs-el-btn.wpcf7-submit' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
]
);
$this->add_responsive_control(
'submit_padding',
[
'label' => __('Padding', 'bdevselement'),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => ['px', 'em', '%'],
'selectors' => [
'{{WRAPPER}} .bdevs-el-btn.wpcf7-submit' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
]
);
$this->add_group_control(
Group_Control_Typography::get_type(),
[
'name' => 'submit_typography',
'selector' => '{{WRAPPER}} .wpcf7-submit',
'scheme' => Typography::TYPOGRAPHY_4
]
);
$this->add_group_control(
Group_Control_Border::get_type(),
[
'name' => 'submit_border',
'selector' => '{{WRAPPER}} .bdevs-el-btn.wpcf7-submit',
]
);
$this->add_control(
'submit_border_radius',
[
'label' => __('Border Radius', 'bdevselement'),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => ['px', '%'],
'selectors' => [
'{{WRAPPER}} .bdevs-el-btn.wpcf7-submit' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
]
);
$this->add_group_control(
Group_Control_Box_Shadow::get_type(),
[
'name' => 'submit_box_shadow',
'selector' => '{{WRAPPER}} .bdevs-el-btn.wpcf7-submit',
]
);
$this->add_control(
'hr4',
[
'type' => Controls_Manager::DIVIDER,
'style' => 'thick',
]
);
$this->start_controls_tabs('tabs_button_style');
$this->start_controls_tab(
'tab_button_normal',
[
'label' => __('Normal', 'bdevselement'),
]
);
$this->add_control(
'submit_color',
[
'label' => __('Text Color', 'bdevselement'),
'type' => Controls_Manager::COLOR,
'default' => '',
'selectors' => [
'{{WRAPPER}} .bdevs-el-btn' => 'color: {{VALUE}};',
],
]
);
$this->add_control(
'submit_bg_color',
[
'label' => __('Background Color', 'bdevselement'),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .bdevs-el-btn' => 'background-color: {{VALUE}};',
],
]
);
$this->end_controls_tab();
$this->start_controls_tab(
'tab_button_hover',
[
'label' => __('Hover', 'bdevselement'),
]
);
$this->add_control(
'submit_hover_color',
[
'label' => __('Text Color', 'bdevselement'),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .wpcf7-submit.bdevs-el-btn:hover, {{WRAPPER}} .wpcf7-submit:focus' => 'color: {{VALUE}};',
],
]
);
$this->add_control(
'submit_hover_bg_color',
[
'label' => __('Background Color', 'bdevselement'),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .wpcf7-submit.bdevs-el-btn:hover, {{WRAPPER}} .wpcf7-submit:focus' => 'background-color: {{VALUE}};',
],
]
);
$this->add_control(
'button_hover_before_bg_color',
[
'label' => __( 'Hover Before BG Color', 'bdevselement' ),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .btn.s-btn.bdevs-el-btn:hover:before, {{WRAPPER}} .btn.s-btn.bdevs-el-btn:focus:before' => 'background-color: {{VALUE}};',
],
]
);
$this->add_control(
'submit_hover_border_color',
[
'label' => __('Border Color', 'bdevselement'),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .wpcf7-submit.bdevs-el-btn:hover, {{WRAPPER}} .wpcf7-submit:focus' => 'border-color: {{VALUE}};',
],
]
);
$this->end_controls_tab();
$this->end_controls_tabs();
$this->end_controls_section();
}
protected function render()
{
$settings = $this->get_settings_for_display();
if (!bdevs_element_is_cf7_activated()) {
return;
}
// button
if (!empty($settings['button_link'])) {
$this->add_inline_editing_attributes('button_text', 'none');
$this->add_render_attribute('button_text', 'class', 'bdevs-btn-text');
$this->add_render_attribute('button', 'class', 'bdevs-btn bt-btn bt-btn-sec bdevs-el-btn');
$this->add_link_attributes('button', $settings['button_link']);
}
$this->add_render_attribute('title', 'class', 'big_title mb-0');
$this->add_render_attribute('title_1', 'class', 'big_title mb-0');
$this->add_render_attribute('title_2', 'class', 'section-title');
$title = bdevs_element_kses_basic($settings['title']);
?>
<?php if ($settings['design_style'] === 'style_3'):
// bg_image
$bg_image = wp_get_attachment_image_url($settings['bg_image']['id'], $settings['bg_thumbnail_size']);
if (!$bg_image) {
$bg_image = $settings['bg_image']['url'];
}
?>
<section class="faqcontact_section clearfix position-relative">
<?php if (!empty($bg_image)): ?>
<div class="faq_image image-50" style="background-image: url(<?php echo esc_url($bg_image); ?>);"></div>
<?php endif; ?>
<div class="container-fluid p-0">
<div class="row no-gutters align-items-center justify-content-end">
<div class="col-lg-6 col-md-12 col-sm-12 col-xs-12">
<div class="faq_contact_form">
<div class="section_title mb_50 wow fadeInUp22" data-wow-delay=".1s">
<div class="section-text section-text-white pos-rel">
<?php if ($settings['sub_title']) : ?>
<h4 class="small_title"><?php echo bdevs_element_kses_intermediate($settings['sub_title']); ?></h4>
<?php endif; ?>
<?php printf('<%1$s %2$s>%3$s</%1$s>',
tag_escape($settings['title_tag']),
$this->get_render_attribute_string('title'),
$title
); ?>
<?php if ($settings['back_title']) : ?>
<span class="biggest_title"><?php echo bdevs_element_kses_intermediate($settings['back_title']); ?></span>
<?php endif; ?>
</div>
</div>
<div class="contact_page1__form">
<?php if (!empty($settings['form_id'])) {
echo bdevs_element_do_shortcode('contact-form-7', [
'id' => $settings['form_id'],
'html_class' => 'bdevs-cf7-form ' . bdevs_element_sanitize_html_class_param($settings['html_class']),
]);
}
?>
</div>
</div>
</div>
</div>
</div>
</section>
<?php elseif ($settings['design_style'] === 'style_2'): ?>
<div class="queries-form">
<?php if (!empty($settings['form_id'])) {
echo bdevs_element_do_shortcode('contact-form-7', [
'id' => $settings['form_id'],
'html_class' => 'bdevs-cf7-form ' . bdevs_element_sanitize_html_class_param($settings['html_class']),
]);
}
?>
</div>
<?php else:
if (empty($settings['address'])) {
return;
}
if (0 === absint($settings['zoom']['size'])) {
$settings['zoom']['size'] = 10;
}
?>
<section class="contact-area">
<div class="container">
<div class="row">
<div class="col-lg-8">
<?php if( !empty($settings['title']) ) : ?>
<div class="contact-title">
<h3 class="title bdevs-el-title"><?php echo bdevs_element_kses_basic($settings['title']); ?></h3>
</div>
<?php endif; ?>
<div class="contact-form">
<?php if (!empty($settings['form_id'])) {
echo bdevs_element_do_shortcode('contact-form-7', [
'id' => $settings['form_id'],
'html_class' => 'bdevs-cf7-form ' . bdevs_element_sanitize_html_class_param($settings['html_class']),
]);
}
?>
</div>
</div>
<div class="col-lg-4">
<div class="contact-info-wrap">
<?php if( !empty($settings['contact_title']) ) : ?>
<h3 class="contact-info-title"><?php echo bdevs_element_kses_basic($settings['contact_title']); ?></h3>
<?php endif; ?>
<?php if( !empty($settings['contact_desc']) ) : ?>
<p><?php echo bdevs_element_kses_basic($settings['contact_desc']); ?></p>
<?php endif; ?>
<ul class="contact-info-list">
<?php foreach( $settings['slides'] as $slide ) : ?>
<li>
<?php if( !empty($slide['selected_icon']) ): ?>
<?php bdevs_element_render_icon( $slide, 'icon', 'selected_icon', ['class' => 'bdevs-btn-icon'] ); ?>
<?php else: ?>
<img src="<?php echo esc_url($image); ?>" alt="icon" />
<?php endif; ?>
<?php if( !empty($slide['tab_link']) ) : ?>
<a href="tel:<?php echo esc_url($slide['tab_link']); ?>"><?php echo bdevs_element_kses_basic($slide['tab_title']); ?></a>
<?php else: ?>
<span><?php echo bdevs_element_kses_basic($slide['tab_title']); ?></span>
<?php endif; ?>
</li>
<?php endforeach; ?>
</ul>
</div>
<div class="contact-info-wrap">
<?php if( !empty($settings['chat_title']) ) : ?>
<h3 class="contact-info-title"><?php echo bdevs_element_kses_basic($settings['chat_title']); ?></h3>
<?php endif; ?>
<?php if( !empty($settings['chat_desc']) ) : ?>
<p><?php echo bdevs_element_kses_basic($settings['chat_desc']); ?></p>
<?php endif; ?>
<div class="live-chat">
<?php if(!empty($settings['chat_button_text'])) : ?>
<div class="icon"><i class="flaticon-chat"></i></div>
<a href="<?php echo esc_url($settings['chat_button_link']); ?>" class="live-chat-link"><?php echo bdevs_element_kses_basic($settings['chat_button_text']); ?></a>
<?php endif; ?>
</div>
</div>
<div class="contact-info-wrap">
<?php if( !empty($settings['talk_title']) ) : ?>
<h3 class="contact-info-title"><?php echo bdevs_element_kses_basic($settings['talk_title']); ?></h3>
<?php endif; ?>
<?php if( !empty($settings['talk_desc']) ) : ?>
<p><?php echo bdevs_element_kses_intermediate($settings['talk_desc']); ?></p>
<?php endif; ?>
</div>
</div>
</div>
</div>
</section>
<?php endif; ?>
<?php
}
}