PluginProbe
VikBooking Hotel Booking Engine & PMS / 1.8.16
VikBooking Hotel Booking Engine & PMS v1.8.16
1.8.16 1.8.15 1.8.14 1.8.13 1.8.12 1.8.11 1.8.10 1.8.9 1.8.6 1.8.7 1.8.8 trunk 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 1.7.0 1.7.1 1.7.2 All 37 releases
← All changes | admin/helpers/src/notification/data/reminder.php +100 -0 1.6.3 → 1.8.16 View file →
@@ -1,0 +1,100 @@
1 +<?php
2 +/**
3 + * @package VikBooking
4 + * @subpackage core
5 + * @author Alessio Gaggii - E4J s.r.l.
6 + * @copyright Copyright (C) 2022 E4J s.r.l. All Rights Reserved.
7 + * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
8 + * @link https://vikwp.com
9 + */
10 +
11 +// No direct access
12 +defined('ABSPATH') or die('No script kiddies please!');
13 +
14 +/**
15 + * Builds a browser notification data object for a reminder.
16 + *
17 + * @since 1.15.0 (J) - 1.5.0 (WP)
18 + */
19 +final class VBONotificationDataReminder extends VBONotificationAdapter
20 +{
21 + /**
22 + * The type of the scheduled notification.
23 + *
24 + * @var string
25 + */
26 + protected $_notification_type = 'reminder';
27 +
28 + /**
29 + * Gets the reminder ID.
30 + *
31 + * @return int the reminder record ID.
32 + */
33 + public function getReminderId()
34 + {
35 + return (int)$this->get('id', 0);
36 + }
37 +
38 + /**
39 + * Sets a "non-reserved" (public) object property for the reminder ID.
40 + *
41 + * @param int $id the reminder record ID.
42 + *
43 + * @return self
44 + */
45 + public function setReminderId($id)
46 + {
47 + $this->set('id', (int)$id);
48 +
49 + return $this;
50 + }
51 +
52 + /**
53 + * Checks whether some reminder object properties should be adjusted
54 + * in case of an important reminder not yet displayed, but expired.
55 + * This is helpful in order to allow the dispatching of the notification.
56 + *
57 + * @param object $reminder the reminder object to parse.
58 + *
59 + * @return void
60 + *
61 + * @since 1.16.5 (J) - 1.6.5 (WP)
62 + */
63 + public function parseReminderImportance($reminder)
64 + {
65 + if (!is_object($reminder) || empty($reminder->important) || $reminder->displayed) {
66 + return;
67 + }
68 +
69 + if (is_string($reminder->duedate) && strcasecmp($reminder->duedate, 'now')) {
70 + // must be a date string
71 + if (strtotime($reminder->duedate) < time()) {
72 + // let the reminder be dispatched immediately
73 + $reminder->duedate = 'now';
74 + return;
75 + }
76 + } elseif (($reminder->duedate instanceof DateTime) && $dtime->getTimestamp() < time()) {
77 + // let the reminder be dispatched immediately
78 + $reminder->duedate = 'now';
79 + return;
80 + }
81 + }
82 +
83 + /**
84 + * Returns the URL to build the notification display data.
85 + * Method is declared as protected.
86 + * Checks if the reminder exists and returns the default build URL.
87 + *
88 + * @return null|string the url to build the notification display data.
89 + */
90 + protected function generateBuildUrl()
91 + {
92 + $reminder_id = $this->getReminderId();
93 +
94 + if (empty($reminder_id)) {
95 + return null;
96 + }
97 +
98 + return VikBooking::ajaxUrl($this->_notif_display_url);
99 + }
100 +}