<?php /** * Services Area Widget */ namespace Elementor; // Exit if accessed directly if ( ! defined( 'ABSPATH' ) ) { exit; } class Cyarb_Servcies_Area extends Widget_Base { public function get_name() { return 'ServicesArea'; } public function get_title() { return esc_html__( 'Services', 'cyarb-toolkit' ); } public function get_icon() { return 'eicon-handle'; } public function get_categories() { return [ 'cyarb-elements' ]; } protected function register_controls() { $this->start_controls_section( 'Cyarb_Features_Area_controls', [ 'label' => esc_html__( 'Services Area Controls', 'cyarb-toolkit' ), 'tab' => Controls_Manager::TAB_CONTENT, ] ); $this->add_control( 'choose_style', [ 'label' => __( 'Choose Style', 'cyarb-toolkit' ), 'type' => Controls_Manager::SELECT, 'options' => [ '1' => __( 'Style One', 'cyarb-toolkit' ), '2' => __( 'Style Two', 'cyarb-toolkit' ), '3' => __( 'Style Three', 'cyarb-toolkit' ), ], 'default' => '1', ] ); $this->add_control( 'title', [ 'label' => esc_html__( 'Title', 'cyarb-toolkit' ), 'type' => Controls_Manager::TEXTAREA, ] ); $this->add_control( 'title_tag', [ 'label' => esc_html__( 'Title Tag', 'cyarb-toolkit' ), 'type' => Controls_Manager::SELECT, 'options' => [ 'h1' => esc_html__( 'h1', 'cyarb-toolkit' ), 'h2' => esc_html__( 'h2', 'cyarb-toolkit' ), 'h3' => esc_html__( 'h3', 'cyarb-toolkit' ), 'h4' => esc_html__( 'h4', 'cyarb-toolkit' ), 'h5' => esc_html__( 'h5', 'cyarb-toolkit' ), 'h6' => esc_html__( 'h6', 'cyarb-toolkit' ), ], 'default' => 'h2', ] ); $this->add_control( 'button_text', [ 'label' => __( 'Button Text', 'cyarb-toolkit' ), 'type' => Controls_Manager::TEXT, 'default' => __('Get A Free Quote', 'cyarb-toolkit'), 'condition' => [ 'choose_style' => ['2','3'], ] ] ); $this->add_control( 'link_type', [ 'label' => __( 'Link Type', 'cyarb-toolkit' ), 'type' => Controls_Manager::SELECT, 'label_block' => true, 'options' => [ '1' => __( 'Link To Page', 'cyarb-toolkit' ), '2' => __( 'External Link', 'cyarb-toolkit' ), ], 'condition' => [ 'choose_style' => ['2','3'], ] ] ); $this->add_control( 'link_to_page', [ 'label' => __( 'Link Page', 'cyarb-toolkit' ), 'type' => Controls_Manager::SELECT, 'label_block' => true, 'options' => cyarb_toolkit_get_page_as_list(), 'condition' => [ 'link_type' => '1', 'choose_style' => ['2','3'], ] ] ); $this->add_control( 'external_link', [ 'label' =>__('External Link', 'cyarb-toolkit'), 'type' => Controls_Manager:: TEXT, 'condition' => [ 'link_type' => '2', 'choose_style' => ['2','3'], ] ] ); //Target Page $this->add_control( 'target_page', [ 'label' => __( 'Link Open In New Tab?', 'cyarb-toolkit' ), 'type' => Controls_Manager::SWITCHER, 'label_on' => __( 'Yes', 'cyarb-toolkit' ), 'label_off' => __( 'No', 'cyarb-toolkit' ), 'return_value' => 'yes', 'default' => 'yes', 'condition' => [ 'choose_style' => ['2','3'], ] ] ); $this->add_control( 'desc', [ 'label' =>__('Add Description', 'cyarb-toolkit'), 'type' => Controls_Manager:: WYSIWYG, 'description' => __('This text editor for p','cyarb-toolkit'), 'condition' => [ 'choose_style' => '1', ] ] ); $this->add_control( 'count', [ 'label' => __( 'Post Per Page', 'cyarb-toolkit' ), 'default' => __( '3', 'cyarb-toolkit' ), 'type' => Controls_Manager::TEXT, 'description' => __('if you want to see all post type -1','cyarb-toolkit') ] ); $this->add_control( 'cat_name', [ 'label' => __( 'Select Category', 'cyarb-toolkit' ), 'type' => Controls_Manager::SELECT, 'options' => cyarb_toolkit_get_product_cat_list(), ] ); $this->add_control( 'order', [ 'label' => __( 'Select Order', 'cyarb-toolkit' ), 'type' => Controls_Manager::SELECT, 'options' => [ 'DESC' => __( 'DESC', 'cyarb-toolkit' ), 'ASC' => __( 'ASC', 'cyarb-toolkit' ), ], 'default' => 'DESC', ] ); $this->add_control( 'excerpt_num', [ 'label' => __( 'Excerpt', 'cyarb-toolkit' ), 'type' => Controls_Manager::NUMBER, 'default' => 15, ] ); $this->add_control( 'read_more_btntext', [ 'label' => __( 'Read More Button Text', 'cyarb-toolkit' ), 'default' => __( 'Read More', 'cyarb-toolkit' ), 'type' => Controls_Manager::TEXT, 'condition' => [ 'choose_style' => '1', ] ] ); $this->add_control( 'shape1', [ 'label' => __( 'Shape Image 1', 'cyarb-toolkit' ), 'type' => Controls_Manager::MEDIA, 'condition' => [ 'choose_style' => '1', ] ] ); $this->end_controls_section(); $this->start_controls_section( 'style', [ 'label' => esc_html__( 'Style', 'cyarb-toolkit' ), 'tab' => Controls_Manager::TAB_STYLE, ] ); $this->add_control( 'sec_title_color', [ 'label' => esc_html__( 'Section Title Color', 'cyarb-toolkit' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .section-title h2, .section-title h3, .section-title h4, .section-title h5, .section-title h6, .section-title h1, .section-title-wrap .wrap-title h2, .section-title-wrap .wrap-title h1, .section-title-wrap .wrap-title h3, .section-title-wrap .wrap-title h4, .section-title-wrap .wrap-title h5, .section-title-wrap .wrap-title h6, .body-with-black-color .section-title-wrap .wrap-title h2, .body-with-black-color .section-title-wrap .wrap-title h1, .body-with-black-color .section-title-wrap .wrap-title h3, .body-with-black-color .section-title-wrap .wrap-title h4, .body-with-black-color .section-title-wrap .wrap-title h5, .body-with-black-color .section-title-wrap .wrap-title h6' => 'color: {{VALUE}}', ], ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'sec_title_typography', 'label' => __( 'Section Title Typography', 'cyarb-toolkit' ), 'selector' => '{{WRAPPER}} .section-title h2, .section-title h3, .section-title h4, .section-title h5, .section-title h6, .section-title h1, .section-title-wrap .wrap-title h2, .section-title-wrap .wrap-title h1, .section-title-wrap .wrap-title h3, .section-title-wrap .wrap-title h4, .section-title-wrap .wrap-title h5, .section-title-wrap .wrap-title h6, .body-with-black-color .section-title-wrap .wrap-title h2, .body-with-black-color .section-title-wrap .wrap-title h1, .body-with-black-color .section-title-wrap .wrap-title h3, .body-with-black-color .section-title-wrap .wrap-title h4, .body-with-black-color .section-title-wrap .wrap-title h5, .body-with-black-color .section-title-wrap .wrap-title h6', ] ); $this->add_control( 'sec_desc_color', [ 'label' => esc_html__( 'Section Description Color', 'cyarb-toolkit' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .section-title p' => 'color: {{VALUE}}', ], 'condition' => [ 'choose_style' => '1', ] ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'sec_desc_typography', 'label' => __( 'Section Description Typography', 'cyarb-toolkit' ), 'selector' => '{{WRAPPER}} .section-title p', 'condition' => [ 'choose_style' => '1', ] ] ); $this->add_control( 'title_color', [ 'label' => esc_html__( 'Title Color', 'cyarb-toolkit' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .safer-world-card .safer-world-content h3 a, .get-privacy-card .get-privacy-content h3 a, .body-with-black-color .get-privacy-card .get-privacy-content h3 a' => 'color: {{VALUE}}', ], ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'title_typography', 'label' => esc_html__( 'Title Typography', 'cyarb-toolkit' ), 'selector' => '{{WRAPPER}} .safer-world-card .safer-world-content h3 a, .get-privacy-card .get-privacy-content h3 a, .body-with-black-color .get-privacy-card .get-privacy-content h3 a', ] ); $this->add_control( 'con_color', [ 'label' => esc_html__( 'Excerpt Color', 'cyarb-toolkit' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .safer-world-card .safer-world-content p, .get-privacy-card .get-privacy-content p, .body-with-black-color .get-privacy-card .get-privacy-content p' => 'color: {{VALUE}}', ], ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'ex_typography', 'label' => esc_html__( 'Excerpt Typography', 'cyarb-toolkit' ), 'selector' => '{{WRAPPER}} .safer-world-card .safer-world-content p, .get-privacy-card .get-privacy-content p, .body-with-black-color .get-privacy-card .get-privacy-content p', ] ); $this->add_control( 'btn_color', [ 'label' => esc_html__( 'Button Color', 'cyarb-toolkit' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .safer-world-card .safer-world-content .safer-world-btn' => 'background-color: {{VALUE}}', ], 'condition' => [ 'choose_style' => '1', ] ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'btn_typography', 'label' => esc_html__( 'Button Typography', 'cyarb-toolkit' ), 'selector' => '{{WRAPPER}} .safer-world-card .safer-world-content .safer-world-btn', 'condition' => [ 'choose_style' => '1', ] ] ); $this->add_control( 'card_color', [ 'label' => esc_html__( 'Card Color', 'cyarb-toolkit' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .safer-world-slides .owl-item.active.center .safer-world-card, .get-privacy-card, .body-with-black-color .get-privacy-card' => 'background-color: {{VALUE}}', ], ] ); $this->add_control( 'card_hcolor', [ 'label' => esc_html__( 'Card Hover Color', 'cyarb-toolkit' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .get-privacy-card:hover, .body-with-black-color .get-privacy-card:hover' => 'background-color: {{VALUE}}', ], 'condition' => [ 'choose_style' => ['2','3'], ] ] ); $this->add_control( 'sec_btncolor', [ 'label' => esc_html__( 'Section Button Color', 'cyarb-toolkit' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .default-btn-two' => 'color: {{VALUE}}', ], 'condition' => [ 'choose_style' => ['2','3'], ] ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'secbtn_type_typography', 'label' => __( 'Button Typography', 'cyarb-toolkit' ), 'selector' => '{{WRAPPER}} .default-btn-two', 'condition' => [ 'choose_style' => ['2','3'], ] ] ); $this->add_control( 'btn_bg_head', [ 'label' => esc_html__( 'Button Background Color', 'cyarb-toolkit' ), 'type' => Controls_Manager::HEADING, 'separator' => 'before', 'condition' => [ 'choose_style' => ['2','3'], ] ] ); $this->add_group_control( Group_Control_Background::get_type(), [ 'name' => 'btn_bg2_color', 'types' => ['gradient' ], 'selector' => '{{WRAPPER}} .default-btn-two', 'condition' => [ 'choose_style' => ['2','3'], ] ] ); $this->add_control( 'onedivider', [ 'type' => Controls_Manager::DIVIDER, ] ); $this->add_control( 'twodivider', [ 'type' => Controls_Manager::DIVIDER, ] ); $this->add_control( 'secbtn_hcolor', [ 'label' => __( 'Button Hover Color', 'cyarb-toolkit' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .default-btn-two:hover' => 'color: {{VALUE}}', ], 'condition' => [ 'choose_style' => ['2','3'], ] ] ); $this->add_control( 'btn_hbg_head', [ 'label' => esc_html__( 'Section Button Hover Background Color', 'cyarb-toolkit' ), 'type' => Controls_Manager::HEADING, 'separator' => 'before', 'condition' => [ 'choose_style' => ['2','3'], ] ] ); $this->add_group_control( Group_Control_Background::get_type(), [ 'name' => 'btn_hbg2_color', 'types' => ['gradient' ], 'selector' => '{{WRAPPER}} .default-btn-two::before', 'condition' => [ 'choose_style' => ['2','3'], ] ] ); $this->end_controls_section(); } protected function render() { $settings = $this->get_settings_for_display(); if( $settings['cat_name'] != '' ) { $args = array( 'post_type' => 'service', 'posts_per_page' => $settings['count'], 'order' => $settings['order'], 'tax_query' => array( array( 'taxonomy' => 'service_cat', 'field' => 'slug', 'terms' => $settings['cat_name'], 'hide_empty' => false ) ) ); } else { $args = array( 'post_type' => 'service', 'posts_per_page' => $settings['count'], 'order' => $settings['order'], ); } $services_array = new \WP_Query( $args ); $btn1_text = $settings['button_text']; $link_source = ''; if( $settings['link_type'] == 1 ){ $link_source = get_page_link($settings['link_to_page']); } else { $link_source = $settings['external_link']; } ?> <?php if( $settings['choose_style'] == '1' ) : ?> <div class="safer-world-area pt-100 pb-75"> <div class="container-fluid"> <?php if ( $settings['title'] != '' || $settings['desc'] != '' ) : ?> <div class="section-title"> <<?php echo esc_attr($settings['title_tag']);?>><?php echo esc_html( $settings['title'] ); ?></<?php echo esc_attr($settings['title_tag']);?>> <p><?php echo wp_kses_post( $settings['desc'] ); ?></p> </div> <?php endif; ?> <div class="safer-world-slides owl-carousel owl-theme"> <?php while($services_array->have_posts()): $services_array->the_post(); ?> <div class="safer-world-card"> <?php if ( get_the_post_thumbnail_url() ) { ?> <div class="safer-world-image"> <a href="<?php the_permalink(); ?>"> <img src="<?php echo esc_url( get_the_post_thumbnail_url() ); ?>" alt="<?php echo esc_attr__('services img','cyarb-toolkit'); ?>"> </a> </div> <?php } ?> <div class="safer-world-content"> <h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3> <p><?php echo esc_html(wp_trim_words( get_the_excerpt(), $settings['excerpt_num'], '' )); ?></p> <?php if( $settings['read_more_btntext'] != '' ) : ?> <a href="<?php the_permalink(); ?>" class="safer-world-btn"><?php echo esc_html( $settings['read_more_btntext'] ); ?> <i class="lni lni-arrow-right"></i></a> <?php endif; ?> </div> </div> <?php endwhile; wp_reset_query(); ?> </div> </div> <?php if( $settings['shape1']['url'] != '' ) : ?> <div class="safer-world-shape"> <img src="<?php echo esc_url( $settings['shape1']['url'] ); ?>" alt="<?php echo esc_attr__( 'Shape1', 'cyarb-toolkit' ); ?>"> </div> <?php endif; ?> </div> <?php elseif( $settings['choose_style'] == '2' ) : ?> <div class="get-privacy-area pt-100 pb-75"> <div class="container"> <?php if ( $settings['title'] != '' || $btn1_text != '' ) : ?> <div class="section-title-wrap"> <div class="row align-items-center"> <?php if ( $settings['title'] != '' ) : ?> <div class="col-lg-7 col-md-12"> <div class="wrap-title"> <<?php echo esc_attr($settings['title_tag']);?>><?php echo esc_html( $settings['title'] ); ?></<?php echo esc_attr($settings['title_tag']);?>> </div> </div> <?php endif; ?> <?php if($btn1_text != '') { if ( 'yes' === $settings['target_page'] ) { ?> <div class="col-lg-5 col-md-12"> <div class="wrap-btn"> <a target="_blank" href="<?php echo esc_url($link_source); ?>" class="default-btn-two"> <span><?php echo esc_html($btn1_text); ?></span> </a> </div> </div> <?php } else { ?> <div class="col-lg-5 col-md-12"> <div class="wrap-btn"> <a href="<?php echo esc_url($link_source); ?>" class="default-btn-two"> <span><?php echo esc_html($btn1_text); ?></span> </a> </div> </div> <?php } } ?> </div> </div> <?php endif; ?> <div class="get-privacy-slides owl-carousel owl-theme"> <?php while($services_array->have_posts()): $services_array->the_post(); ?> <div class="get-privacy-card"> <?php if ( get_the_post_thumbnail_url() ) { ?> <div class="get-privacy-image"> <a href="<?php the_permalink(); ?>"> <img src="<?php echo esc_url( get_the_post_thumbnail_url() ); ?>" alt="<?php echo esc_attr__('services img','cyarb-toolkit'); ?>"> </a> </div> <?php } ?> <div class="get-privacy-content"> <h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3> <p><?php echo esc_html(wp_trim_words( get_the_excerpt(), $settings['excerpt_num'], '' )); ?></p> </div> </div> <?php endwhile; wp_reset_query(); ?> </div> </div> </div> <?php else: ?> <div class="get-privacy-area pt-100 pb-75"> <div class="container"> <?php if ( $settings['title'] != '' || $btn1_text != '' ) : ?> <div class="section-title-wrap"> <div class="row align-items-center"> <?php if ( $settings['title'] != '' ) : ?> <div class="col-lg-7 col-md-12"> <div class="wrap-title"> <<?php echo esc_attr($settings['title_tag']);?>><?php echo esc_html( $settings['title'] ); ?></<?php echo esc_attr($settings['title_tag']);?>> </div> </div> <?php endif; ?> <?php if($btn1_text != '') { if ( 'yes' === $settings['target_page'] ) { ?> <div class="col-lg-5 col-md-12"> <div class="wrap-btn"> <a target="_blank" href="<?php echo esc_url($link_source); ?>" class="default-btn-two"> <span><?php echo esc_html($btn1_text); ?></span> </a> </div> </div> <?php } else { ?> <div class="col-lg-5 col-md-12"> <div class="wrap-btn"> <a href="<?php echo esc_url($link_source); ?>" class="default-btn-two"> <span><?php echo esc_html($btn1_text); ?></span> </a> </div> </div> <?php } } ?> </div> </div> <?php endif; ?> </div> <div class="container-fluid"> <div class="get-privacy-slides owl-carousel owl-theme"> <?php while($services_array->have_posts()): $services_array->the_post(); ?> <div class="get-privacy-card"> <?php if ( get_the_post_thumbnail_url() ) { ?> <div class="get-privacy-image"> <a href="<?php the_permalink(); ?>"> <img src="<?php echo esc_url( get_the_post_thumbnail_url() ); ?>" alt="<?php echo esc_attr__('services img','cyarb-toolkit'); ?>"> </a> </div> <?php } ?> <div class="get-privacy-content"> <h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3> <p><?php echo esc_html(wp_trim_words( get_the_excerpt(), $settings['excerpt_num'], '' )); ?></p> </div> </div> <?php endwhile; wp_reset_query(); ?> </div> </div> </div> <?php endif; ?> <?php } } Plugin::instance()->widgets_manager->register_widget_type( new Cyarb_Servcies_Area );