| @@ -1,140 +1,140 @@ | ||
| 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 | -} | |
| 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 | +} | |