PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / trunk
GiveWP – Donation Plugin and Fundraising Platform vtrunk
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 / FormBuilder / FormBuilderRouteBuilder.php
give / src / FormBuilder Last commit date
Actions 1 year ago BlockModels 2 years ago BlockTypes 1 year ago Controllers 1 year ago DataTransferObjects 2 years ago EmailPreview 5 months ago Routes 4 months ago ValueObjects 2 years ago ViewModels 5 months ago resources 4 months ago FormBuilderRouteBuilder.php 1 year ago ServiceProvider.php 1 year ago
FormBuilderRouteBuilder.php
106 lines
1 <?php
2
3 namespace Give\FormBuilder;
4
5 use Give\Campaigns\ValueObjects\CampaignType;
6 use Give\Framework\Database\DB;
7 use Give\Helpers\Language;
8
9 class FormBuilderRouteBuilder
10 {
11 const SLUG = 'givewp-form-builder';
12
13 /**
14 * @var int|string
15 */
16 protected $donationFormID;
17
18 /**
19 * @var string
20 */
21 protected $locale;
22
23 /**
24 * @since 3.22.0 Add locale support
25 * @since 3.0.0
26 *
27 * @param int|string $donationFormID
28 */
29 protected function __construct($donationFormID, string $locale = '')
30 {
31 $this->donationFormID = $donationFormID;
32 $this->locale = ! empty($locale) ? $locale : Language::getLocale();
33 }
34
35 /**
36 * @since 3.22.0 Add locale support
37 * @since 3.0.0
38 */
39 public static function makeCreateFormRoute(string $locale = ''): self
40 {
41 // @todo Refactor create route so as not to mix types for $donationFormID.
42 return new self('new', $locale);
43 }
44
45 /**
46 * @since 3.22.0 Add locale support
47 * @since 3.0.0
48 */
49 public static function makeEditFormRoute(int $donationFormID, string $locale = ''): self
50 {
51 return new self($donationFormID, $locale);
52 }
53
54 /**
55 * @since 3.0.0
56 */
57 public function __toString()
58 {
59 return $this->getUrl();
60 }
61
62 /**
63 * @since 4.0.0 add p2p param
64 * @since 3.22.0 Add locale support
65 * @since 3.0.0
66 */
67 public function getUrl(): string
68 {
69 $queryArgs = [
70 'post_type' => 'give_forms',
71 'page' => self::SLUG,
72 'donationFormID' => $this->donationFormID,
73 'locale' => $this->locale,
74 ];
75
76 if (isset($_GET['campaignId'])) {
77 $queryArgs['campaignId'] = $_GET['campaignId'];
78 }
79
80 // Check if it's P2P form
81 $form = DB::table('give_campaigns')
82 ->where('form_id', $this->donationFormID)
83 ->where('campaign_type', CampaignType::CORE, '!=')
84 ->get();
85
86 if ($form) {
87 $queryArgs['p2p'] = true;
88 }
89
90 return add_query_arg(
91 [
92 $queryArgs,
93 ],
94 admin_url('edit.php')
95 );
96 }
97
98 /**
99 * @since 3.0.0
100 */
101 public static function isRoute(): bool
102 {
103 return isset($_GET['post_type'], $_GET['page']) && $_GET['post_type'] === 'give_forms' && $_GET['page'] === self::SLUG;
104 }
105 }
106