PluginProbe
Booktics – Appointment Booking Calendar for Service Businesses / 1.0.27
Booktics – Appointment Booking Calendar for Service Businesses v1.0.27
1.0.29 1.0.28 1.0.27 1.0.26 1.0.25 1.0.24 1.0.23 1.0.22 1.0.21 1.0.20 1.0.19 trunk 1.0.0 1.0.1 1.0.10 1.0.11 1.0.12 1.0.13 1.0.14 1.0.15 1.0.16 1.0.17 1.0.18 1.0.2 1.0.3 All 31 releases
← All changes | vendor/arraytics/plugin-notice-sdk/src/Notice.php +69 -1 1.0.16 → 1.0.27 View file →
@@ -145,11 +145,79 @@
145 145 * @return void
146 146 */
147 147 public static function init()
148 148 {
149 + static $initialized = false;
150 +
151 + // Prevent multiple initializations
152 + if ( $initialized ) {
153 + return;
154 + }
155 +
149 156 add_action('wp_ajax_wpmet-notices', [__CLASS__, 'dismiss_ajax_call']);
157 + add_action( 'admin_head', [ __CLASS__, 'enqueue_scripts' ] );
158 +
159 + $initialized = true;
150 160 }
161 +
162 + /**
163 + * Enqueue comparison scripts and styles
164 + *
165 + * @return void
166 + */
167 + public static function enqueue_scripts()
168 + {
169 + ?>
170 + <script>
171 + jQuery(document).ready(function ($) {
172 + $( '.wpmet-notice.is-dismissible' ).on( 'click', '.notice-dismiss', function() {
173 + var _this = $( this ).parents('.wpmet-notice').eq(0);
174 + var notice_id = _this.attr( 'id' ) || '';
175 + var expired_time = _this.attr( 'expired_time' ) || '';
176 + var dismissible = _this.attr( 'dismissible' ) || '';
177 + var nonce = '<?php echo wp_create_nonce( 'wpmet-notices' ); ?>';
151 178
179 + _this.hide();
180 +
181 + $.ajax({
182 + url: ajaxurl,
183 + type: 'POST',
184 + data: {
185 + action: 'wpmet-notices',
186 + notice_id: notice_id,
187 + dismissible: dismissible,
188 + expired_time: expired_time,
189 + nonce: nonce
190 + },
191 + });
192 + });
193 + });
194 + </script>
195 + <style>
196 + .wpmet-notice { margin-bottom: 15px; padding: 0 !important; display: flex; align-items: center; }
197 + .wpmet-notice .notice-right-container { margin: .7rem .8rem .8rem; }
198 + .notice-container-full-width { width: 100% !important; }
199 +
200 + .wpmet-notice.no-gutter { padding: 0 !important; border-width: 0 !important; }
201 + .wpmet-notice.no-gutter .notice-right-container { padding: 0 !important; margin: 0 !important; }
202 +
203 + .notice-right-container .notice-vert-space { margin-bottom: .8rem; }
204 + .notice-right-container .notice-vert-space:last-child,
205 + .notice-right-container .notice-vert-space:only-child { margin-bottom: 0; }
206 +
207 + .wpmet-notice .notice-logo { padding: 3px; max-width: 110px; max-height: 110px; }
208 + .wpmet-notice .plugin-notice-href img { max-width: 100%; height: auto; }
209 +
210 + .wpmet-notice-button { text-decoration: none; }
211 + .wpmet-notice-button > i { margin-right: 3px; }
212 + .wpmet-notice-button .notice-icon { display: inline-block; }
213 + .wpmet-notice-button .notice-icon:before { vertical-align: middle !important; margin-top: -1px; }
214 +
215 + .wpmet-notice .notice-main-title { color: #1d2327; font-size: 1.2rem; }
216 + </style>
217 + <?php
218 + }
219 +
152 220 /**
153 221 * Configure basic properties of the notice.
154 222 *
155 223 * @param string $text_domain
@@ -363,9 +431,9 @@
363 431 {
364 432 ?>
365 433 <div
366 434 id="<?php echo esc_attr($this->notice_id); ?>"
367 - class="notice wpmet-notice notice-<?php echo esc_attr( $this->notice_id . ' ' . $this->class ); ?> <?php echo esc_attr( $this->dismissible === false ? '' : 'is-dismissible' ); ?>"
435 + class="notice wpmet-notice notice-<?php echo esc_attr($this->notice_id . ' ' . $this->class); ?> <?php echo $this->dismissible === false ? '' : 'is-dismissible'; ?>"
368 436 expired_time="<?php echo esc_attr($this->expired_time); ?>"
369 437 dismissible="<?php echo esc_attr($this->dismissible); ?>"
370 438 >
371 439 <?php if (!empty($this->logo)) : ?>