1
|
|
|
<?php |
2
|
|
|
|
3
|
|
|
namespace GeminiLabs\SiteReviews\Integrations\ProfilePress; |
4
|
|
|
|
5
|
|
|
use GeminiLabs\SiteReviews\Integrations\IntegrationHooks; |
6
|
|
|
use GeminiLabs\SiteReviews\Integrations\ProfilePress\Controllers\AccountController; |
7
|
|
|
use GeminiLabs\SiteReviews\Integrations\ProfilePress\Controllers\Controller; |
8
|
|
|
use GeminiLabs\SiteReviews\Integrations\ProfilePress\Controllers\DirectoryController; |
9
|
|
|
use GeminiLabs\SiteReviews\Integrations\ProfilePress\Controllers\ProfileController; |
10
|
|
|
|
11
|
|
|
class Hooks extends IntegrationHooks |
12
|
|
|
{ |
13
|
|
|
public function run(): void |
14
|
|
|
{ |
15
|
|
|
$this->hook(Controller::class, [ |
16
|
|
|
['filterSettings', 'site-reviews/settings'], |
17
|
|
|
['filterSettingsCallback', 'site-reviews/settings/sanitize', 10, 2], |
18
|
|
|
['filterSubsubsub', 'site-reviews/integration/subsubsub'], |
19
|
|
|
['renderNotice', 'admin_init'], |
20
|
|
|
['renderSettings', 'site-reviews/settings/profilepress'], |
21
|
|
|
]); |
22
|
|
|
if ($this->isInstalled()) { |
23
|
|
|
$this->hook(Controller::class, [ |
24
|
|
|
['filterProfileId', 'site-reviews/assigned_users/profile_id', 5], |
25
|
|
|
]); |
26
|
|
|
$this->hook(DirectoryController::class, [ |
27
|
|
|
['registerProfileRatingShortcode', 'ppress_register_profile_shortcode'], |
28
|
|
|
]); |
29
|
|
|
} |
30
|
|
|
if ($this->isEnabled()) { |
31
|
|
|
$this->hook(AccountController::class, [ |
32
|
|
|
['filterAccountTabs', 'ppress_myaccount_tabs'], |
33
|
|
|
]); |
34
|
|
|
$this->hook(DirectoryController::class, [ |
35
|
|
|
['filterAvailableShortcodes', 'ppress_user_profile_available_shortcodes'], |
36
|
|
|
['filterInlineStyles', 'site-reviews/enqueue/public/inline-styles'], |
37
|
|
|
['filterMemberDirectoryArgs', 'ppress_member_directory_wp_user_args'], |
38
|
|
|
['filterMemberDirectoryTheme', 'ppress_register_dnd_form_class', 10, 3], |
39
|
|
|
['filterMetaBoxSettings', 'ppress_form_builder_meta_box_settings'], |
40
|
|
|
['insertPreviewCss', 'wp_ajax_pp-builder-preview', 5], |
41
|
|
|
['registerProfileBuilderField', 'admin_init'], |
42
|
|
|
]); |
43
|
|
|
$this->hook(ProfileController::class, [ |
44
|
|
|
['filterInlineScript', 'site-reviews/enqueue/public/inline-script/after'], |
45
|
|
|
['filterInlineStyles', 'site-reviews/enqueue/public/inline-styles'], |
46
|
|
|
['filterProfileTabs', 'ppress_profile_tabs'], |
47
|
|
|
['filterSavedTabs', 'ppress_dpf_saved_tabs'], |
48
|
|
|
['renderReviewsTab', 'ppress_profile_tab_content_'.ProfileController::REVIEWS_TAB], |
49
|
|
|
]); |
50
|
|
|
} |
51
|
|
|
} |
52
|
|
|
|
53
|
|
|
protected function isEnabled(): bool |
54
|
|
|
{ |
55
|
|
|
return $this->isInstalled() |
56
|
|
|
&& 'yes' === $this->option('integrations.profilepress.enabled'); |
57
|
|
|
} |
58
|
|
|
|
59
|
|
|
protected function isInstalled(): bool |
60
|
|
|
{ |
61
|
|
|
return function_exists('ppress_get_frontend_profile_url') |
62
|
|
|
&& function_exists('ppress_post_content_has_shortcode') |
63
|
|
|
&& function_exists('ppress_var_obj') |
64
|
|
|
&& defined('PPRESS_VERSION_NUMBER'); |
65
|
|
|
} |
66
|
|
|
} |
67
|
|
|
|