HEX
Server: LiteSpeed
System: Linux dune179.sitesanctuary.org 5.14.0-427.40.1.el9_4.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Oct 16 07:08:17 EDT 2024 x86_64
User: h278792 (1197)
PHP: 8.1.29
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: /home/h278792/public_html/wp-content/plugins/ecademy-toolkit/widgets/course_cat.php
<?php
/**
 * دسته بندی دوره ها Widget
 */

namespace Elementor;

// Exit if accessed directly
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

class eCademy_Courses_Categories extends Widget_Base {

	public function get_name() {
        return 'eCademy_Courses_Categories';
    }

	public function get_title() {
        return __( 'دسته بندی دوره ها', 'ecademy-toolkit' );
    }

	public function get_icon() {
        return 'eicon-basket-light';
    }

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

	protected function register_controls() {

        $this->start_controls_section(
			'eCademy_Courses_Categories',
			[
				'label' => __( 'کنترل دسته بندی دوره ها ', 'ecademy-toolkit' ),
				'tab' => Controls_Manager::TAB_CONTENT,
			]
        );

			$this->add_control(
				'button_text',
				[
					'label' => __( 'متن دکمه', 'ecademy-toolkit' ),
					'type' => Controls_Manager::TEXT,
					'default' => __('مشاهده همه دسته ها', 'ecademy-toolkit'),
				]
            );

            $this->add_control(
				'button_icon',
				[
					'label' => __( 'آیکن دکمه', 'ecademy-toolkit' ),
					'type' => Controls_Manager::ICON,
				]
            );

            $this->add_control(
                'link_type',
                [
                    'label' => esc_html__( 'نوع پیوند دکمه  ', 'ecademy-toolkit' ),
                    'type' => Controls_Manager::SELECT,
                    'label_block' => true,
                    'options' => [
                        '1'  => esc_html__( 'پیوند به صفحه', 'ecademy-toolkit' ),
                        '2' => esc_html__( 'لینک خارجی', 'ecademy-toolkit' ),
                    ],
                ]
            );

            $this->add_control(
                'link_to_page',
                [
                    'label' => esc_html__( '  صفحه پیوند دکمه ', 'ecademy-toolkit' ),
                    'type' => Controls_Manager::SELECT,
                    'label_block' => true,
                    'options' => ecademy_toolkit_get_page_as_list(),
                    'condition' => [
                        'link_type' => '1',
                    ]
                ]
            );

            $this->add_control(
                'ex_link',
                [
                    'label'=>esc_html__('دکمه لینک خارجی', 'ecademy-toolkit'),
                    'type'=>Controls_Manager:: TEXT,
                    'condition' => [
                        'link_type' => '2',
                    ]
                ]
            );

            $this->add_control(
                'courses_text',
                [
                    'label'=>esc_html__('عنوان دوره', 'ecademy-toolkit'),
                    'type'=>Controls_Manager:: TEXT,
                    'label' => __( 'دوره ها', 'ecademy-toolkit' ),
                ]
            );

            $repeater = new Repeater();
            $repeater->add_control(
                'plugin_type', [
                    'label' => __( 'افزونه فعال سازی خود را انتخاب کنید', 'ecademy-toolkit' ),
                    'type' => Controls_Manager::SELECT,
                    'options' 	=> [
                        'lp'         => esc_html__( 'LearnPress', 'ecademy-toolkit' ),
                        'tutor'      => esc_html__( 'Tutor LMS', 'ecademy-toolkit' ),
                        'ld'        => esc_html__( 'LearnDash', 'ecademy-toolkit' ),
                    ],
                    'default' => 'lp',
                ]
            );
            $repeater->add_control(
                'cat_name', [
                    'label' => __( 'انتخاب دسته بندی', 'ecademy-toolkit' ),
                    'type' => Controls_Manager::SELECT,
                    'options' => ecademy_toolkit_get_courses_cat_list(),
                    'condition' => [
                        'plugin_type' => 'lp',
                    ]
                ]
            );
            $repeater->add_control(
                'tutor_cat_name', [
                    'label' => esc_html__( 'انتخاب دسته بندی', 'ecademy-toolkit' ),
                    'type' => Controls_Manager::SELECT,
                    'label_block' => true,
                    'options' => ecademy_toolkit_get_tutor_courses_cat_list(),
                    'condition' => [
                        'plugin_type' => 'tutor',
                    ]
                ]
            );
            $repeater->add_control(
                'ld_cat_name', [
                    'label' => esc_html__( 'انتخاب دسته بندی', 'ecademy-toolkit' ),
                    'type' => Controls_Manager::SELECT,
                    'label_block' => true,
                    'options' => ecademy_toolkit_get_ld_courses_cat_list(),
                    'condition' => [
                        'plugin_type' => 'ld',
                    ]
                ]
            );
            $repeater->add_control(
                'card_bg', [
                    'label'=>esc_html__('تصویر پس زمینه', 'ecademy-toolkit'),
                    'type'=>Controls_Manager:: MEDIA,
                ]
            );

            $this->add_control(
                'slider_item',
                [
                    'label' => esc_html__('کارت آیتم', 'ecademy-toolkit'),
                    'type' => Controls_Manager::REPEATER,
                    'fields' => $repeater->get_controls(),
                ]
            );

        $this->end_controls_section();

        $this->start_controls_section(
			'courses_categories_us_style',
			[
				'label' => __( 'سبک', 'ecademy-toolkit' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

			$this->add_control(
				'title_color',
				[
					'label' => __( 'عنوان رنگ', 'ecademy-toolkit' ),
					'type' => Controls_Manager::COLOR,
					'selectors' => [
						'{{WRAPPER}} .single-categories-box .content h3' => 'color: {{VALUE}}',
					],
				]
			);

			$this->add_responsive_control(
				'title_size',
				[
					'label' => __( 'اندازه قلم عنوان', 'ecademy-toolkit' ),
					'type' => Controls_Manager::SLIDER,
					'size_units' => [ 'px' ],
					'range' => [
						'px' => [
							'min' => 1,
							'max' => 100,
							'step' => 1,
						],
					],
					'devices' => [ 'desktop', 'tablet', 'mobile' ],
					'selectors' => [
						'{{WRAPPER}} .single-categories-box .content h3' => 'font-size: {{SIZE}}px;',
					],
				]
            );

            $this->add_control(
				'desc_color',
				[
					'label' => __( 'رنگ اطلاعات', 'ecademy-toolkit' ),
					'type' => Controls_Manager::COLOR,
					'selectors' => [
						'{{WRAPPER}} .single-categories-box .content span' => 'color: {{VALUE}}',
					],
				]
			);

			$this->add_responsive_control(
				'desc_size',
				[
					'label' => __( 'سایز فونت اطلاعات', 'ecademy-toolkit' ),
					'type' => Controls_Manager::SLIDER,
					'size_units' => [ 'px' ],
					'range' => [
						'px' => [
							'min' => 1,
							'max' => 100,
							'step' => 1,
						],
					],
					'devices' => [ 'desktop', 'tablet', 'mobile' ],
					'selectors' => [
						'{{WRAPPER}} .single-categories-box .content span' => 'font-size: {{SIZE}}px;',
					],
				]
			);

        $this->end_controls_section();

    }

	protected function render() {

		$settings = $this->get_settings_for_display();

        global $ecademy_opt;
		if( isset( $ecademy_opt['enable_lazyloader'] ) ):
			$is_lazyloader = $ecademy_opt['enable_lazyloader'];
		else:
			$is_lazyloader = true;
		endif;

        // Inline Editing
        $this-> add_inline_editing_attributes('title','none');

        // Get Button Link
        $link = '';
        if($settings['link_type'] == 1){
            $link = get_page_link($settings['link_to_page']);
        } else {
            $link = $settings['ex_link'];
        }

        // آیکن دکمه
        if( $settings['button_icon'] != '' ):
            $icon = $settings['button_icon'];
        else:
            $icon = 'flaticon-user';
        endif;

		?>
        <div class="container">
            <div class="row">
                <?php foreach( $settings['slider_item'] as $item ): ?>
                    <?php
                        if( $item['plugin_type'] == 'lp' ):
                            $taxonomy = 'course_category';
                            $cat_name = $item['cat_name'];
                        elseif( $item['plugin_type'] == 'tutor' ):
                            $taxonomy = 'course-category';
                            $cat_name = $item['tutor_cat_name'];
                        elseif( $item['plugin_type'] == 'ld' ):
                            $taxonomy = 'ld_course_category';
                            $cat_name = $item['ld_cat_name'];
                        endif;
                        // Cat query
                        $args = array(
                            'orderby' => 'slug',
                            'parent' => 0,
                            'taxonomy' => $taxonomy,
                            'field' => 'slug',
                            'terms' => $cat_name
                        );

                        // Cat ID
                        $id = get_term_by( 'name', $cat_name, $taxonomy );
                        // Cat Link
                        $cat_link = get_category_link($id->term_id);
                    ?>
                    <div class="col-lg-3 col-sm-6 col-md-6">
                        <div class="single-categories-box">
                            <?php if( $is_lazyloader == true ): ?>
                                <img sm-src="<?php echo esc_url($item['card_bg']['url']); ?>" alt="<?php echo $cat_name; ?>">
                            <?php else: ?>
                                <img src="<?php echo esc_url($item['card_bg']['url']); ?>" alt="<?php echo $cat_name; ?>">
                            <?php endif; ?>

                            <div class="content">
                                <h3><?php echo $cat_name; ?></h3>
                                <?php
                                $categories = get_categories( $args );
                                foreach( $categories as $category ){
                                    if( $category->name == $item['cat_name']  ): ?>
                                    <span><?php echo esc_html($category->category_count); ?> <?php echo esc_html( $settings['courses_text'] ); ?></span>
                                    <?php
                                    endif;
                                }
                                ?>

                            </div>
                            <a href="<?php echo esc_url( $cat_link ); ?>" class="link-btn"></a>
                        </div>
                    </div>
                <?php endforeach; ?>

                <?php if( $settings['button_text'] != '' ): ?>
                    <div class="col-lg-12 col-sm-12 col-md-12">
                        <div class="categories-btn-box">
                            <a href="<?php echo esc_url( $link ); ?>" class="default-btn"><i class="<?php echo esc_attr( $icon ); ?>"></i><?php echo esc_html( $settings['button_text'] ); ?><span></span></a>
                        </div>
                    </div>
                <?php endif; ?>

            </div>
        </div>
<?php
	}


}

Plugin::instance()->widgets_manager->register( new eCademy_Courses_Categories );