PluginProbe
LearnPress – WordPress LMS Plugin for Create and Sell Online Courses / 4.3.8
LearnPress – WordPress LMS Plugin for Create and Sell Online Courses v4.3.8
4.4.8 4.4.7 4.4.6 4.4.5 4.4.4 4.4.3 4.4.2 4.4.1 4.4.0 4.3.9.1 4.3.9 4.3.8 4.3.7 4.1.6.9 4.1.6.9.1 4.1.6.9.2 4.1.6.9.3 4.1.6.9.4 4.1.7 4.1.7.1 4.1.7.2 4.1.7.3 4.1.7.3.1 4.1.7.3.2 4.2.0 All 139 releases
learnpress / inc / ExternalPlugin / Elementor / LPElementor.php

LPElementor.php in LearnPress – WordPress LMS Plugin for Create and Sell Online Courses 4.3.8, at inc/ExternalPlugin/Elementor/LPElementor.php

141 lines 3.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Class LPElementor
4 * Register categories
5 * Register widgets
6 *
7 * @since 4.2.3
8 * @version 1.0.2
9 */
10
11 namespace LearnPress\ExternalPlugin\Elementor;
12 use Elementor\Core\DynamicTags\Manager;
13 use Elementor\Elements_Manager;
14 use LearnPress\Helpers\Singleton;
15
16 class LPElementor {
17 use Singleton;
18
19 const GROUP_DYNAMIC = 'learnpress_dynamic';
20 const CATE_LP = 'learnpress';
21 const CATE_COURSE = 'learnpress_course';
22 const CATE_INSTRUCTOR = 'learnpress_instructor';
23 public $config = [];
24
25 protected function init() {
26 add_action( 'elementor/init', array( $this, 'load_widgets_config' ) );
27 add_action( 'elementor/elements/categories_registered', array( $this, 'register_category' ) );
28 add_action( 'elementor/widgets/register', array( $this, 'register_widgets' ), 10, 1 );
29 add_action( 'elementor/dynamic_tags/register', array( $this, 'register_tags' ) );
30 add_filter( 'lp/rest/ajax/allow_callback', [ $this, 'register_callback_ajax' ] );
31 }
32
33 /**
34 * Load widgets config of LP
35 *
36 * @return void
37 * @since 4.2.3.5
38 * @version 1.0.0
39 */
40 public function load_widgets_config() {
41 $this->config = require_once 'lp-elementor-widgets-config.php';
42 }
43
44 /**
45 * Register category LearnPress
46 *
47 * @param Elements_Manager $elements_manager
48 *
49 * @return void
50 * @since 4.2.3
51 * @version 1.0.1
52 */
53 public function register_category( Elements_Manager $elements_manager ) {
54 $categories = [
55 self::CATE_LP => [
56 'title' => esc_html__( 'LearnPress', 'learnpress' ),
57 'icon' => 'eicon-navigator',
58 ],
59 self::CATE_INSTRUCTOR => [
60 'title' => esc_html__( 'LearnPress Instructor Sections', 'learnpress' ),
61 'icon' => 'eicon-navigator',
62 ],
63 self::CATE_COURSE => [
64 'title' => esc_html__( 'LearnPress Course Sections', 'learnpress' ),
65 'icon' => 'eicon-navigator',
66 ],
67 ];
68
69 foreach ( $categories as $key => $category ) {
70 $elements_manager->add_category(
71 $key,
72 $category
73 );
74 }
75
76 // For case priority categories of LP for El to top.
77 /*$old_categories = $elements_manager->get_categories();
78 $categories = array_merge( $categories, $old_categories );
79
80 $set_categories = function ( $categories ) {
81 $this->categories = $categories;
82 };
83 $set_categories->call( $elements_manager, $categories );*/
84 }
85
86 /**
87 * Register widgets for elementor
88 *
89 * @param $widgets_manager
90 * @return void
91 */
92 public function register_widgets( $widgets_manager ) {
93 foreach ( $this->config['widgets'] as $widget => $class ) {
94 if ( class_exists( $class ) ) {
95 $widgets_manager->register( new $class() );
96 }
97 }
98 }
99
100 /**
101 * Register dynamic tags for elementor
102 *
103 * @param Manager $dynamic_tags
104 *
105 * @return void
106 */
107 public function register_tags( Manager $dynamic_tags ) {
108 // Register group learn-press-dynamic
109 $dynamic_tags->register_group(
110 self::GROUP_DYNAMIC,
111 array(
112 'title' => esc_html__(
113 'LearnPress',
114 'learnpress'
115 ),
116 )
117 );
118
119 foreach ( $this->config['dynamic'] as $key => $tag_class_name ) {
120 $dynamic_tags->register( new $tag_class_name() );
121 }
122 }
123
124 /**
125 * Register callback ajax for load content via ajax.
126 * Of LearnPress
127 *
128 * @param array $callbacks
129 *
130 * @return array
131 * @since 4.2.5.8
132 * @version 1.0.0
133 */
134 public function register_callback_ajax( array $callbacks ): array {
135 return array_merge(
136 $callbacks,
137 $this->config['loadAjax']
138 );
139 }
140 }
141