PluginProbe
VikBooking Hotel Booking Engine & PMS / trunk
VikBooking Hotel Booking Engine & PMS vtrunk
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 1.7.3 All 36 releases
vikbooking / admin / helpers / src / notification / data / reminder.php

reminder.php in VikBooking Hotel Booking Engine & PMS trunk, at admin/helpers/src/notification/data/reminder.php

101 lines 2.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
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 }
101