PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / trunk
GiveWP – Donation Plugin and Fundraising Platform vtrunk
4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 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.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / src / ThirdPartySupport / Elementor / ServiceProvider.php
give / src / ThirdPartySupport / Elementor Last commit date
Actions 9 months ago Settings 10 months ago Traits 10 months ago Widgets 9 months ago ServiceProvider.php 9 months ago
ServiceProvider.php
125 lines
1 <?php
2
3 namespace Give\ThirdPartySupport\Elementor;
4
5 use Give\Helpers\Hooks;
6 use Give\ServiceProviders\ServiceProvider as ServiceProviderInterface;
7 use Give\ThirdPartySupport\Elementor\Actions\RegisterWidgets;
8 use Give\ThirdPartySupport\Elementor\Actions\RegisterWidgetEditorScripts;
9 use Give\ThirdPartySupport\Elementor\Actions\SetupElementorCampaignTemplate;
10 use Give\ThirdPartySupport\Elementor\Actions\UnregisterV1Widgets;
11 use Give\ThirdPartySupport\Elementor\Settings\RegisterSection;
12 use Give\ThirdPartySupport\Elementor\Settings\RegisterSettings;
13
14 /**
15 * @since 4.7.0
16 */
17 class ServiceProvider implements ServiceProviderInterface
18 {
19 /**
20 * @since 4.7.0
21 */
22 public function register() {}
23
24 /**
25 * @since 4.7.0
26 */
27 public function boot()
28 {
29 $this->registerElementorSettings();
30
31 if (!defined('ELEMENTOR_VERSION')) {
32 return;
33 }
34
35 // If the old version of the GiveWP Elementor Widgets plugin is installed, unregister the legacy widgets to prevent conflicts with the new widgets that are registered in the RegisterWidgets class
36 $this->maybeUnregisterExistingLegacyWidgets();
37
38 // Register core widgets with priority 11 to override any widgets from previously migrated plugin givewp-elementor-widgets
39 Hooks::addFilter('elementor/widgets/register', RegisterWidgets::class, '__invoke', 11, 1);
40
41 // Register widget scripts for the editor preview
42 Hooks::addAction('elementor/preview/enqueue_scripts', RegisterWidgetEditorScripts::class);
43
44 // Register admin styles
45 add_action('elementor/editor/before_enqueue_scripts', function () {
46 wp_enqueue_style('give-elementor-admin-styles', GIVE_PLUGIN_URL . 'src/ThirdPartySupport/Elementor/Widgets/resources/styles/give-elementor-admin.css', array(), GIVE_VERSION);
47 });
48
49 // Register elementor categories
50 add_action('elementor/elements/categories_registered', function ($elements_manager) {
51 /** @var \Elementor\Elements_Manager $elements_manager */
52 $elements_manager->add_category(
53 'givewp-category-legacy',
54 [
55 'title' => __('GiveWP (Legacy)', 'give'),
56 'icon' => 'dashicons dashicons-give',
57 ]
58 );
59
60 $elements_manager->add_category(
61 'givewp-category',
62 [
63 'title' => __('GiveWP', 'give'),
64 'icon' => 'dashicons dashicons-give',
65 ]
66 );
67 });
68
69 Hooks::addAction('givewp_campaign_page_created', SetupElementorCampaignTemplate::class);
70 }
71
72 /**
73 * Register the GiveWP Elementor Widgets settings
74 *
75 * @since @since 4.7.0
76 */
77 public function registerElementorSettings()
78 {
79 Hooks::addFilter('give_get_sections_display', RegisterSection::class);
80 Hooks::addFilter('give_get_settings_display', RegisterSettings::class);
81 }
82
83 /**
84 * If the old version of the GiveWP Elementor Widgets plugin is installed, unregister the legacy widgets to prevent conflicts with the new widgets that are registered in the RegisterWidgets class
85 *
86 * @since @since 4.7.0
87 */
88 private function maybeUnregisterExistingLegacyWidgets()
89 {
90 // This would determine if the old version of the GiveWP Elementor Widgets plugin is installed
91 if (!defined('GiveWP_DW_4_Elementor_VERSION')) {
92 return;
93 }
94
95 // If the option is not set, set it to disabled
96 if (give_get_option('givewp_elementor_legacy_widgets_enabled') === false) {
97 // update the option initially to enable the legacy widgets
98 // users can disable the legacy widgets in the GiveWP Elementor Widgets settings from here on out
99 give_update_option('givewp_elementor_legacy_widgets_enabled', 'enabled');
100 }
101
102 // Unregister the legacy widgets from the GiveWP Elementor Widgets plugin to prevent conflicts with the new widgets that are registered in the RegisterWidgets class
103 Hooks::addFilter('elementor/widgets/register', UnregisterV1Widgets::class, '__invoke', 11, 1);
104
105 add_action('admin_notices', function () {
106 // Define notice configuration
107 $notice_config = [
108 'id' => 'givewp-elementor-widgets-plugin-legacy-plugin-notice',
109 'description' => __(
110 'GiveWP now includes Elementor widgets! You can safely deactivate and remove the GiveWP Elementor Widgets plugin as it is no longer needed. Rest assured, all of your widgets currently being used will remain working properly.',
111 'give'
112 ),
113 'type' => 'info',
114 'dismissible_type' => 'user',
115 'dismiss_interval' => 'permanent',
116 ];
117
118 // Only register the notice if it hasn't been dismissed
119 if (!Give()->notices->is_notice_dismissed($notice_config)) {
120 Give()->notices->register_notice($notice_config);
121 }
122 });
123 }
124 }
125