PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.7.0
GiveWP – Donation Plugin and Fundraising Platform v4.7.0
4.16.3 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 10 months ago Settings 10 months ago Traits 10 months ago Widgets 10 months ago ServiceProvider.php 10 months ago
ServiceProvider.php
117 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
61 Hooks::addAction('givewp_campaign_page_created', SetupElementorCampaignTemplate::class);
62 }
63
64 /**
65 * Register the GiveWP Elementor Widgets settings
66 *
67 * @since @since 4.7.0
68 */
69 public function registerElementorSettings()
70 {
71 Hooks::addFilter('give_get_sections_display', RegisterSection::class);
72 Hooks::addFilter('give_get_settings_display', RegisterSettings::class);
73 }
74
75 /**
76 * 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
77 *
78 * @since @since 4.7.0
79 */
80 private function maybeUnregisterExistingLegacyWidgets()
81 {
82 // This would determine if the old version of the GiveWP Elementor Widgets plugin is installed
83 if (!defined('GiveWP_DW_4_Elementor_VERSION')) {
84 return;
85 }
86
87 // If the option is not set, set it to disabled
88 if (give_get_option('givewp_elementor_legacy_widgets_enabled') === false) {
89 // update the option initially to enable the legacy widgets
90 // users can disable the legacy widgets in the GiveWP Elementor Widgets settings from here on out
91 give_update_option('givewp_elementor_legacy_widgets_enabled', 'enabled');
92 }
93
94 // Unregister the legacy widgets from the GiveWP Elementor Widgets plugin to prevent conflicts with the new widgets that are registered in the RegisterWidgets class
95 Hooks::addFilter('elementor/widgets/register', UnregisterV1Widgets::class, '__invoke', 11, 1);
96
97 add_action('admin_notices', function () {
98 // Define notice configuration
99 $notice_config = [
100 'id' => 'givewp-elementor-widgets-plugin-legacy-plugin-notice',
101 'description' => __(
102 '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.',
103 'give'
104 ),
105 'type' => 'info',
106 'dismissible_type' => 'user',
107 'dismiss_interval' => 'permanent',
108 ];
109
110 // Only register the notice if it hasn't been dismissed
111 if (!Give()->notices->is_notice_dismissed($notice_config)) {
112 Give()->notices->register_notice($notice_config);
113 }
114 });
115 }
116 }
117