|
1
|
|
|
<?php |
|
2
|
|
|
|
|
3
|
|
|
namespace GeminiLabs\SiteReviews\Integrations\UltimateMember; |
|
4
|
|
|
|
|
5
|
|
|
use GeminiLabs\SiteReviews\Hooks\AbstractHooks; |
|
6
|
|
|
use GeminiLabs\SiteReviews\Integrations\UltimateMember\Controllers\Controller; |
|
7
|
|
|
use GeminiLabs\SiteReviews\Integrations\UltimateMember\Controllers\DirectoryController; |
|
8
|
|
|
use GeminiLabs\SiteReviews\Integrations\UltimateMember\Controllers\ProfileController; |
|
9
|
|
|
|
|
10
|
|
|
class Hooks extends AbstractHooks |
|
11
|
|
|
{ |
|
12
|
|
|
public function run(): void |
|
13
|
|
|
{ |
|
14
|
|
|
$this->hook(Controller::class, [ |
|
15
|
|
|
['filterSettings', 'site-reviews/settings'], |
|
16
|
|
|
['filterSettingsCallback', 'site-reviews/settings/sanitize', 10, 2], |
|
17
|
|
|
['filterSubsubsub', 'site-reviews/integration/subsubsub'], |
|
18
|
|
|
['renderNotice', 'admin_init'], |
|
19
|
|
|
['renderSettings', 'site-reviews/settings/ultimatemember'], |
|
20
|
|
|
]); |
|
21
|
|
|
if ($this->isInstalled()) { |
|
22
|
|
|
$this->hook(Controller::class, [ |
|
23
|
|
|
['filterAvatarUrl', 'site-reviews/avatar/generate', 10, 2], |
|
24
|
|
|
['filterProfileId', 'site-reviews/assigned_users/profile_id', 5], |
|
25
|
|
|
]); |
|
26
|
|
|
} |
|
27
|
|
|
if ($this->isEnabled()) { |
|
28
|
|
|
$this->hook(Controller::class, [ |
|
29
|
|
|
['filterInlineStyles', 'site-reviews/enqueue/public/inline-styles'], |
|
30
|
|
|
]); |
|
31
|
|
|
$this->hook(DirectoryController::class, [ |
|
32
|
|
|
['filterAjaxMembersData', 'um_ajax_get_members_data', 50, 2], |
|
33
|
|
|
['filterDirectoryProfileOptions', 'um_admin_extend_directory_options_profile', 15], |
|
34
|
|
|
['filterDirectoryProfileSortOptions', 'um_members_directory_sort_fields'], |
|
35
|
|
|
['filterDirectorySortBy', 'um_modify_sortby_parameter', 100, 2], |
|
36
|
|
|
['modifyQuerySortby', 'um_pre_users_query', 10, 3], |
|
37
|
|
|
['modifyTmpl', 'um_members_just_after_name_tmpl', 1], |
|
38
|
|
|
['modifyTmpl', 'um_members_list_after_user_name_tmpl', 1], |
|
39
|
|
|
]); |
|
40
|
|
|
$this->hook(ProfileController::class, [ |
|
41
|
|
|
['filterInlineScript', 'site-reviews/enqueue/public/inline-script/after'], |
|
42
|
|
|
['filterProfileTabs', 'um_user_profile_tabs', 100], |
|
43
|
|
|
['renderReviewsTab', 'um_profile_content_user_reviews'], |
|
44
|
|
|
]); |
|
45
|
|
|
} |
|
46
|
|
|
} |
|
47
|
|
|
|
|
48
|
|
|
protected function isEnabled(): bool |
|
49
|
|
|
{ |
|
50
|
|
|
return 'yes' === $this->option('integrations.ultimatemember.enabled') |
|
51
|
|
|
&& $this->isInstalled(); |
|
52
|
|
|
} |
|
53
|
|
|
|
|
54
|
|
|
protected function isInstalled(): bool |
|
55
|
|
|
{ |
|
56
|
|
|
return function_exists('UM') |
|
57
|
|
|
&& function_exists('um_get_default_avatar_uri') |
|
58
|
|
|
&& function_exists('um_get_requested_user') |
|
59
|
|
|
&& function_exists('um_is_core_page') |
|
60
|
|
|
&& function_exists('um_user_profile_url'); |
|
61
|
|
|
} |
|
62
|
|
|
} |
|
63
|
|
|
|