PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.13.1
GiveWP – Donation Plugin and Fundraising Platform v4.13.1
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 CacheCampaignData.php 7 months ago ConvertQueryDataToCampaign.php 1 year ago CreateCampaignPage.php 1 year ago CreateDefaultCampaignForm.php 1 year ago CreateDefaultLayoutForCampaignPage.php 1 year ago DuplicateCampaign.php 7 months ago EnqueueCampaignPageEditorAssets.php 1 year ago FormInheritsCampaignGoal.php 1 year ago LoadCampaignAdminOptions.php 11 months ago LoadCampaignDetailsAssets.php 1 year ago LoadCampaignPublicOptions.php 11 months ago LoadCampaignsListTableAssets.php 11 months ago PreventDeleteDefaultForm.php 1 year ago RedirectLegacyCreateFormToCreateCampaign.php 1 year ago RegisterCampaignBlocks.php 11 months ago RegisterCampaignIdRestField.php 1 year ago RegisterCampaignShortcodes.php 10 months ago RenderDonateButton.php 9 months 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