PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 4.5.0
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v4.5.0
4.5.1 4.5.0 4.4.2 4.4.1 4.4.0 4.3.3 4.3.2 4.3.1 4.3.0 4.2.3 4.2.2 4.2.1 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.10 1.1.11 1.1.12 1.1.13 1.1.14 1.1.15 1.1.16 1.1.17 1.1.18 1.1.19 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8 1.1.9 1.10.0 1.10.1 1.10.2 1.10.3 1.10.4 1.11.0 1.11.1 1.11.2 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.4.0 1.4.1 1.4.2 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.9.0 1.9.1 1.9.2 1.9.3 1.9.4 1.9.5 2.0.0 2.0.1 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.10.0 2.10.1 2.11.0 2.11.1 2.11.2 2.11.3 2.11.4 2.12.0 2.13.0 2.14.0 2.14.1 2.15.0 2.15.1 2.16.0 2.16.1 2.16.2 2.16.3 2.17.0 2.17.1 2.17.2 2.18.0 2.19.0 2.19.2 2.19.3 2.19.4 2.2.0 2.2.1 2.20.0 2.20.1 2.20.2 2.20.3 2.20.4 2.20.5 2.20.6 2.21.0 2.22.0 2.22.1 2.23.0 2.24.0 2.25.0 2.25.1 2.25.2 2.26.0 2.27.0 2.27.1 2.28.0 2.29.0 2.29.1 2.29.2 2.29.3 2.29.4 2.3.0 2.3.1 2.30.0 2.31.0 2.31.1 2.31.2 2.31.3 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.40.0 2.40.1 2.5.0 2.5.1 2.5.2 2.6.0 2.6.1 2.6.2 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.8.2 2.8.3 2.8.4 2.9.0 3.0.0 3.0.0-RC1 3.0.0-RC2 3.0.0-beta1 3.0.0-beta2 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.10.0 3.10.1 3.11.0 3.12.0 3.13.0 3.13.1 3.13.2 3.13.3 3.13.4 3.14.0 3.15.0 3.15.1 3.15.2 3.15.3 3.15.4 3.15.5 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.16.6 3.16.7 3.16.8 3.17.0 3.17.1 3.17.2 3.17.3 3.17.4 3.17.5 3.17.6 3.18.0 3.19.0 3.19.1 3.19.2 3.2.0 3.2.1 3.2.2 3.20.0 3.20.1 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.4.3 3.5.0 3.5.1 3.5.2 3.5.3 3.6.0 3.6.1 3.6.2 3.7.0 3.7.1 3.7.2 3.7.3 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.9.0 4.0.0 4.0.1 4.0.2 4.0.3 trunk 4.1.0 0.2.19.1 4.1.1 1.0.0 4.2.0 1.0.1 1.0.2
surecart / app / src / Integrations / Elementor / ElementorWidgetsService.php
surecart / app / src / Integrations / Elementor Last commit date
Conditions 1 year ago Documents 1 year ago DynamicTags 4 months ago Widgets 2 months ago assets 4 months ago ElementorBlockAdapterService.php 4 months ago ElementorCoreBlockStylesService.php 1 year ago ElementorDocumentsService.php 1 year ago ElementorDynamicTagsService.php 1 year ago ElementorEditorService.php 1 year ago ElementorFseScriptLoaderService.php 1 year ago ElementorServiceProvider.php 8 months ago ElementorShortcodeService.php 1 year ago ElementorTemplatesService.php 4 months ago ElementorWidgetsService.php 8 months ago
ElementorWidgetsService.php
121 lines
1 <?php
2
3 namespace SureCart\Integrations\Elementor;
4
5 /**
6 * Class to handle elementor widgets.
7 */
8 class ElementorWidgetsService {
9 /**
10 * The widgets.
11 *
12 * @var array
13 */
14 protected $free_widgets = [
15 'ReusableFormWidget',
16 'CartMenuIcon',
17 ];
18
19 /**
20 * Bootstrap the service.
21 *
22 * @return void
23 */
24 public function bootstrap() {
25 add_action( 'init', [ $this, 'registerStyles' ] );
26 add_action( 'elementor/elements/categories_registered', [ $this, 'registerCategories' ] );
27 add_action( 'elementor/widgets/register', [ $this, 'registerWidgets' ] );
28 add_action( 'elementor/frontend/after_enqueue_styles', [ $this, 'enqueueStyles' ], 1 );
29 }
30
31 /**
32 * Register the styles.
33 *
34 * @return void
35 */
36 public function registerStyles() {
37 wp_register_style( 'surecart-elementor-container-style', plugins_url( 'assets/container.css', __FILE__ ), [], '1.0', 'all' );
38 }
39
40 /**
41 * Enqueue the styles.
42 *
43 * @return void
44 */
45 public function enqueueStyles() {
46 wp_enqueue_style( 'surecart-elementor-container-style' );
47 }
48
49 /**
50 * Elementor surecart categories register.
51 *
52 * @param \Elementor\Elements_Manager $elements_manager The elements manager.
53 *
54 * @return void
55 */
56 public function registerCategories( $elements_manager ) {
57 $elements_manager->add_category(
58 'surecart-elementor-layout',
59 [
60 'title' => esc_html__( 'SureCart Layout', 'surecart' ),
61 'icon' => 'fa fa-plug',
62 ]
63 );
64
65 $elements_manager->add_category(
66 'surecart-elementor-elements',
67 [
68 'title' => esc_html__( 'SureCart Elements', 'surecart' ),
69 'icon' => 'fa fa-plug',
70 ]
71 );
72
73 $elements_manager->add_category(
74 'surecart-elementor-checkout',
75 [
76 'title' => esc_html__( 'SureCart Checkout Page', 'surecart' ),
77 'icon' => 'fa fa-plug',
78 ]
79 );
80 }
81
82 /**
83 * Register the widgets.
84 *
85 * @param \Elementor\Widgets_Manager $widget_manager Widget manager.
86 *
87 * @return void
88 */
89 public function registerWidgets( $widget_manager ) {
90 if ( ! class_exists( '\Elementor\Widget_Base' ) ) {
91 return;
92 }
93
94 foreach ( glob( __DIR__ . '/Widgets/*.php' ) as $file ) {
95 if ( ! is_readable( $file ) ) {
96 continue;
97 }
98
99 // pro is not active and the widget is not in the free widgets array.
100 if ( ! $this->is_pro_active() && ! in_array( basename( $file, '.php' ), $this->free_widgets, true ) ) {
101 continue;
102 }
103
104 require_once $file;
105 $get_declared_classes = get_declared_classes();
106 $widget_class_name = end( $get_declared_classes );
107
108 $widget_manager->register( new $widget_class_name() );
109 }
110 }
111
112 /**
113 * Check if Elementor Pro is active.
114 *
115 * @return bool
116 */
117 protected function is_pro_active(): bool {
118 return class_exists( '\ElementorPro\Plugin' );
119 }
120 }
121