PluginProbe
Post Grid Gutenberg Blocks – PostX / trunk
Post Grid Gutenberg Blocks – PostX vtrunk
5.0.39 5.0.38 5.0.37 5.0.36 5.0.35 5.0.34 5.0.33 5.0.32 5.0.31 5.0.30 5.0.29 5.0.28 5.0.27 5.0.26 5.0.25 5.0.23 5.0.24 5.0.22 5.0.21 5.0.20 5.0.19 5.0.18 5.0.17 2.1.1 2.1.2 All 237 releases
ultimate-post / classes / Initialization.php

Initialization.php in Post Grid Gutenberg Blocks – PostX trunk, at classes/Initialization.php

632 lines 20.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /**
4 * Initialization Action.
5 *
6 * @package ULTP\ULTP_Initialization
7 * @since v.1.1.0
8 */
9
10 namespace ULTP;
11
12 defined( 'ABSPATH' ) || exit;
13
14 use ULTP\Includes\Durbin\Xpo;
15 use ULTP\Includes\Notice\Notice;
16
17 /**
18 * Initialization class.
19 *
20 * Handles plugin initialization for Ultimate Post.
21 *
22 * @package ULTP\Initialization
23 * @since 4.0.0
24 */
25 class ULTP_Initialization {
26
27 /**
28 * Setup class.
29 *
30 * @since 4.0.0
31 * @return void No return value.
32 */
33 public function __construct() {
34
35 $this->compatibility_check();
36 $this->requires();
37 $this->include_addons();
38
39 add_filter( 'admin_body_class', array( $this, 'add_admin_body_class' ) ); // add body class in editor.
40 add_filter( 'body_class', array( $this, 'add_body_class' ) ); // add body class in front end.
41
42 add_action( 'wp', array( $this, 'popular_posts_tracker_callback' ) );
43 add_action( 'after_setup_theme', array( $this, 'add_image_size' ) );
44 add_filter( 'block_categories_all', array( $this, 'register_category_callback' ), 999999999, 2 ); // Block Category Register.
45
46 add_filter( 'safe_style_css', array( $this, 'ultp_handle_safe_style_css' ) ); // support for css used in svg icon.
47 add_filter( 'wp_kses_allowed_html', array( $this, 'ultp_handle_allowed_html' ), 99, 2 ); // support for svg icon used in list, row, icon block.
48
49 add_action( 'enqueue_block_editor_assets', array( $this, 'register_block_scripts_editor_area' ) ); // Only editor.
50 add_action( 'admin_enqueue_scripts', array( $this, 'register_option_panel_scripts_callback' ) ); // Option Panel.
51 register_activation_hook( ULTP_PATH . 'ultimate-post.php', array( $this, 'plugin_activation_hook' ) );
52 add_action( 'activated_plugin', array( $this, 'ultp_plugin_activation' ) ); // Plugin Activation Call.
53 // new Notice();
54 }
55
56 /**
57 * Check plugin compatibility.
58 *
59 * @since v.1.0.0
60 * @return void
61 */
62 public function compatibility_check() {
63 require_once ULTP_PATH . 'classes/Compatibility.php';
64 new \ULTP\Compatibility();
65 }
66
67 /**
68 * Load all required classes.
69 *
70 * @since v.1.0.0
71 * @return void No return value.
72 */
73 public function requires() {
74 require_once ULTP_PATH . 'classes/Styles.php';
75 require_once ULTP_PATH . 'classes/Options.php';
76 require_once ULTP_PATH . 'classes/REST_API.php';
77 require_once ULTP_PATH . 'classes/Caches.php';
78 require_once ULTP_PATH . 'classes/Importer.php';
79 require_once ULTP_PATH . 'classes/Dashboard.php';
80 require_once ULTP_PATH . 'classes/Blocks.php';
81 new \ULTP\REST_API();
82 new \ULTP\Options();
83 new \ULTP\Caches();
84 new \ULTP\Styles();
85 new \ULTP\Importer();
86 new \ULTP\Dashboard();
87 new \ULTP\Blocks();
88
89 require_once ULTP_PATH . 'includes/durbin/class-durbin-client.php';
90 require_once ULTP_PATH . 'includes/durbin/class-xpo.php';
91 require_once ULTP_PATH . 'includes/deactive/class-deactive.php';
92 require_once ULTP_PATH . 'includes/notice/class-notice.php';
93 require_once ULTP_PATH . 'includes/durbin/class-our-plugins.php';
94 require_once ULTP_PATH . 'includes/notice/class-wow-shipping-promotion.php';
95 require_once ULTP_PATH . 'includes/notice/class-wow-revenue-promotion.php';
96 require_once ULTP_PATH . 'includes/notice/class-wow-addons-promotion.php';
97 new \ULTP\Includes\Deactive\Deactive();
98 new \ULTP\Includes\notice\Notice();
99 new \ULTP\Includes\notice\WowShippingPromotion();
100 new \ULTP\Includes\notice\WowRevenuePromotion();
101 new \ULTP\Includes\notice\WowAddonsPromotion();
102 new \ULTP\Includes\Durbin\OurPlugins();
103 }
104
105 /**
106 * Include all addons from the addons directory.
107 *
108 * @since v.1.0.0
109 * @return void
110 */
111 public function include_addons() {
112 $addons_dir = array_filter( glob( ULTP_PATH . 'addons/*' ), 'is_dir' );
113 if ( count( $addons_dir ) > 0 ) {
114 foreach ( $addons_dir as $key => $value ) {
115 $addon_dir_name = str_replace( dirname( $value ) . '/', '', $value );
116 $file_name = ULTP_PATH . 'addons/' . $addon_dir_name . '/init.php';
117 if ( file_exists( $file_name ) ) {
118 include_once $file_name;
119 }
120 }
121 }
122 }
123
124
125 /**
126 * Add admin body class in editor.
127 *
128 * @since v.3.1.6
129 * @param STRING $classes The existing admin body classes.
130 * @return STRING Modified admin body classes.
131 */
132 public function add_admin_body_class( $classes ) {
133 $classes .= ' postx-admin-page ';
134 return $classes;
135 }
136
137 /**
138 * Add body class in front end.
139 *
140 * @since v.3.1.6
141 * @param ARRAY $classes The existing body classes.
142 * @return ARRAY Modified body classes.
143 */
144 public function add_body_class( $classes ) {
145 $classes[] = 'postx-page';
146 return $classes;
147 }
148
149 /**
150 * Post view counter for every post.
151 *
152 * @since v.1.0.0
153 * @param INT $post_id The post ID.
154 * @return NULL No return value.
155 */
156 public function popular_posts_tracker_callback( $post_id ) {
157 if ( ! is_single() ) {
158 return;
159 }
160 global $post;
161 $post_id = isset( $post->ID ) ? $post->ID : '';
162 $isEnable = apply_filters( 'ultp_view_cookies', true );
163 // add_filter( 'ultp_view_cookies', '__return_false' );
164 $cookies_disable = ultimate_post()->get_setting( 'disable_view_cookies' );
165 if ( $post_id && $isEnable && $cookies_disable != 'yes' ) {
166 $has_cookie = isset( $_COOKIE[ 'ultp_view_' . $post_id ] ) ? sanitize_text_field( $_COOKIE[ 'ultp_view_' . $post_id ] ) : false;
167 if ( ! $has_cookie ) {
168 $count = (int) get_post_meta( $post_id, '__post_views_count', true );
169 update_post_meta( $post_id, '__post_views_count', $count ? (int) $count + 1 : 1 );
170 setcookie( 'ultp_view_' . $post_id, 1, time() + 86400, COOKIEPATH ); // 1 days cookies
171 }
172 }
173 }
174
175 /**
176 * Set image sizes for the plugin.
177 *
178 * @since v.1.0.0
179 * @return void No return value.
180 */
181 public function add_image_size() {
182 $size_disable = ultimate_post()->get_setting( 'disable_image_size' );
183 if ( $size_disable != 'yes' ) {
184 add_image_size( 'ultp_layout_landscape_large', 1200, 800, true );
185 add_image_size( 'ultp_layout_landscape', 870, 570, true );
186 add_image_size( 'ultp_layout_portrait', 600, 900, true );
187 add_image_size( 'ultp_layout_square', 600, 600, true );
188 }
189 }
190
191 /**
192 * Block categories initialization.
193 *
194 * @since v.1.0.0
195 * @param ARRAY $categories The block categories.
196 * @param ARRAY $post The post object.
197 * @return ARRAY Modified block categories.
198 */
199 public function register_category_callback( $categories, $post ) {
200 $attr = array(
201 array(
202 'slug' => 'ultimate-post',
203 'title' => __( 'PostX - Gutenberg Post Blocks', 'ultimate-post' ),
204 ),
205 array(
206 'slug' => 'postx-site-builder',
207 'title' => __( 'PostX Site Builder', 'ultimate-post' ),
208 ),
209 );
210 return array_merge( $attr, $categories );
211 }
212
213 /**
214 * Add support for CSS to use SVG.
215 *
216 * @since 4.0.0
217 * @param ARRAY $styles The allowed CSS styles.
218 * @return ARRAY Modified allowed CSS styles.
219 */
220 public function ultp_handle_safe_style_css( $styles ) {
221 if ( ! is_multisite() && ! current_user_can( 'edit_posts' ) ) {
222 return $styles;
223 }
224 return array_merge(
225 $styles,
226 array(
227 'opacity',
228 // for SVG gradients.
229 // 'stop-opacity',
230 // 'stop-color',
231 )
232 );
233 }
234
235 /**
236 * Add support for HTML tags to use SVG.
237 *
238 * @since 4.0.0
239 * @param ARRAY $tags The allowed HTML tags.
240 * @param STRING $context The context for allowed HTML.
241 * @return ARRAY Modified allowed HTML tags.
242 */
243 public function ultp_handle_allowed_html( $tags, $context ) {
244 if ( 'post' !== $context && ! is_multisite() && ! current_user_can( 'edit_posts' ) ) {
245 return $tags;
246 }
247 if ( ! isset( $tags['svg'] ) ) {
248 $tags['svg'] = array_merge(
249 array(
250 'xmlns' => true,
251 // 'xmlns:xlink' => true,
252 // 'xlink:href' => true,
253 // 'xml:id' => true,
254 // 'xlink:title' => true,
255 // 'xml:space' => true,
256 'viewbox' => true,
257 'enable-background' => true,
258 'version' => true,
259 'preserveaspectratio' => true,
260 'fill' => true,
261 )
262 );
263 }
264 if ( ! isset( $tags['path'] ) || ! is_array( $tags['path'] ) ) {
265 $tags['path'] = array();
266 }
267
268 $tags['path'] = array_merge(
269 $tags['path'],
270 array(
271 'd' => true,
272 'stroke' => true,
273 'stroke-miterlimit' => true,
274 'data-original' => true,
275 'class' => true,
276 'transform' => true,
277 'style' => true,
278 'opacity' => true,
279 'fill' => true,
280 'stroke-width' => true,
281 'stroke-linecap' => true,
282 'stroke-linejoin' => true,
283 )
284 );
285
286 if ( ! isset( $tags['g'] ) ) {
287 $tags['g'] = array(
288 'transform' => true,
289 'clip-path' => true,
290 );
291 }
292 if ( ! isset( $tags['clippath'] ) ) {
293 $tags['clippath'] = array();
294 }
295 if ( ! isset( $tags['defs'] ) ) {
296 $tags['defs'] = array();
297 }
298 if ( ! isset( $tags['rect'] ) ) {
299 $tags['rect'] = array(
300 'rx' => true,
301 'height' => true,
302 'width' => true,
303 'transform' => true,
304 'x' => true,
305 'fill' => true,
306 );
307 }
308 if ( ! isset( $tags['circle'] ) ) {
309 $tags['circle'] = array(
310 'cx' => true,
311 'cy' => true,
312 'transform' => true,
313 'r' => true,
314 );
315 }
316 if ( ! isset( $tags['polygon'] ) ) {
317 $tags['polygon'] = array(
318 'points' => true,
319 );
320 }
321 if ( ! isset( $tags['lineargradient'] ) ) {
322 $tags['lineargradient'] = array(
323 'gradienttransform' => true,
324 'id' => true,
325 );
326 }
327 if ( ! isset( $tags['stop'] ) ) {
328 $tags['stop'] = array(
329 'offset' => true,
330 'stop-color' => true,
331 'style' => true,
332 'stop-opacity' => true,
333 );
334 }
335 return $tags;
336 }
337
338 /**
339 * Plugin activation callback.
340 *
341 * @since v.1.1.0
342 * @param STRING $plugin The plugin file path.
343 * @return NULL No return value.
344 */
345 public function ultp_plugin_activation( $plugin ) {
346 if ( wp_doing_ajax() ) {
347 return;
348 }
349 if ( $plugin == 'ultimate-post/ultimate-post.php' ) {
350 if ( wp_doing_ajax() || is_network_admin() || isset( $_GET['activate-multi'] ) || isset( $_POST['action'] ) && 'activate-selected' == $_POST['action'] ) {
351 return;
352 }
353 if ( ultimate_post()->get_setting( 'init_setup' ) != 'yes' ) {
354 ultimate_post()->set_setting( 'init_setup', 'yes' );
355 exit(wp_safe_redirect(admin_url('admin.php?page=ultp-setup-wizard'))); //phpcs:ignore
356 } else {
357 exit(wp_safe_redirect(admin_url('admin.php?page=ultp-settings#home'))); //phpcs:ignore
358 }
359 }
360 }
361
362 /**
363 * Enqueue option panel CSS and JS scripts.
364 *
365 * @since v.1.0.0
366 * @return void No return value.
367 */
368 public function register_option_panel_scripts_callback() {
369 $is_active = ultimate_post()->is_lc_active();
370 $is_expired = Xpo::is_lc_expired();
371
372 $license_key = Xpo::get_lc_key();
373 $_page = isset($_GET['page']) ? sanitize_text_field($_GET['page']) : ''; // @codingStandardsIgnoreLine
374 $post_type = get_post_type();
375 $is_woocommerce_active = class_exists( 'WooCommerce' ) ? true : false;
376
377 wp_enqueue_style( 'wp-color-picker' );
378 wp_enqueue_script( 'wp-color-picker' );
379
380 wp_enqueue_script( 'ultp-option-script', ULTP_URL . 'assets/js/ultp-option.js', array( 'jquery' ), ULTP_VER, true );
381 wp_enqueue_style( 'ultp-option-style', ULTP_URL . 'assets/css/ultp-option.css', array(), ULTP_VER );
382 wp_localize_script(
383 'ultp-option-script',
384 'ultp_option_panel',
385 array(
386 'url' => ULTP_URL,
387 'version' => ULTP_VER,
388 'active' => $is_active,
389 'expierd' => $is_expired,
390 'security' => wp_create_nonce( 'ultp-nonce' ),
391 'ajax' => admin_url( 'admin-ajax.php' ),
392 'settings' => ultimate_post()->get_setting(),
393 'post_type' => $post_type,
394 'saved_template_url' => admin_url( 'admin.php?page=ultp-settings#saved-templates' ),
395 'woocommerce' => $is_woocommerce_active,
396 )
397 );
398
399 if ( $post_type == 'ultp_custom_font' ) {
400 $font_settings = ultimate_post()->get_setting( 'ultp_custom_font' );
401 if ( $font_settings == 'true' ) {
402 wp_enqueue_media();
403 }
404 }
405
406 /* === Installation Wizard === */
407 if ( $_page == 'ultp-setup-wizard' ) {
408 wp_enqueue_script( 'ultp-initial-setup-script', ULTP_URL . 'assets/js/ultp_initial_setup_min.js', array( 'wp-i18n', 'wp-api-fetch', 'wp-api-request' ), ULTP_VER, true );
409 wp_set_script_translations( 'ultp-initial-setup-script', 'ultimate-post', ULTP_PATH . 'languages/' );
410 }
411
412 /* === Builder And Setting Pannel === */
413 if ( get_post_type( get_the_ID() ) == 'ultp_builder' ) {
414 wp_enqueue_script( 'ultp-conditions-script', ULTP_URL . 'addons/builder/assets/js/conditions.js', array( 'wp-i18n', 'wp-api-fetch', 'wp-components', 'wp-i18n', 'wp-blocks' ), ULTP_VER, true );
415 wp_localize_script(
416 'ultp-conditions-script',
417 'ultp_condition',
418 array(
419 'url' => ULTP_URL,
420 'active' => $is_active,
421 'builder_url' => admin_url( 'admin.php?page=ultp-settings#builder' ),
422 )
423 );
424 wp_set_script_translations( 'ultp-conditions-script', 'ultimate-post', ULTP_PATH . 'languages/' );
425 }
426
427 /* === Dashboard === */
428 if ( $_page == 'ultp-settings' ) {
429 wp_enqueue_script( 'ultp-dashboard-script', ULTP_URL . 'assets/js/ultp_dashboard_min.js', array( 'wp-i18n', 'wp-api-fetch', 'wp-api-request', 'wp-components', 'wp-blocks' ), ULTP_VER, true );
430 $user_info = get_userdata( get_current_user_id() );
431 wp_localize_script(
432 'ultp-dashboard-script',
433 'ultp_dashboard_pannel',
434 array_merge(
435 array(
436 'ajax' => admin_url( 'admin-ajax.php' ),
437 'security' => wp_create_nonce( 'ultp-nonce' ),
438 'url' => ULTP_URL,
439 'active' => $is_active,
440 'expierd' => $is_expired,
441 'license' => $license_key,
442 'settings' => ultimate_post()->get_setting(),
443 'addons_settings' => apply_filters( 'ultp_settings', array() ),
444 'builder_url' => admin_url( 'admin.php?page=ultp-settings#builder' ),
445 'version' => ULTP_VER,
446 'setup_wizard_link' => admin_url( 'admin.php?page=ultp-setup-wizard' ),
447 'is_free' => ! $is_active,
448 'user_email' => wp_get_current_user()->user_email,
449 'home_url' => home_url(),
450 'generalDiscount' => get_transient( 'ultp_generalDiscount' ),
451 'helloBar' => Notice::get_hellobar_config(),
452 'userInfo' => array(
453 'name' => $user_info->first_name ? $user_info->first_name . ( $user_info->last_name ? ' ' . $user_info->last_name : '' ) : $user_info->user_login,
454 'email' => $user_info->user_email,
455 ),
456 ),
457 Xpo::get_wow_products_details()
458 )
459 );
460 wp_set_script_translations( 'ultp-dashboard-script', 'ultimate-post', ULTP_PATH . 'languages/' );
461 }
462 }
463
464 /**
465 * Enqueue backend CSS and JS scripts for the block editor.
466 *
467 * @since v.1.0.0
468 * @return void No return value.
469 */
470 public function register_block_scripts_editor_area() {
471 ultimate_post()->register_scripts_common();
472 $is_expired = Xpo::is_lc_expired();
473 global $pagenow;
474 $depends = 'wp-editor';
475 if ( $pagenow === 'widgets.php' ) {
476 $depends = 'wp-edit-widgets';
477 }
478 wp_enqueue_script( 'ultp-blocks-editor-script', ULTP_URL . 'assets/js/editor.blocks.js', array( 'wp-i18n', 'wp-element', 'wp-blocks', 'wp-components', $depends ), ULTP_VER, true );
479 wp_enqueue_style( 'ultp-blocks-editor-css', ULTP_URL . 'assets/css/blocks.editor.css', array(), ULTP_VER );
480 if ( is_rtl() ) {
481 wp_enqueue_style( 'ultp-blocks-editor-rtl-css', ULTP_URL . 'assets/css/rtl.css', array(), ULTP_VER );
482 }
483 $is_active = ultimate_post()->is_lc_active();
484 $post_type = get_post_type();
485
486 // Custom Font Support Added
487 $font_settings = ultimate_post()->get_setting( 'ultp_custom_font' );
488 $custom_fonts = array();
489 if ( $font_settings == 'true' ) {
490 $args = array(
491 'post_type' => 'ultp_custom_font',
492 'post_status' => 'publish',
493 'numberposts' => -1,
494 'order' => 'ASC',
495 );
496 $posts = get_posts( $args );
497 if ( $posts ) {
498 foreach ( $posts as $post ) {
499 setup_postdata( $post );
500 $font = get_post_meta( $post->ID, '__font_settings', true );
501
502 if ( $font ) {
503 array_push(
504 $custom_fonts,
505 array(
506 'title' => $post->post_title,
507 'font' => $font,
508 )
509 );
510 }
511 }
512 wp_reset_postdata();
513 }
514 }
515
516 wp_localize_script(
517 'ultp-blocks-editor-script',
518 'ultp_data',
519 array(
520 'url' => ULTP_URL,
521 'ajax' => admin_url( 'admin-ajax.php' ),
522 'security' => wp_create_nonce( 'ultp-nonce' ),
523 'hide_import_btn' => ultimate_post()->get_setting( 'hide_import_btn' ),
524 'premium_link' => Xpo::generate_utm_link(),
525 'license' => $is_active ? Xpo::get_lc_key() : '',
526 'active' => $is_active,
527 'archive' => ultimate_post()->is_archive_builder(),
528 'settings' => ultimate_post()->get_setting(),
529 'post_type' => $post_type == 'premade' ? 'ultp_builder' : $post_type, // premade used for ultp.wpxpo.com
530 'date_format' => get_option( 'date_format' ),
531 'time_format' => get_option( 'time_format' ),
532 'blog' => get_current_blog_id(),
533 'affiliate_id' => apply_filters( 'ultp_affiliate_id', false ),
534 'category_url' => admin_url( 'edit-tags.php?taxonomy=category' ),
535 'disable_image_size' => ultimate_post()->get_setting( 'disable_image_size' ),
536 'dark_logo' => get_option( 'ultp_site_dark_logo' ) ? get_option( 'ultp_site_dark_logo' ) : false,
537 'builder_url' => admin_url( 'admin.php?page=ultp-settings#builder' ),
538 'custom_fonts' => $custom_fonts,
539 'expierd' => $is_expired,
540 )
541 );
542 wp_set_script_translations( 'ultp-blocks-editor-script', 'ultimate-post', ULTP_PATH . 'languages/' );
543 }
544
545
546 /**
547 * Fire when plugin is first installed.
548 *
549 * @since v.1.0.0
550 * @return void No return value.
551 */
552 public function plugin_activation_hook() {
553 $data = get_option( 'ultp_options', array() );
554 $currentDate = new \DateTime();
555 $currentDate->setTime( 0, 0, 0, 0 );
556 $init_data = array(
557 'preloader_style' => 'style1',
558 'preloader_color' => '#037fff',
559 'container_width' => '1140',
560 'hide_import_btn' => '',
561 'disable_image_size' => '',
562 'disable_view_cookies' => '',
563 'disable_google_font' => '',
564 'ultp_templates' => 'true',
565 'ultp_elementor' => 'true',
566 'ultp_table_of_content' => 'true',
567 'ultp_builder' => 'true',
568 'ultp_dynamic_content' => 'true',
569 'ultp_custom_font' => 'true',
570 'ultp_chatgpt' => 'true',
571 'post_grid_1' => 'yes',
572 'post_grid_2' => 'yes',
573 'post_grid_3' => 'yes',
574 'post_grid_4' => 'yes',
575 'post_grid_5' => 'yes',
576 'post_grid_6' => 'yes',
577 'post_grid_7' => 'yes',
578 'post_list_1' => 'yes',
579 'post_list_2' => 'yes',
580 'post_list_3' => 'yes',
581 'post_list_4' => 'yes',
582 'post_module_1' => 'yes',
583 'post_module_2' => 'yes',
584 'post_slider_1' => 'yes',
585 'post_slider_2' => 'yes',
586 'heading' => 'yes',
587 'image' => 'yes',
588 'taxonomy' => 'yes',
589 'wrapper' => 'yes',
590 'news_ticker' => 'yes',
591 'accordion' => 'yes',
592 'star_rating' => 'yes',
593 'youtube_gallery' => 'yes',
594 'builder_advance_post_meta' => 'yes',
595 'builder_archive_title' => 'yes',
596 'builder_author_box' => 'yes',
597 'builder_post_next_previous' => 'yes',
598 'builder_post_author_meta' => 'yes',
599 'builder_post_breadcrumb' => 'yes',
600 'builder_post_category' => 'yes',
601 'builder_post_comment_count' => 'yes',
602 'builder_post_comments' => 'yes',
603 'builder_post_content' => 'yes',
604 'builder_post_date_meta' => 'yes',
605 'builder_post_excerpt' => 'yes',
606 'builder_post_featured_image' => 'yes',
607 'builder_post_reading_time' => 'yes',
608 'builder_post_social_share' => 'yes',
609 'builder_post_tag' => 'yes',
610 'builder_post_title' => 'yes',
611 'builder_post_view_count' => 'yes',
612 'save_version' => wp_rand( 1, 1000 ),
613 'activated_date' => $currentDate->getTimestamp(),
614 );
615 if ( empty( $data ) ) {
616 update_option( 'ultp_options', $init_data );
617 $GLOBALS['ultp_settings'] = $init_data;
618 } else {
619 foreach ( $init_data as $key => $single ) {
620 if ( ! isset( $data[ $key ] ) ) {
621 $data[ $key ] = $single;
622 }
623 }
624 update_option( 'ultp_options', $data );
625 $GLOBALS['ultp_settings'] = $data;
626 }
627 if ( ! get_transient( 'wpxpo_installation_date' ) ) {
628 set_transient( 'wpxpo_installation_date', 'yes', 5 * DAY_IN_SECONDS ); // 5 Days Notice
629 }
630 }
631 }
632