PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.20.0
GiveWP – Donation Plugin and Fundraising Platform v2.20.0
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 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / src / Promotions / FreeAddonModal / Controllers / CompleteRestApiEndpoint.php
give / src / Promotions / FreeAddonModal / Controllers Last commit date
CheckOfferStatus.php 4 years ago CompleteRestApiEndpoint.php 4 years ago DisplaySettingsButton.php 4 years ago EnqueueModal.php 4 years ago PreventFreshInstallPromotion.php 4 years ago
CompleteRestApiEndpoint.php
63 lines
1 <?php
2
3 namespace Give\Promotions\FreeAddonModal\Controllers;
4
5 use WP_REST_Request;
6 use WP_REST_Response;
7 use WP_REST_Server;
8
9 class CompleteRestApiEndpoint
10 {
11 use CheckOfferStatus;
12
13 public function __invoke()
14 {
15 if ( ! $this->displayModal()) {
16 return;
17 }
18
19 register_rest_route('give/v1', '/promotions/free-addon-modal/complete', [
20 'methods' => WP_REST_Server::EDITABLE,
21 'callback' => [$this, 'handleModalCompletion'],
22 'permission_callback' => function () {
23 return current_user_can('manage_options');
24 },
25 'args' => [
26 'reason' => [
27 'required' => true,
28 'type' => 'string',
29 'enum' => ['subscribed', 'rejected'],
30 ],
31 ],
32
33 ]);
34 }
35
36 public function handleModalCompletion(WP_REST_Request $request)
37 {
38 $reason = $request['reason'];
39 $iteration = 1;
40
41 if ( 'rejected' === $reason ) {
42 // If the user has rejected the modal before, increase the iteration.
43 $status = get_option('give_free_addon_modal_displayed');
44
45 if ( !empty($status) ) {
46 // The value will be something like rejected:1:1.18.0. The first number is the number of versions the modal has appeared
47 // in, and the second number is the version number of the plugin at the time of last display.
48 list($status, $iteration, $version) = explode(':', $status);
49
50 $iteration++;
51 }
52 }
53
54 update_option('give_free_addon_modal_displayed', implode(':', [
55 $request['reason'],
56 $iteration,
57 GIVE_VERSION,
58 ]));
59
60 return new WP_REST_Response(['success' => true]);
61 }
62 }
63