PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.16.2
GiveWP – Donation Plugin and Fundraising Platform v4.16.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 / ThirdPartySupport / Elementor / Traits / HasCampaignOptions.php
give / src / ThirdPartySupport / Elementor / Traits Last commit date
HasCampaignOptions.php 10 months ago HasFormOptions.php 10 months ago
HasCampaignOptions.php
66 lines
1 <?php
2
3 namespace Give\ThirdPartySupport\Elementor\Traits;
4
5 use Exception;
6 use Give\Campaigns\Repositories\CampaignRepository;
7 use Give\Log\Log;
8 use Give\Campaigns\ValueObjects\CampaignPageMetaKeys;
9
10 /**
11 * Trait to get campaign options for Elementor widgets
12 *
13 * @since 4.7.0
14 */
15 trait HasCampaignOptions
16 {
17 /**
18 * Get the default campaign option
19 *
20 * @since 4.7.0
21 */
22 public function getDefaultCampaignOption(array $options): string
23 {
24 $default = !empty($options) ? array_key_first($options) : '';
25
26
27 $campaignId = get_post_meta(get_the_ID(), CampaignPageMetaKeys::CAMPAIGN_ID, true);
28
29 if (!$campaignId) {
30 return $default;
31 }
32
33 return array_key_exists($campaignId, $options) ? $campaignId : $default;
34 }
35 /**
36 * Get campaign options for select dropdown
37 *
38 * @since 4.7.0
39 */
40 public function getCampaignOptions(): array
41 {
42 try {
43 $campaignRepository = give(CampaignRepository::class);
44 $campaigns = $campaignRepository->prepareQuery()
45 ->where('status', 'active')
46 ->orderBy('campaign_title', 'ASC')
47 ->getAll();
48
49 if (empty($campaigns)) {
50 return [];
51 }
52
53 $options = [];
54 foreach ($campaigns as $campaign) {
55 $options[$campaign->id] = $campaign->title;
56 }
57
58 return $options;
59 } catch (Exception $e) {
60 Log::error('Elementor Campaign Options Error: ' . $e->getMessage());
61
62 return [];
63 }
64 }
65 }
66