PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / trunk
GiveWP – Donation Plugin and Fundraising Platform vtrunk
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 / Promotions / BFCM / BFCM2025.php
give / src / Promotions / BFCM Last commit date
resources 8 months ago BFCM2025.php 8 months ago
BFCM2025.php
96 lines
1 <?php
2
3 namespace Give\Promotions\BFCM;
4
5 use DateTimeImmutable;
6 use Give\Framework\Views\View;
7 use Give\Vendors\StellarWP\AdminNotices\AdminNotice;
8 use Give\Vendors\StellarWP\AdminNotices\AdminNotices;
9 use Give\Vendors\StellarWP\AdminNotices\DataTransferObjects\NoticeElementProperties;
10
11 /**
12 * @since 4.11.0
13 */
14 class BFCM2025
15 {
16 /**
17 * @var string
18 */
19 public $id = 'givewp-bfcm-2025';
20
21 /**
22 * @var string
23 */
24 private const START_DATE = '2025-11-24 00:00:00';
25
26 /**
27 * @var string
28 */
29 private const END_DATE = '2025-12-02 23:59:59';
30
31 /**
32 * @since 4.11.0
33 */
34 public function __invoke()
35 {
36 $this->render();
37 }
38
39 /**
40 * @since 4.11.0
41 */
42 public function render()
43 {
44 [$start, $end] = $this->getDateRange();
45
46 AdminNotices::show($this->id, [$this, 'renderCallback'])
47 ->custom()
48 ->location('inline')
49 ->enqueueStylesheet(GIVE_PLUGIN_URL . 'build/bfcm2025.css', [], '1.0.0')
50 ->enqueueScript(GIVE_PLUGIN_URL . 'build/bfcm2025.js', [], '1.0.0')
51 ->between($start, $end)
52 ->on('give-campaigns')
53 ->on('give-donors')
54 ->on('give-payment-history')
55 ->on('give-settings')
56 ->on('give-add-ons')
57 ->on('give-reports');
58 }
59
60 /**
61 * @since 4.11.0
62 */
63 private function getDateRange(): array
64 {
65 $timezone = wp_timezone();
66
67 return [
68 new DateTimeImmutable(self::START_DATE, $timezone),
69 new DateTimeImmutable(self::END_DATE, $timezone),
70 ];
71 }
72
73 /**
74 * @since 4.11.0
75 */
76 public function renderCallback(AdminNotice $notice, NoticeElementProperties $elements): string
77 {
78 $backgroundLarge = GIVE_PLUGIN_URL . 'build/assets/dist/images/admin/promotions/bfcm-banner/2025/bfcm-background-lg.svg';
79 $backgroundMedium = GIVE_PLUGIN_URL . 'build/assets/dist/images/admin/promotions/bfcm-banner/2025/bfcm-background-md.svg';
80 $backgroundSmall = GIVE_PLUGIN_URL . 'build/assets/dist/images/admin/promotions/bfcm-banner/2025/bfcm-background-sm.svg';
81 $cartIcon = GIVE_PLUGIN_URL . 'build/assets/dist/images/admin/promotions/bfcm-banner/2025/bfcm-cart-icon.svg';
82
83 return View::load(
84 'Promotions.BFCM2025',
85 [
86 'elements' => $elements,
87 'backgroundLarge' => $backgroundLarge,
88 'backgroundMedium' => $backgroundMedium,
89 'backgroundSmall' => $backgroundSmall,
90 'cartIcon' => $cartIcon,
91 ],
92 false
93 );
94 }
95 }
96