1
|
|
|
<?php |
2
|
|
|
|
3
|
|
|
namespace GeminiLabs\SiteReviews\Integrations\GamiPress; |
4
|
|
|
|
5
|
|
|
use GeminiLabs\SiteReviews\Integrations\IntegrationHooks; |
6
|
|
|
|
7
|
|
|
class Hooks extends IntegrationHooks |
8
|
|
|
{ |
9
|
|
|
public function run(): void |
10
|
|
|
{ |
11
|
|
|
if (!$this->isInstalled()) { |
12
|
|
|
return; |
13
|
|
|
} |
14
|
|
|
if (!$this->isVersionSupported()) { |
15
|
|
|
$this->notify('GamiPress'); |
16
|
|
|
return; |
17
|
|
|
} |
18
|
|
|
$this->hook(Controller::class, [ |
19
|
|
|
['ajaxFetchUsers', 'wp_ajax_site_reviews_gamipress/users'], |
20
|
|
|
['enqueueAdminAssets', 'admin_enqueue_scripts'], |
21
|
|
|
['filterActivityTriggerLabel', 'gamipress_activity_trigger_label', 10, 3], |
22
|
|
|
['filterActivityTriggers', 'gamipress_activity_triggers'], |
23
|
|
|
['filterLogEventMetaData', 'gamipress_log_event_trigger_meta_data', 10, 5], |
24
|
|
|
['filterLogExtraDataFields', 'gamipress_log_extra_data_fields', 10, 2], |
25
|
|
|
['filterPostTypeTriggers', 'gamipress_post_type_triggers'], |
26
|
|
|
['filterRequirement', 'gamipress_requirement_object', 10, 2], |
27
|
|
|
['filterSpecificActivityTriggers', 'gamipress_specific_activity_triggers'], |
28
|
|
|
['filterUserHasAccessToAchievement', 'user_has_access_to_achievement', 10, 6], |
29
|
|
|
['filterUserRoleTriggers', 'gamipress_user_role_triggers'], |
30
|
|
|
['onReviewCreated', 'site-reviews/review/created', 20], |
31
|
|
|
['renderRequirementFields', 'gamipress_requirement_ui_html_after_achievement_post', 10, 2], |
32
|
|
|
['updateRequirement', 'gamipress_ajax_update_requirement', 10, 2], |
33
|
|
|
]); |
34
|
|
|
} |
35
|
|
|
|
36
|
|
|
protected function isInstalled(): bool |
37
|
|
|
{ |
38
|
|
|
return defined('GAMIPRESS_VER') |
39
|
|
|
&& function_exists('ct_get_object_meta') |
40
|
|
|
&& function_exists('gamipress_get_achievement_types_slugs') |
41
|
|
|
&& function_exists('gamipress_get_rank_types_slugs') |
42
|
|
|
&& function_exists('gamipress_get_requirement_types_slugs') |
43
|
|
|
&& function_exists('gamipress_trigger_event'); |
44
|
|
|
} |
45
|
|
|
|
46
|
|
|
protected function supportedVersion(): string |
47
|
|
|
{ |
48
|
|
|
return '7.0'; |
49
|
|
|
} |
50
|
|
|
|
51
|
|
|
protected function version(): string |
52
|
|
|
{ |
53
|
|
|
return defined('GAMIPRESS_VER') |
54
|
|
|
? (string) \GAMIPRESS_VER |
|
|
|
|
55
|
|
|
: ''; |
56
|
|
|
} |
57
|
|
|
} |
58
|
|
|
|