PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.3.2
GiveWP – Donation Plugin and Fundraising Platform v4.3.2
4.16.3 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 / Campaigns / Actions / RedirectLegacyCreateFormToCreateCampaign.php
give / src / Campaigns / Actions Last commit date
AddCampaignFormFromRequest.php 1 year ago AddNewBadgeToAdminMenuItem.php 1 year ago ArchiveCampaignFormsAsDraftStatus.php 1 year ago ArchiveCampaignPagesAsDraftStatus.php 1 year ago AssignDuplicatedFormToCampaign.php 1 year ago AssociateCampaignPageWithCampaign.php 1 year ago ConvertQueryDataToCampaign.php 1 year ago CreateCampaignPage.php 1 year ago CreateDefaultCampaignForm.php 1 year ago CreateDefaultLayoutForCampaignPage.php 1 year ago EnqueueCampaignPageEditorAssets.php 1 year ago FormInheritsCampaignGoal.php 1 year ago LoadCampaignDetailsAssets.php 1 year ago LoadCampaignOptions.php 1 year ago LoadCampaignsListTableAssets.php 1 year ago PreventDeleteDefaultForm.php 1 year ago RedirectLegacyCreateFormToCreateCampaign.php 1 year ago RegisterCampaignBlocks.php 1 year ago RegisterCampaignEntity.php 1 year ago RegisterCampaignIdRestField.php 1 year ago RegisterCampaignShortcodes.php 1 year ago RenderDonateButton.php 1 year ago ReplaceGiveFormsCptLabels.php 1 year ago UnarchiveCampaignFormAsPublishStatus.php 1 year ago
RedirectLegacyCreateFormToCreateCampaign.php
114 lines
1 <?php
2
3 namespace Give\Campaigns\Actions;
4
5 use Give\Campaigns\Models\Campaign;
6 use Give\Campaigns\ValueObjects\CampaignType;
7 use Give\Framework\Database\DB;
8
9 /**
10 * @since 4.0.0
11 */
12 class RedirectLegacyCreateFormToCreateCampaign
13 {
14 /**
15 * @since 4.0.0
16 */
17 public function __invoke()
18 {
19 if ($this->isAddingNewForm()) {
20 if ($this->isCampaignIdInvalidOrMissing()) {
21 $this->redirectToNewCampaignPage();
22 }
23
24 return;
25 }
26
27 if ($this->isEditingCampaignForm()) {
28 if ($this->isP2P()) {
29 if ($this->isP2PCampaignFormIdInvalidOrMissing()) {
30 $this->redirectToP2PNewCampaignPage();
31 }
32 } elseif ($this->isCampaignFormIdInvalidOrMissing()) {
33 $this->redirectToNewCampaignPage();
34 }
35 }
36 }
37
38 /**
39 * @since 4.0.0
40 */
41 private function isAddingNewForm(): bool
42 {
43 return $GLOBALS['pagenow'] === 'post-new.php'
44 && isset($_GET['post_type'])
45 && $_GET['post_type'] === 'give_forms';
46 }
47
48 /**
49 * @since 4.0.0
50 */
51 private function isEditingCampaignForm(): bool
52 {
53 return $GLOBALS['pagenow'] === 'edit.php'
54 && isset($_GET['post_type'])
55 && $_GET['post_type'] === 'give_forms'
56 && isset($_GET['page']) && $_GET['page'] === 'givewp-form-builder';
57 }
58
59 /**
60 * @since 4.0.0
61 */
62 private function isP2P(): bool
63 {
64 return isset($_GET['p2p']);
65 }
66
67 /**
68 * @since 4.0.0
69 */
70 private function redirectToNewCampaignPage(): void
71 {
72 wp_safe_redirect(admin_url('edit.php?post_type=give_forms&page=give-campaigns&new=campaign'));
73 exit;
74 }
75
76 /**
77 * @since 4.0.0
78 */
79 private function redirectToP2PNewCampaignPage(): void
80 {
81 wp_safe_redirect(admin_url('edit.php?post_type=give_forms&page=p2p-add-campaign'));
82 exit;
83 }
84
85 /**
86 * @since 4.0.0
87 */
88 private function isCampaignIdInvalidOrMissing(): bool
89 {
90 return ! isset($_GET['campaignId']) || ! (Campaign::find(absint($_GET['campaignId'])));
91 }
92
93 /**
94 * @since 4.0.0
95 */
96 private function isP2PCampaignFormIdInvalidOrMissing(): bool
97 {
98 $form = DB::table('give_campaigns')
99 ->where('form_id', $_GET['donationFormID'])
100 ->where('campaign_type', CampaignType::CORE, '!=')
101 ->get();
102
103 return ! isset($_GET['donationFormID']) || ! $form;
104 }
105
106 /**
107 * @since 4.0.0
108 */
109 private function isCampaignFormIdInvalidOrMissing(): bool
110 {
111 return ! isset($_GET['donationFormID']) || ! Campaign::findByFormId(absint($_GET['donationFormID']));
112 }
113 }
114