PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.0.0
GiveWP – Donation Plugin and Fundraising Platform v4.0.0
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 / Models / CampaignPage.php
give / src / Campaigns / Models Last commit date
Campaign.php 1 year ago CampaignPage.php 1 year ago
CampaignPage.php
119 lines
1 <?php
2
3 namespace Give\Campaigns\Models;
4
5 use DateTime;
6 use Give\Campaigns\Repositories\CampaignPageRepository;
7 use Give\Campaigns\ValueObjects\CampaignPageStatus;
8 use Give\Framework\Models\Contracts\ModelCrud;
9 use Give\Framework\Models\Model;
10 use Give\Framework\Models\ModelQueryBuilder;
11 use Give\Framework\Models\ValueObjects\Relationship;
12 use Give\Framework\Support\Facades\DateTime\Temporal;
13
14 /**
15 * @since 4.0.0
16 *
17 * @property int $id
18 * @property int $campaignId
19 * @property DateTime $createdAt
20 * @property DateTime $updatedAt
21 * @property CampaignPageStatus $status
22 */
23 class CampaignPage extends Model implements ModelCrud
24 {
25 public $properties = [
26 'id' => 'int',
27 'campaignId' => 'int',
28 'createdAt' => DateTime::class,
29 'updatedAt' => DateTime::class,
30 'status' => CampaignPageStatus::class,
31 ];
32
33 public $relationships = [
34 'campaign' => Relationship::BELONGS_TO,
35 ];
36
37 /**
38 * @since 4.0.0
39 */
40 public function getEditLinkUrl(): string
41 {
42 // By default, the URL is encoded for display purposes.
43 // Setting any other value prevents encoding the URL.
44 return get_edit_post_link($this->id, 'redirect');
45 }
46
47 /**
48 * @since 4.0.0
49 */
50 public function campaign(): ?Campaign
51 {
52 return Campaign::find($this->campaignId);
53 }
54
55 /**
56 * @since 4.0.0
57 */
58 public static function find($id): ?CampaignPage
59 {
60 return give(CampaignPageRepository::class)->getById($id);
61 }
62
63 /**
64 * @since 4.0.0
65 */
66 public static function create(array $attributes): CampaignPage
67 {
68 $campaignPage = new static($attributes);
69
70 give(CampaignPageRepository::class)->insert($campaignPage);
71
72 return $campaignPage;
73 }
74
75 /**
76 * @since 4.0.0
77 */
78 public function save(): void
79 {
80 if (!$this->id) {
81 give(CampaignPageRepository::class)->insert($this);
82 } else {
83 give(CampaignPageRepository::class)->update($this);
84 }
85 }
86
87 /**
88 * @since 4.0.0
89 */
90 public function delete(): bool
91 {
92 return give(CampaignPageRepository::class)->delete($this);
93 }
94
95 /**
96 * @since 4.0.0
97 *
98 * @return ModelQueryBuilder<CampaignPage>
99 */
100 public static function query(): ModelQueryBuilder
101 {
102 return give(CampaignPageRepository::class)->prepareQuery();
103 }
104
105 /**
106 * @since 4.0.0
107 */
108 public static function fromQueryBuilderObject($object): CampaignPage
109 {
110 return new CampaignPage([
111 'id' => (int) $object->id,
112 'campaignId' => (int) $object->campaignId,
113 'createdAt' => Temporal::toDateTime($object->createdAt),
114 'updatedAt' => Temporal::toDateTime($object->updatedAt),
115 'status' => new CampaignPageStatus($object->status),
116 ]);
117 }
118 }
119