1
|
|
|
<?php |
2
|
|
|
|
3
|
|
|
namespace GeminiLabs\SiteReviews\Integrations\SureCart; |
4
|
|
|
|
5
|
|
|
use GeminiLabs\SiteReviews\Integrations\IntegrationHooks; |
6
|
|
|
use GeminiLabs\SiteReviews\Integrations\SureCart\Controllers\Controller; |
7
|
|
|
use GeminiLabs\SiteReviews\Integrations\SureCart\Controllers\ProductController; |
8
|
|
|
use GeminiLabs\SiteReviews\Integrations\SureCart\Controllers\RestController; |
9
|
|
|
|
10
|
|
|
class Hooks extends IntegrationHooks |
11
|
|
|
{ |
12
|
|
|
public function run(): void |
13
|
|
|
{ |
14
|
|
|
$this->hook(RestController::class, [ |
15
|
|
|
['filterRestApiSummaryArgs', 'site-reviews/rest-api/summary/args', 10, 2], |
16
|
|
|
]); |
17
|
|
|
$this->hook(Controller::class, [ |
18
|
|
|
['filterSettings', 'site-reviews/settings'], |
19
|
|
|
['filterSettingsCallback', 'site-reviews/settings/sanitize', 10, 2], |
20
|
|
|
['filterSubsubsub', 'site-reviews/integration/subsubsub'], |
21
|
|
|
['renderNotice', 'admin_init'], |
22
|
|
|
['renderSettings', 'site-reviews/settings/surecart'], |
23
|
|
|
]); |
24
|
|
|
if ($this->isEnabled()) { |
25
|
|
|
$this->hook(ProductController::class, [ |
26
|
|
|
['filterAssignedPostsPostId', 'render_block_core/shortcode', 10, 3], |
27
|
|
|
['filterBlockRenderCallback', 'block_type_metadata_settings', 15, 2], |
28
|
|
|
['filterReviewAuthorTagValue', 'site-reviews/review/value/author', 10, 2], |
29
|
|
|
['filterReviewCallbackHasProductOwner', 'site-reviews/review/call/hasProductOwner'], |
30
|
|
|
['filterReviewFormBuild', 'site-reviews/build/template/reviews-form', 10, 2], |
31
|
|
|
['parseProductQuery', 'parse_query'], |
32
|
|
|
// ['registerBlockPatterns', 'init'], |
33
|
|
|
['registerBlocks', 'init', 11], |
34
|
|
|
['registerProductAttributes', 'surecart/product/attributes_set'], |
35
|
|
|
['verifyProductOwner', 'site-reviews/review/created', 20], |
36
|
|
|
]); |
37
|
|
|
$this->hook(RestController::class, [ |
38
|
|
|
['filterProductModel', 'surecart/request/model', 10, 2], |
39
|
|
|
['filterProductsRequest', 'rest_products_request'], |
40
|
|
|
['filterRestApiSummaryArgs', 'site-reviews/rest-api/summary/args', 10, 2], |
41
|
|
|
]); |
42
|
|
|
} |
43
|
|
|
} |
44
|
|
|
|
45
|
|
|
protected function isEnabled(): bool |
46
|
|
|
{ |
47
|
|
|
return $this->isInstalled() |
48
|
|
|
&& 'yes' === $this->option('integrations.surecart.enabled'); |
49
|
|
|
} |
50
|
|
|
|
51
|
|
|
protected function isInstalled(): bool |
52
|
|
|
{ |
53
|
|
|
return class_exists('SureCart'); |
54
|
|
|
} |
55
|
|
|
} |
56
|
|
|
|