PluginProbe
GiveWP – Donation Plugin and Fundraising Platform / 4.1.0
GiveWP – Donation Plugin and Fundraising Platform v4.1.0
4.16.8 4.16.7.2 4.16.7.1 4.16.7 4.16.6.1 4.16.6 4.16.5.1 4.16.5 4.16.4 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 All 253 releases
give / src / BetaFeatures / ServiceProvider.php

ServiceProvider.php in GiveWP – Donation Plugin and Fundraising Platform 4.1.0, at src/BetaFeatures/ServiceProvider.php

87 lines 2.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Give\BetaFeatures;
4
5 use Give\BetaFeatures\Facades\FeatureFlag;
6 use Give\Helpers\Hooks;
7 use Give\ServiceProviders\ServiceProvider as ServiceProviderInterface;
8
9 /**
10 * @since 3.6.0
11 */
12 class ServiceProvider implements ServiceProviderInterface
13 {
14 /**
15 * @since 3.6.0
16 * @inheritDoc
17 */
18 public function register(): void
19 {
20 //
21 }
22
23 /**
24 * @since 3.6.0
25 * @inheritDoc
26 */
27 public function boot(): void
28 {
29 $this->setFeatureFlagNotificationCounter();
30
31 Hooks::addFilter('give_get_settings_general', Actions\RegisterSettings::class);
32 Hooks::addFilter('give_get_sections_general', Actions\RegisterSettingSection::class);
33
34 add_filter('givewp_settings_menu_title_give-settings', function ($title) {
35 return $this->getTitleWithNotificationCounter($title, 'menu-counter');
36 });
37
38 add_filter('givewp_settings_section_title_beta', function ($title) {
39 return $this->getTitleWithNotificationCounter($title);
40 });
41
42 add_action('give_admin_field_beta_features', function(){
43 echo sprintf('<div class="give-admin-beta-features-message"><span class="givewp-beta-icon">BETA</span> %s </div>', __('Beta features are a way to get early access to new features. These features are functional but will be updated frequently. Updates may include changes to the feature settings, admin screens, design and database.', 'give'));
44 });
45
46 add_action('give_admin_field_beta_features_feedback_link', function () {
47 echo sprintf(
48 '<div class="give-admin-beta-features-feedback-link"><p><img src="%s" alt="feedback link icon" /> %s <a href="https://feedback.givewp.com/events-beta-feedback" target="_blank" rel="noopener noreferrer">%s</a></p></div>',
49 GIVE_PLUGIN_URL . 'build/assets/dist/images/admin/feedback-icon.svg',
50 __('How can we improve this feature?', 'give'),
51 __('Submit your feedback.', 'give')
52 );
53 });
54 }
55
56 /**
57 * @since 3.6.0
58 */
59 private function setFeatureFlagNotificationCounter(): void
60 {
61 if (get_option('givewp_feature_flag_notifications_count', false) === false) {
62 update_option('givewp_feature_flag_notifications_count', 1);
63 }
64 }
65
66 /**
67 * @since 3.6.0
68 */
69 public function getTitleWithNotificationCounter($title, $className = ''): string
70 {
71 $count = FeatureFlag::getNotificationCount();
72
73 if (!$count) {
74 return $title;
75 }
76
77 $counter = sprintf(
78 ' <span class="%s givewp-feature-flag-notification-counter count-%s"><span class="count">%s</span></span>',
79 $className,
80 $count,
81 number_format_i18n($count)
82 );
83
84 return $title . $counter;
85 }
86 }
87