πŸš€ Hostinger Optimized
πŸ–₯️ Server: Apache
πŸ’» System: Linux webm015.cluster127.gra.hosting.ovh.net 6.18.42-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Wed Aug 5 15:59:48 CEST 2026 x86_64
πŸ‘€ User: stakrfrcol (69043)
🐘 PHP: 8.3.31
🚫 Disabled: _dyuweyrj4,_dyuweyrj4r,dl

πŸ’» Terminal

πŸ“ /home/stakrfrcol/agency
$

πŸ“„ tabs-special.php

πŸ“ Path: /home/s/t/a/stakrfrcol/agency/wp-content/themes/xhyre/includes/elementor/tabs-special.php
πŸ“Š Size: 17.02 KB
πŸ”’ Perm: 0644
πŸ“ MIME: text/x-php
<?php
namespace Elementor; // Custom widgets must be defined in the Elementor namespace
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly (security measure)
/**
 * Widget Name: Section Heading 
 */
class PBMIT_TabsSpecialElement extends Widget_Base{
 	/**
	 * Get widget name.
	 *
	 * Retrieve tabs widget name.
	 *
	 * @since 1.0.0
	 * @access public
	 *
	 * @return string Widget name.
	 */
	public function get_name() {
		return 'pbmit_tabs_special_element';
	}
	/**
	 * Get widget title.
	 *
	 * Retrieve tabs widget title.
	 *
	 * @since 1.0.0
	 * @access public
	 *
	 * @return string Widget title.
	 */
	public function get_title() {
		return esc_html__( 'xhyre Tabs Special Element', 'xhyre' );
	}
	/**
	 * Get widget icon.
	 *
	 * Retrieve tabs widget icon.
	 *
	 * @since 1.0.0
	 * @access public
	 *
	 * @return string Widget icon.
	 */
	public function get_icon() {
		return 'fas fa-border-none';
	}
	// The get_categories method, lets you set the category of the widget, return the category name as a string.
	public function get_categories() {
		return [ 'xhyre_category' ];
	}
	/**
	 * Get widget keywords.
	 *
	 * Retrieve the list of keywords the widget belongs to.
	 *
	 * @since 2.1.0
	 * @access public
	 *
	 * @return array Widget keywords.
	 */
	public function get_keywords() {
		return [ 'tabs', 'accordion', 'toggle' ];
	}
	protected function register_controls() {
		// Heading and Subheading
		$this->start_controls_section(
			'heading_section',
			[
				'label' => esc_attr__( 'Heading and Subheading', 'xhyre' ),
			]
		);
		$this->add_control(
			'title_animation',
			[
				'label'			=> esc_attr__( 'Heading Animation', 'xhyre' ),
				'description'	=> esc_attr__( 'Select Heading Text Animation View style.', 'xhyre' ) . ' ' . pbmit_esc_kses('<br><a target="_blank" href="' . esc_url('https://xhyre-demo.pbminfotech.com/demo1/element/#heading-animations') . '">' . esc_attr__( 'See all anmiation demo here.', 'xhyre' ) . '</a>' ),
				'type'			=> Controls_Manager::SELECT,
				'default'		=> '4',
				'options'		=> [
					'4'				=> esc_attr__( 'No animation', 'xhyre' ),
					'1'				=> esc_attr__( 'Animation Style 1', 'xhyre' ),
					'2'				=> esc_attr__( 'Animation Style 2', 'xhyre' ),
					'3'				=> esc_attr__( 'Animation Style 3', 'xhyre' ),
				],
				'separator'		=> 'before',
			]
		);
		$this->add_control(
			'title',
			[
				'label'			=> esc_attr__( 'Heading', 'xhyre' ),
				'type'			=> Controls_Manager::TEXTAREA,
				'dynamic'		=> [
					'active'		=> true,
				],
				'default'		=> esc_attr__( 'Our Tabs', 'xhyre' ),
				'placeholder'	=> esc_attr__( 'Enter your heading', 'xhyre' ),
				'label_block'	=> true,
			]
		);
		$this->add_control(
			'title_link',
			[
				'label'			=> esc_attr__( 'Heading Link', 'xhyre' ),
				'type'			=> Controls_Manager::URL,
				'label_block'	=> true,
			]
		);
		$this->add_control(
			'subtitle',
			[
				'label'			=> esc_attr__( 'Subheading', 'xhyre' ),
				'type'			=> Controls_Manager::TEXTAREA,
				'dynamic'		=> [
					'active'		=> true,
				],
				'placeholder'	=> esc_attr__( 'Enter your subtitle', 'xhyre' ),
				'label_block'	=> true,
			]
		);
		$this->add_control(
			'subtitle_link',
			[
				'label'			=> esc_attr__( 'Subheading Link', 'xhyre' ),
				'type'			=> Controls_Manager::URL,
				'label_block'	=> true,
			]
		);
		$this->add_control(
			'desc',
			[
				'label'			=> esc_attr__( 'Description', 'xhyre' ),
				'type'			=> Controls_Manager::TEXTAREA,
				'placeholder'	=> esc_attr__( 'Type your description here', 'xhyre' ),
			]
		);
		$this->add_control(
			'reverse_title',
			[
				'label'			=> esc_attr__( 'Reverse Heading', 'xhyre' ),
				'description'	=> esc_attr__( 'Show Subheading before Heading', 'xhyre' ),
				'type'			=> Controls_Manager::SWITCHER,
				'label_on'		=> esc_attr__( 'Yes', 'xhyre' ),
				'label_off'		=> esc_attr__( 'No', 'xhyre' ),
				'return_value'	=> 'yes',
				'default'		=> '',
			]
		);
		$this->add_responsive_control(
			'text_align',
			[
				'label'			=> esc_attr__( 'Alignment', 'xhyre' ),
				'type'			=> Controls_Manager::CHOOSE,
				'options'		=> [
					'left'			=> [
						'title'			=> esc_attr__( 'Left', 'xhyre' ),
						'icon'			=> 'fa fa-align-left',
					],
					'center'		=> [
						'title'			=> esc_attr__( 'Center', 'xhyre' ),
						'icon'			=> 'fa fa-align-center',
					],
					'right'			=> [
						'title'			=> esc_attr__( 'Right', 'xhyre' ),
						'icon'			=> 'fa fa-align-right',
					],
				],
				'prefix_class'	=> 'pbmit-ele-header-align-',
				'selectors'		=> [
					'{{WRAPPER}} .pbmit-heading-subheading' => 'text-align: {{VALUE}};',
				],
			]
		);
		$this->end_controls_section();
		//Content Service box
		$this->start_controls_section(
			'content_section',
			[
				'label' => esc_attr( 'Tabs Option', 'xhyre' ),
			]
		);
		$repeater = new Repeater();
		$repeater->add_control(
			'tab_title',
			[
				'label'			=> esc_attr( 'Title', 'xhyre' ),
				'type'			=> Controls_Manager::TEXT,
				'default'		=> esc_attr( 'Tab Title', 'xhyre' ),
				'placeholder'	=> esc_attr( 'Tab Title', 'xhyre' ),
				'label_block'	=> true,
			]
		);	
		$repeater->add_control(
			'tab_image',
			[
				'label'			=> esc_attr__( 'Select Tab Image', 'xhyre' ),
				'description'	=> esc_attr__( 'This image will appear at icon position. Recommended size is 300x300 px transparent PNG file.', 'xhyre' ),
				'type'			=> \Elementor\Controls_Manager::MEDIA,
				'default'		=> [
					'url'			=> get_template_directory_uri() . '/images/tab-img.jpg',
				],
			]
		);
		$repeater->add_control(
			'tab_highlight_text',
			[
				'label'			=> esc_attr__( 'Tab Highlight text', 'xhyre' ),
				'type'			=> Controls_Manager::TEXT,
				'dynamic'		=> [
					'active'		=> false,
				],
				'default'		=> esc_attr__( '25+ Year Of Experience', 'xhyre' ),
				'placeholder'	=> esc_attr__( 'Enter Text Here', 'xhyre' ),
				'label_block'	=> true,
			]
		);
		$repeater->add_control(
			'tab_heading',
			[
				'label'			=> esc_attr__( 'Tab Heading ', 'xhyre' ),
				'type'			=> Controls_Manager::TEXT,
				'dynamic'		=> [
					'active'		=> true,
				],
				'default'		=> esc_attr__( 'Creating The Art Of Stylish Living.', 'xhyre' ),
				'placeholder'	=> esc_attr__( 'Enter Text Here', 'xhyre' ),
				'label_block'	=> true,
			]
		);
		$repeater->add_control(
			'tab_content',
			[
				'label'			=> esc_attr( 'Tab Content', 'xhyre' ),
				'type'			=> Controls_Manager::TEXTAREA,
				'default'		=> esc_attr( 'There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which dont look even.', 'xhyre' ),
				'placeholder'	=> esc_attr( 'Tab Content', 'xhyre' ),				
				'label_block'	=> true,
			]
		);
		$repeater->add_control(
			'tab_text_01',
			[
				'label'			=> esc_attr__( 'Tab Line1', 'xhyre' ),
				'type'			=> Controls_Manager::TEXT,
				'dynamic'		=> [
					'active'		=> true,
				],
				'default'		=> esc_attr__( 'Experience Time-served Engineers', 'xhyre' ),
				'placeholder'	=> esc_attr__( 'Enter Text Here', 'xhyre' ),
				'label_block'	=> true,
			]
		);
		$repeater->add_control(
			'tab_text_02',
			[
				'label'			=> esc_attr__( 'Tab Line2', 'xhyre' ),
				'type'			=> Controls_Manager::TEXT,
				'dynamic'		=> [
					'active'		=> true,
				],
				'default'		=> esc_attr__( 'Commitment of customer service', 'xhyre' ),
				'placeholder'	=> esc_attr__( 'Enter Text Here', 'xhyre' ),
				'label_block'	=> true,
			]
		);
		$repeater->add_control(
			'tab_text_03',
			[
				'label'			=> esc_attr__( 'Tab Line3', 'xhyre' ),
				'type'			=> Controls_Manager::TEXT,
				'dynamic'		=> [
					'active'		=> false,
				],
				'default'		=> esc_attr__( 'Commitment to talking the stress out of your project', 'xhyre' ),
				'placeholder'	=> esc_attr__( 'Enter Text Here', 'xhyre' ),
				'label_block'	=> true,
			]
		);
		$repeater->add_control(
			'tab_text_04',
			[
				'label'			=> esc_attr__( 'Tab Line4', 'xhyre' ),
				'type'			=> Controls_Manager::TEXT,
				'dynamic'		=> [
					'active'		=> false,
				],
				'default'		=> esc_attr__( 'Flexible With any structure of the building', 'xhyre' ),
				'placeholder'	=> esc_attr__( 'Enter Text Here', 'xhyre' ),
				'label_block'	=> true,
			]
		);
		// Button Option	
		$repeater->add_control(
			'btn_title',
			[
				'label'			=> esc_attr__( 'Button Title', 'xhyre' ),
				'type'			=> Controls_Manager::TEXT,
				'dynamic'		=> [
					'active'		=> true,
				],
				'default'		=> esc_attr__( 'Our Service', 'xhyre' ),
				'placeholder'	=> esc_attr__( 'Enter button title here', 'xhyre' ),
				'label_block'	=> true,
			]
		);
		$repeater->add_control(
			'btn_link',
			[
				'label'			=> esc_attr__( 'Button Link', 'xhyre' ),
				'type'			=> Controls_Manager::URL,
				'label_block'	=> true,
				'default'		=> array (
					'url'				=> '#',
					'is_external'		=> '',
					'nofollow'			=> '',
					'custom_attributes'	=> '',
				),
			]
		);
		$repeater->add_control(
			'text_btn_title',
			[
				'label'			=> esc_attr__( 'Text Button Title', 'xhyre' ),
				'type'			=> Controls_Manager::TEXT,
				'dynamic'		=> [
					'active'		=> true,
				],
				'default'		=> esc_attr__( 'Discover More', 'xhyre' ),
				'placeholder'	=> esc_attr__( 'Enter button title here', 'xhyre' ),
				'label_block'	=> true,
			]
		);
		$repeater->add_control(
			'text_btn_link',
			[
				'label'			=> esc_attr__( 'Text Button Link', 'xhyre' ),
				'type'			=> Controls_Manager::URL,
				'label_block'	=> true,
				'default'		=> array (
					'url'				=> '#',
					'is_external'		=> '',
					'nofollow'			=> '',
					'custom_attributes'	=> '',
				),
			]
		);
		$this->add_control(
			'tabs',
			[
				'label'			=> esc_attr( 'Tabs Items', 'xhyre' ),
				'type'			=> Controls_Manager::REPEATER,
				'fields' 		=> $repeater->get_controls(),
				'default'		=> [
					[
						'tab_title'				=> esc_attr( 'Our Mission', 'xhyre' ),
						'tab_image'				=> get_template_directory_uri() . '/images/tab-img.jpg',
						'tab_highlight_text'	=> esc_attr( '25+ Year Of Experience', 'xhyre' ),
						'tab_heading'			=> esc_attr( 'What is an HR mission statement?', 'xhyre' ),
						'tab_content'			=> esc_attr( 'Human Resources mission statement in place, the department can align its functions with the organization’s core mission and values a whole new world of hiring potential.', 'xhyre' ),
						'tab_text_01'			=> esc_attr( 'Strategic and Workforce Planning', 'xhyre' ),
						'tab_text_02'			=> esc_attr( 'knowledge of recognizing workplace power', 'xhyre' ),
						'tab_text_03'			=> esc_attr( 'Onboarding and Employee Engagement', 'xhyre' ),
						'tab_text_04'			=> esc_attr( 'Flexible With any structure of the building.', 'xhyre' ),
					],
					[
						'tab_title'				=> esc_attr( 'Vision & Strategy', 'xhyre' ),
						'tab_image'				=> get_template_directory_uri() . '/images/tab-img.jpg',
						'tab_highlight_text'	=> esc_attr( '17+ Year Of Experience', 'xhyre' ),
						'tab_heading'			=> esc_attr( 'What we like about this strategy', 'xhyre' ),
						'tab_content'			=> esc_attr( 'Our clients and partners are at the heart of our People Strategy. We achieve our common goals through our human capital: our people. Delivering on the Group People Strategy is a key value', 'xhyre' ),
						'tab_text_01'			=> esc_attr( 'One capital base and a streamlined legal', 'xhyre' ),
						'tab_text_02'			=> esc_attr( 'How we execute on the company’s strategy.', 'xhyre' ),
						'tab_text_03'			=> esc_attr( 'One client approach and access to public sector', 'xhyre' ),
						'tab_text_04'			=> esc_attr( 'Rated highly again in our employee survey.', 'xhyre' ),
					],
					[
						'tab_title'				=> esc_attr( 'Our Awards', 'xhyre' ),
						'tab_image'				=> get_template_directory_uri() . '/images/tab-img.jpg',
						'tab_highlight_text'	=> esc_attr( '12+ Year Of Experience', 'xhyre' ),
						'tab_heading'			=> esc_attr( 'HR Initiatives to the Global Stage', 'xhyre' ),
						'tab_content'			=> esc_attr( 'Is your organization ready to showcase its HR excellence on a global platform? By applying for our HR Person of the Year award, you can gain recognition for your outstanding contributions to the field', 'xhyre' ),
						'tab_text_01'			=> esc_attr( 'Strategic and Workforce Planning', 'xhyre' ),
						'tab_text_02'			=> esc_attr( 'knowledge of recognizing workplace power', 'xhyre' ),
						'tab_text_03'			=> esc_attr( 'Onboarding and Employee Engagement', 'xhyre' ),
						'tab_text_04'			=> esc_attr( 'Flexible With any structure of the building.', 'xhyre' ),
					],
				],
				'title_field'	=> '{{{ tab_title }}}',
			]
		);
		$this->end_controls_section();
	}
	protected function render() {
		$settings = $this->get_settings_for_display();
		?>
<div class = "pbmit-tab-special">
		<div class="pbmit-element-posts-wrapper row multi-columns-row">	
			<div class="pbmit-contentbox col-md-12 col-sm-12">
				<div class="pbmit-ele-header-area">
					<?php pbmit_heading_subheading($settings, true); ?>
				</div>
				<div class="pbmit-tabs">
					<?php if ( $settings['tabs'] ) : ?>
					<ul class="pbmit-tabs-heading">
						<?php $i = 1; foreach ( $settings['tabs'] as $tabs ) { ?>
							<?php $active_li_class = ( $i==1 ) ? 'pbmit-tab-li-active' : '' ; ?>
						<li class="pbmit-tab-link <?php echo esc_attr($active_li_class); ?>" data-pbmit-tab="<?php echo esc_attr($i); ?>"><span><?php echo esc_html($tabs['tab_title']); ?></span></li>
						<?php $i++; } ?>
					</ul>
					<div class="pbmit-tab-content-wrapper">
						<?php $j = 1; foreach ( $settings['tabs'] as $tabs ) { ?>
							<?php $active_class = ( $j==1 ) ? 'pbmit-tab-active' : '' ; ?>
							<div class="pbmit-tab-content pbmit-tab-content-<?php echo esc_attr($j); ?> <?php echo esc_attr($active_class); ?>">
								<div class="pbmit-tab-content-title" data-pbmit-tab="<?php echo esc_attr($j); ?>"><?php echo esc_html($tabs['tab_title']); ?></div>
								<div class="pbmit-tab-content-inner">
									<?php						
									$line1 = $line2 = $line3 = $line4 = $icon_html = $tab_image_html =  $icon_html_code = $button_html = $text_button_html ='';
									//Tab Image
									if( !empty($tabs['tab_image']['url']) ){	
										$icon_alt	= (!empty($settings['tab_title'])) ? trim($settings['tab_title']) : esc_attr__('image', 'xhyre');										
										$tab_image_html .= '<img src="'.$tabs['tab_image']['url'].'" alt="'.esc_attr($icon_alt).'" />';
									}
									//Highlight Text
									$tab_highlight_text	= ( !empty($tabs['tab_highlight_text']) ) ? '<div class="pbmit-tab-highlight"><h3>'.pbmit_esc_kses($tabs['tab_highlight_text']).'</h3></div>' : '' ;									
									//Heading
									$tab_heading	= ( !empty($tabs['tab_heading']) ) ? '<div class="pbmit-tab-heading"><h3>'.esc_html($tabs['tab_heading']).'</h3></div>' : '' ;
									//Description
									$tab_content	= ( !empty($tabs['tab_content']) ) ? '<div class="pbmit-tab-desc">'.esc_html($tabs['tab_content']).'</div>' : '' ;
									?>
									<div class= "pbmit-image-content-wraper row ">
										<div class="pbmit-tab-image-wrap col-xl-6">
											<?php echo pbmit_esc_kses( $tab_image_html ); ?>
										</div>
										<div class="pbmit-tab-inner-content col-xl-6">
											<?php
												// Tab Text
												$line1 .= ( !empty($tabs['tab_text_01']) ) ? '<li>'.esc_html($tabs['tab_text_01']).'</li>' : '' ;
												$line2 .= ( !empty($tabs['tab_text_02']) ) ? '<li>'.esc_html($tabs['tab_text_02']).'</li>' : '' ;
												$line3 .= ( !empty($tabs['tab_text_03']) ) ? '<li>'.esc_html($tabs['tab_text_03']).'</li>' : '' ;
												$line4 .= ( !empty($tabs['tab_text_04']) ) ? '<li>'.esc_html($tabs['tab_text_04']).'</li>' : '' ;
											?>
											<?php echo pbmit_esc_kses( $tab_heading ); ?>
											<?php echo pbmit_esc_kses( $tab_content ); ?>
											<?php echo pbmit_esc_kses( $tab_highlight_text); ?>
											<ul>										
												<?php echo pbmit_esc_kses($line1); ?>
												<?php echo pbmit_esc_kses($line2); ?>
												<?php echo pbmit_esc_kses($line3); ?>		
												<?php echo pbmit_esc_kses($line4); ?>		
											</ul>
											<div class="pbmit-tab-btn-wrap">
												<?php
												// Button
												if( !empty($tabs['btn_title']) && !empty($tabs['btn_link']['url']) ){
													$button_html = '<div class="pbmit-tab-btn">' . pbmit_link_render($tabs['btn_link'], 'start' ) . pbmit_esc_kses($tabs['btn_title']) . pbmit_link_render($tabs['btn_link'], 'end' ) . '</div>';
												} 
												echo pbmit_esc_kses( $button_html );?>
												<?php
												// Button
												if( !empty($tabs['text_btn_title']) && !empty($tabs['text_btn_link']['url']) ){
													$text_button_html = '<div class="pbmit-tab-text-btn">' . pbmit_link_render($tabs['text_btn_link'], 'start' ) . pbmit_esc_kses($tabs['text_btn_title']) . pbmit_link_render($tabs['text_btn_link'], 'end' ) . '</div>';
												} 
												echo pbmit_esc_kses( $text_button_html );?>
											</div>
										</div>			
									</div>						
								</div>
							</div>
						<?php $j++; } ?>
					</div>
					<?php endif; ?>
				</div>
			</div>
		</div>
	</div>
		<?php
	}
	protected function content_template() {}
}
// After the Schedule class is defined, I must register the new widget class with Elementor:
Plugin::instance()->widgets_manager->register( new PBMIT_TabsSpecialElement() );
← BackπŸ“₯ Raw✏️ EditπŸ”’ Chmod
✨ File Manager Magic ✨