PluginProbe
Post Grid Gutenberg Blocks – PostX / 1.1.4
Post Grid Gutenberg Blocks – PostX v1.1.4
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 / Options.php

Options.php in Post Grid Gutenberg Blocks – PostX 1.1.4, at classes/Options.php

835 lines 35.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 namespace ULTP;
3
4 defined('ABSPATH') || exit;
5
6 class Options{
7 public function __construct() {
8 add_action( 'admin_menu', array( $this, 'menu_page_callback' ) );
9 add_action( 'admin_init', array( $this, 'register_settings' ) );
10 }
11
12 public static function menu_page_callback() {
13 add_menu_page(
14 esc_html__( 'Ultimate Post', 'ultimate-post' ),
15 esc_html__( 'Ultimate Post', 'ultimate-post' ),
16 'manage_options',
17 'ultp-settings',
18 array( self::class, 'create_admin_page' ),
19 ULTP_URL.'assets/img/menu-panel.svg'
20 );
21 }
22
23 /**
24 * Register a setting and its sanitization callback.
25 */
26 public static function register_settings() {
27 register_setting( 'ultp_options', 'ultp_options', array( self::class, 'sanitize' ) );
28 }
29
30 /**
31 * Sanitization callback
32 */
33 public static function sanitize( $options ) {
34 if ($options) {
35 $settings = self::get_option_settings();
36 foreach ($settings as $key => $setting) {
37 if (!empty($key)) {
38 $options[$key] = sanitize_text_field($options[$key]);
39 }
40 }
41 }
42 return $options;
43 }
44
45 public static function get_option_settings(){
46 return array(
47 'css_save_as' => array(
48 'type' => 'select',
49 'label' => __('CSS Save Method', 'ultimate-post'),
50 'options' => array(
51 'wp_head' => __( 'Header','ultimate-post' ),
52 'filesystem' => __( 'File System','ultimate-post' ),
53 ),
54 'default' => 'wp_head',
55 'desc' => __('Select where you want to save CSS.', 'ultimate-post')
56 ),
57 'preloader_style' => array(
58 'type' => 'select',
59 'label' => __('Preloader Style', 'ultimate-post'),
60 'options' => array(
61 'style1' => __( 'Preloader Style 1','ultimate-post' ),
62 'style2' => __( 'Preloader Style 2','ultimate-post' ),
63 ),
64 'default' => 'style1',
65 'desc' => __('Select Preloader Style.', 'ultimate-post')
66 ),
67 // 'preloader_color' => array(
68 // 'type' => 'color',
69 // 'label' => __('Preloader Color', 'ultimate-post'),
70 // 'default' => '#1740f5',
71 // 'desc' => __('Select Preloader Color.', 'ultimate-post')
72 // ),
73 'container_width' => array(
74 'type' => 'number',
75 'label' => __('Container Width', 'ultimate-post'),
76 'default' => '1140',
77 'desc' => __('Change Container Width.', 'ultimate-post')
78 ),
79 );
80 }
81
82 public static function get_recommended_themes(){
83 $recommended_themes = array(
84 'coblog' => array(
85 'name' => 'Coblog',
86 'slug' => 'coblog',
87 'url' => 'https://wordpress.org/themes/coblog',
88 'logo' => ULTP_URL.'assets/img/WordPress.png'
89 ),
90 'blocksy' => array(
91 'name' => 'Blocksy',
92 'slug' => 'blocksy',
93 'url' => 'https://wordpress.org/themes/blocksy/',
94 'logo' => ULTP_URL.'assets/img/WordPress.png'
95 ),
96 );
97
98 $html = '';
99 foreach ($recommended_themes as $key => $value) {
100 $html .= '<div class="ultp-recommended-theme">';
101 $html .= '<div class="ultp-recommended-image">';
102 $html .= '<img src="'.$value['logo'].'" alt="'.$value['name'].'" />';
103 $html .= '</div>';
104 $html .= '<div class="ultp-recommended-name"><a target="_blank" href="'.$value['url'].'">'.$value['name'].'</a></div>';
105 $html .= '<div class="ultp-recommended-button">';
106 $html .= '<a target="_blank" href="'.$value['url'].'" class="button button-success">'.__('Download Now').'</a>';
107 $html .= '</div>';
108 $html .= '</div>';
109 }
110 echo $html;
111 }
112
113 public static function get_changelog_data() {
114 $html = '';
115 $resource_data = file_get_contents(ULTP_PATH.'/readme.txt', "r");
116 $data = array();
117 if ($resource_data) {
118 $resource_data = explode('== Changelog ==', $resource_data);
119 if (isset($resource_data[1])) {
120 $resource_data = $resource_data[1];
121 $resource_data = explode("\n", $resource_data);
122 $inner = false;
123 $count = -1;
124
125 foreach ($resource_data as $element) {
126 if ($element){
127 if (substr_count($element, '=') > 1) {
128 $count++;
129 $temp = trim(str_replace('=', '', $element));
130 if (strpos($temp, '-') !== false) {
131 $temp = explode('-', $temp);
132 $data[$count]['date'] = trim($temp[1]);
133 $data[$count]['version'] = trim($temp[0]);
134 }
135 }
136 if (strpos($element, '* New:') !== false) {
137 $data[$count]['new'][] = trim(str_replace('* New:', '', $element));
138 }
139 if (strpos($element, '* Fix:') !== false) {
140 $data[$count]['fix'][] = trim(str_replace('* Fix:', '', $element));
141 }
142 if (strpos($element, '* Update:') !== false) {
143 $data[$count]['update'][] = trim(str_replace('* Update:', '', $element));
144 }
145 }
146 }
147 }
148 }
149 if (!empty($data)) {
150 foreach ($data as $k => $inner_data) {
151 $html .= '<div class="ultp-changelog-wrap">';
152 foreach ($inner_data as $key => $changelog) {
153 if ($key == 'date') {
154 $html .= '<div class="ultp-changelog-date">'.__('Released on ', 'ultimate-post').' '.$changelog.'</div>';
155 } elseif($key == 'version') {
156 $html .= '<div class="ultp-changelog-version">'.__('Version', 'ultimate-post').' : '.$changelog.'</div>';
157 } else {
158 foreach ($changelog as $keyword => $val) {
159 $html .= '<div class="ultp-changelog-title"><span class="changelog-'.$key.'">'.$key.'</span>'.$val.'</div>';
160 }
161 }
162 }
163 $html .= '</div>';
164 }
165 }
166 echo $html;
167 }
168
169 public static function get_settings_data() {
170 $html = '';
171 $option_data = get_option( 'ultp_options' );
172 $data = self::get_option_settings();
173 $html .= '<div class="ultp-settings">';
174 $html .= '<input type="hidden" name="option_page" value="ultp_options" />';
175 $html .= '<input type="hidden" name="action" value="update" />';
176 $html .= wp_nonce_field( "ultp_options-options" );
177 foreach ($data as $key => $value) {
178 $html .= '<div class="ultp-settings-wrap">';
179 $html .= '<div class="ultp-settings-label">'.$value['label'].'</div>';
180 $html .= '<div class="ultp-settings-field-wrap">';
181 switch ($value['type']) {
182
183 case 'select':
184 $html .= '<div class="ultp-settings-field">';
185 $val = isset($option_data[$key]) ? $option_data[$key] : (isset($value['default']) ? $value['default'] : '');
186 $html .= '<select name="ultp_options['.$key.']">';
187 foreach ( $value['options'] as $id => $label ) {
188 $html .= '<option value="'.$id.'" '.( $val == $id ? ' selected="selected"':'').'>';
189 $html .= strip_tags( $label );
190 $html .= '</option>';
191 }
192 $html .= '</select>';
193 $html .= '<p class="description">'.$value['desc'].'</p>';
194 $html .= '</div>';
195 break;
196
197 case 'color':
198 $html .= '<div class="ultp-settings-field">';
199 $val = isset($option_data[$key]) ? $option_data[$key] : (isset($value['default']) ? $value['default'] : '');
200 $html .= '<input name="ultp_options['.$key.']" value="'.$val.'" class="ultp-color-picker" />';
201 $html .= '<p class="description">'.$value['desc'].'</p>';
202 $html .= '</div>';
203 break;
204
205 case 'number':
206 $html .= '<div class="ultp-settings-field">';
207 $val = isset($option_data[$key]) ? $option_data[$key] : (isset($value['default']) ? $value['default'] : '');
208 $html .= '<input type="number" name="ultp_options['.$key.']" value="'.$val.'"/>';
209 $html .= '<p class="description">'.$value['desc'].'</p>';
210 $html .= '</div>';
211 break;
212 /*
213 case 'select_multiple':
214 $html .= '<div class="ultp-settings-field">';
215 $val = isset($option_data[$key]) ? $option_data[$key] : (isset($value['default']) ? $value['default'] : '');
216
217
218 $html .= '<select name="" multiple>';
219 foreach ($value['attr'] as $k => $value) {
220 $html .= '<option value="'.$k.'" '.in_array('selected').'>'.$value.'</option>';
221 }
222 $html .= '</select>';
223
224
225 $html .= '<p class="description">'.$value['desc'].'</p>';
226 $html .= '</div>';
227 */
228 default:
229 # code...
230 break;
231
232 }
233 $html .= '</div>';
234 $html .= '</div>';
235 }
236 $html .= '<div class="ultp-settings-wrap ultp-submit-button">';
237 $html .= '<div></div>'.get_submit_button();
238 $html .= '</div>';
239
240 $html .= '</div>';
241
242
243
244 echo '<form method="post" action="options.php">'.$html.'</form>';
245 }
246
247
248 public static function get_support_data() {
249 $html = '';
250 $html .= '<div class="ultp-admin-sidebar">';
251
252 $html .= '<div class="ultp-admin-card ultp-sidebar-card">';
253 $html .= '<h3 class="ultp-sidebar-title">'.esc_html__( 'Coblog Theme', 'ultimate-post' ).'</h3>';
254 $html .= '<p class="ultp-sidebar-content">'.esc_html__( 'Responsive WordPress Theme news theme built for personal blog, blogging, blogger, journal, lifestyle, magazine, photography, editorial, traveler and so on.', 'ultimate-post' ).'</p>';
255 $html .= '<h4>'.esc_html__( 'Core Features', 'ultimate-post' ).'</h4>';
256 $html .= '<ul class="ultp-sidebar-list">';
257 $html .= '<li>'.esc_html__( 'Based On Gutenberg', 'ultimate-post' ).'</li>';
258 $html .= '<li>'.esc_html__( 'Header Variations', 'ultimate-post' ).'</li>';
259 $html .= '<li>'.esc_html__( 'Footer Variations', 'ultimate-post' ).'</li>';
260 $html .= '<li>'.esc_html__( 'Advanced Option Panel', 'ultimate-post' ).'</li>';
261 $html .= '<li>'.esc_html__( 'Box Width layout', 'ultimate-post' ).'</li>';
262 $html .= '<li>'.esc_html__( 'Unlimited Color Options', 'ultimate-post' ).'</li>';
263 $html .= '</ul>';
264 // $html .= '<a class="button button-primary" target="_blank" href="https://coblog.wpxpo.com/">'.__('Live Demo', 'ultimate-post').'</a>';
265 $html .= '<a class="button button-success" target="_blank" href="https://wordpress.org/themes/coblog">'.__('Free Download', 'ultimate-post').'</a>';
266 $html .= '</div>';//ultp-admin-card
267
268 $html .= '</div>';//ultp-admin-sidebar
269 echo $html;
270 }
271
272 /**
273 * Settings page output
274 */
275 public static function create_admin_page() { ?>
276 <style>
277 /* ----Common--- */
278 #wpbody-content, #wpwrap{
279 background-color: #f2f2f2;
280 -webkit-font-smoothing: subpixel-antialiased;
281 }
282 .error, .notice {
283 display: none;
284 }
285 #wpcontent {
286 padding-left: 0px;
287 }
288 .ultp-option-body {
289 position: relative;
290 font-size: 15px;
291 max-width: 100%;
292 display:block;
293 }
294
295 /* ----Header--- */
296 .ultp-setting-header {
297 width: 100%;
298 display: flex;
299 align-items: center;
300 padding: 20px 40px;
301 box-sizing: border-box;
302 background: #fff;
303 }
304 .ultp-setting-header img {
305 margin-left:auto;
306 }
307 .ultp-setting-header-info h1 {
308 margin: 0;
309 font-weight: 300;
310 font-size: 35px;
311 line-height: normal;
312 color: #000;
313 }
314 .ultp-setting-header-info p {
315 font-size: 14px;
316 margin-top: 5px;
317 margin-bottom: 0;
318 font-weight:300;
319 }
320 .ultp-setting-header-info p a {
321 margin-left: 5px;
322 text-decoration: none;
323 color: #007AFF;
324 }
325 .ultp-setting-header-info p a span {
326 color: #FF9920;
327 margin-left: 10px;
328 font-size: 18px;
329 letter-spacing: 4px;
330 }
331
332
333
334
335 /* ----common--- */
336 .ultp-admin-card {
337 box-shadow: 0 0 10px -5px rgba(0,0,0,0.5);
338 background-color: #fff;
339 }
340 .ultp-title {
341 margin-top:0;
342 color: #000;
343 }
344 .ultp-overview {
345 padding: 50px;
346 display:flex;
347 }
348 .ultp-overview-content {
349 max-width: 50%;
350 padding-right: 30px;
351 }
352 .wp-core-ui .button-primary {
353 background: #006ade;
354 border-color: #006ade;
355 border-radius: 2px;
356 padding: 3px 15px;
357 font-weight: 400;
358 height: auto;
359 }
360 .wp-core-ui .button.button-success {
361 background: #14bd62;
362 border-color: #14bd62;
363 color: #fff;
364 margin-left: 10px;
365 transition: 400ms;
366 border-radius: 2px;
367 padding: 3px 15px;
368 font-weight: 400;
369 height: auto;
370 }
371 .wp-core-ui .button.button-success:hover {
372 background: #14d26c;
373 border-color: #14d26c;
374 }
375 .wp-core-ui .button.button-primary:hover {
376 background: #007afe;
377 border-color: #007afe;
378 }
379 .wp-core-ui .button.button-success:focus {
380 box-shadow: 0 0 0 1px #10b35b;
381 }
382 .wp-core-ui .button.button-primary:focus {
383 box-shadow: 0 0 0 1px #016BDF;
384 }
385 .ultp-overview-text {
386 font-size: 14px;
387 font-weight: 300;
388 line-height: 25px;
389 }
390 .ultp-overview-text .button {
391 margin-top: 30px;
392 }
393 .ultp-overview-feature {
394 margin-top: 40px;
395 }
396
397 .ultp-dashboard-list {
398 list-style: none;
399 padding: 0;
400 }
401 .ultp-dashboard-list li {
402 font-size: 14px;
403 font-weight: 300;
404 line-height: 26px;
405 position: relative;
406 padding: 0 20px;
407 display: inline-block;
408 width: 40%;
409 }
410 .ultp-dashboard-list li:after {
411 content: "";
412 left: 0;
413 width: 8px;
414 height: 8px;
415 border-radius: 100px;
416 background: #dcdcdc;
417 position: absolute;
418 top: 50%;
419 margin-top: -4px;
420 }
421
422
423
424 /* ----Sidebar--- */
425 .ultp-sidebar-card {
426 padding: 0 20px 25px;
427 }
428 .ultp-sidebar-title {
429 margin: 0 -20px 0;
430 background: #FAFAFA;
431 padding: 15px 20px;
432 font-size: 16px;
433 border-bottom: 1px solid #EEEEEE;
434 color: #000;
435 }
436 .ultp-sidebar-card h4 {
437 color: #000;
438 margin-top: 25px;
439 }
440 .ultp-sidebar-list {
441 list-style: none;
442 padding: 0;
443 margin-bottom: 30px;
444 }
445 .ultp-sidebar-list li {
446 font-size: 13px;
447 padding: 0 20px;
448 position: relative;
449 margin-right: auto;
450 line-height: 24px;
451 }
452 .ultp-sidebar-list li:after {
453 content: "";
454 left: 0;
455 width: 8px;
456 height: 8px;
457 border-radius: 100px;
458 background: #dcdcdc;
459 position: absolute;
460 top: 50%;
461 margin-top: -4px;
462 }
463 .ultp-sidebar-content {
464 margin-top: 25px;
465 }
466
467 /* ----Tab--- */
468 .ultp-content-wrap {
469 padding: 40px;
470 display: flex;
471 width: 100%;
472 box-sizing: border-box;
473 }
474 .ultp-tab-content-wrap {
475 width: 75%;
476 margin-right: 30px;
477 -webkit-box-flex: 0;
478 -ms-flex: 0 0 75%;
479 flex: 0 0 75%;
480 max-width: 75%;
481 }
482
483 .ultp-tab-title-wrap{
484 padding: 0 40px;
485 background-color: #ffffff;
486 border-bottom: 3px solid #d5d5d5;
487 }
488 .ultp-tab-title{
489 font-weight: 300;
490 color: #555;
491 font-size: 15px;
492 display: inline-block;
493 margin-right: 25px;
494 padding: 10px 0;
495 }
496 .ultp-tab-title:hover{
497 cursor: pointer;
498 }
499 .ultp-tab-title.active{
500 border-bottom: 3px solid #007AFF;
501 color: #007AFF;
502 margin-bottom: -3px;
503 }
504 .ultp-tab-content{
505 display: none;
506 }
507 .ultp-tab-content.active{
508 display: block;
509 }
510
511 /* ----Settings--- */
512 .ultp-settings-wrap {
513 margin-bottom: 20px;
514 display: grid;
515 grid-template-columns: 0.8fr 1fr;
516 }
517
518
519 /* ----Recomended--- */
520 .ultp-recommended-theme{
521 max-width: 100%;
522 background-color: #ffffff;
523 border-radius: 3px;
524 box-shadow: 0 0 10px -5px rgba(0,0,0,0.5);
525 margin-bottom: 30px;
526 }
527 .ultp-recommended-image, .ultp-recommended-name, .ultp-recommended-button {
528 display: inline-block;
529 vertical-align: middle;
530 }
531 .ultp-recommended-name {
532 font-size: 18px;
533 margin-left: 20px;
534 }
535 .ultp-recommended-name a {
536 transition: 400ms;
537 color: #000000;
538 text-decoration: none;
539 transition: 400ms;
540 }
541 .ultp-recommended-name a:hover {
542 color: #007AFF;
543 }
544 .ultp-recommended-image {
545 border-right: 1px solid #ececec;
546 }
547 .ultp-recommended-image img {
548 width: 70px;
549 }
550 .ultp-recommended-button {
551 float: right;
552 margin: 20px 20px 0 0;
553 position: relative;
554 }
555 .ultp-recommended-button a{
556 float: right;
557 transition: 200ms;
558 text-decoration: none;
559 }
560 .ultp-recommended-button a:hover{
561 cursor: pointer;
562 }
563
564 /* ---Video Tutorials--- */
565 .ultp-overview-video iframe {
566 box-shadow: 0 0 10px -5px rgba(0,0,0,0.5);
567 }
568 .ultp-video-tutorials {
569 display: grid;
570 grid-template-columns: 1fr 1fr 1fr;
571 grid-gap: 30px;
572 }
573 .ultp-video-tutorial {
574 box-shadow: 0 0 10px -5px rgba(0,0,0,0.5);
575 background-color: #fff;
576 }
577 .ultp-video-tutorial iframe {
578 box-shadow: 0 0 10px -5px rgba(0,0,0,0.5);
579 width: 100%;
580 height: 207px;
581 }
582 .ultp-video-tutorial h4 {
583 color: #000;
584 margin: 0;
585 padding: 15px 20px 20px;
586 }
587 /* ---Changelog--- */
588 .ultp-changelog-wrap {
589 background-color: #ffffff;
590 margin: 0 auto 30px;
591 padding: 25px 30px;
592 position: relative;
593 box-shadow: 0 0 10px -5px rgba(0,0,0,0.5);
594 }
595 .ultp-changelog-date{
596 font-size: 14px;
597 display: inline-block;
598 right: 30px;
599 position: absolute;
600 font-weight: 300;
601 }
602 .ultp-changelog-version{
603 font-size: 16px;
604 color: #000000;
605 font-weight: 700;
606 margin-bottom: 20px;
607 }
608 .ultp-changelog-title {
609 text-transform: capitalize;
610 font-size: 14px;
611 color: #555555;
612 line-height: 28px;
613 font-weight: 300;
614 margin-bottom: 8px;
615 }
616 .ultp-changelog-title > span {
617 padding: 2px 10px;
618 border-radius: 3px;
619 margin-right: 10px;
620 }
621 .changelog-fix{
622 color: #721c24;
623 background-color: #f8d7da;
624 border-color: #f5c6cb;
625 }
626 .changelog-update{
627 color: #856404;
628 background-color: #fff3cd;
629 border-color: #ffeeba;
630 }
631 .changelog-new{
632 color: #155724;
633 background-color: #d4edda;
634 border-color: #c3e6cb;
635 }
636
637 /* ----Responsive--- */
638 @media (max-width: 1500px) {
639 .ultp-overview {
640 flex-wrap: wrap;
641 flex-direction: column-reverse;
642 }
643 .ultp-overview-content {
644 max-width: 100%;
645 }
646 .ultp-overview-video {
647 margin-bottom: 40px;
648 }
649 .ultp-overview-video iframe {
650 width: 640px;
651 height: 360px;
652 box-shadow: 0 0 10px -5px rgba(0,0,0,0.5);
653 }
654 .ultp-video-tutorials {
655 grid-template-columns: 1fr 1fr;
656 }
657 }
658 @media (max-width: 1400px) {
659 .ultp-sidebar-card .button.button-primary {
660 text-align: center;
661 display: block;
662 }
663 .ultp-sidebar-card .button.button-success {
664 text-align: center;
665 display: block;
666 margin-left: 0;
667 margin-top: 10px;
668 }
669 }
670 @media (max-width: 1200px) {
671 .ultp-content-wrap {
672 flex-wrap: wrap;
673 }
674 .ultp-tab-content-wrap {
675 width: 100%;
676 margin-right: 0;
677 -webkit-box-flex: 0;
678 -ms-flex: 0 0 100%;
679 flex: 0 0 100%;
680 max-width: 100%;
681 }
682 .ultp-admin-sidebar {
683 margin-top: 40px;
684 }
685 }
686 @media (max-width: 1000px) {
687 .ultp-setting-header-info h1 {
688 font-size: 28px;
689 }
690 .ultp-overview-video iframe {
691 width: 350px;
692 height: 250px;
693 }
694 .ultp-setting-header {
695 padding: 20px 30px;
696 }
697 .ultp-tab-title-wrap {
698 padding: 0 30px;
699 }
700 .ultp-overview {
701 padding: 30px;
702 }
703 .ultp-video-tutorials {
704 grid-template-columns: 1fr;
705 }
706 }
707 </style>
708
709 <div class="ultp-option-body">
710 <div class="ultp-setting-header">
711 <div class="ultp-setting-header-info">
712 <h1>
713 <?php _e('Welcome to <strong>Gutenberg Post Blocks</strong> - Version', 'ultimate-post'); ?><span> 1.1.4</span>
714 </h1>
715 <p><?php esc_html_e('Most Powerful & Advanced Gutenberg Kit', 'ultimate-post'); ?><a href="https://wordpress.org/support/plugin/ultimate-post/reviews/#new-post"><?php esc_html_e('Rate the plugin', 'ultimate-post'); ?><span>�
716
717
718
719
720 <span></a></p>
721 </div>
722 <img src="<?php echo ULTP_URL.'assets/img/logo-option.svg'; ?>" alt="<?php _e('Ultimate Post', 'ultimate-post'); ?>">
723 </div>
724 <div class="ultp-tab-wrap">
725 <div class="ultp-tab-title-wrap">
726 <div class="ultp-tab-title active"><?php _e('Getting Started', 'ultimate-post'); ?></div>
727 <div class="ultp-tab-title"><?php _e('General Settings', 'ultimate-post'); ?></div>
728 <div class="ultp-tab-title"><?php _e('Recommended Theme', 'ultimate-post'); ?></div>
729 <div class="ultp-tab-title"><?php _e('Video Tutorials', 'ultimate-post'); ?></div>
730 <div class="ultp-tab-title"><?php _e('Changelog', 'ultimate-post'); ?></div>
731 </div>
732 <div class="ultp-content-wrap">
733 <div class="ultp-tab-content-wrap">
734 <div class="ultp-tab-content active"><!-- #Recommended Theme Content -->
735 <div class="ultp-overview ultp-admin-card">
736 <div class="ultp-overview-content">
737 <div class="ultp-overview-text">
738 <h3 class="ultp-title"><?php esc_html_e( 'Quick Overview', 'ultimate-post' ); ?></h3>
739 <?php esc_html_e('Ultimate Post Blocks is a Gutenberg post block plugins for creating beautiful Gutenberg post grid blocks, post listing blocks, post slider blocks and post carousel blocks within a few seconds.', 'ultimate-post'); ?>
740 <div>
741 <a href="https://www.wpxpo.com/" class="button button-primary"><?php esc_html_e('Plugin Details', 'ultimate-post'); ?></a>
742 <a class="button button-success" target="_blank" href="https://demo.wpxpo.com/layouts/"><?php esc_html_e('Free Layout Pack', 'ultimate-post'); ?></a>
743 </div>
744 </div><!--/.ultp-about-text-->
745 <div class="ultp-overview-feature">
746 <h3 class="ultp-title"><?php esc_html_e( 'Core Features', 'ultimate-post' ); ?></h3>
747 <ul class="ultp-dashboard-list">
748 <li><?php esc_html_e( 'Infinite Load More', 'ultimate-post' ); ?></li>
749 <li><?php esc_html_e( 'Advanced Pagination', 'ultimate-post' ); ?></li>
750 <li><?php esc_html_e( 'Advanced Query', 'ultimate-post' ); ?></li>
751 <li><?php esc_html_e( 'Premade Layouts', 'ultimate-post' ); ?></li>
752 <li><?php esc_html_e( 'Premade Blocks', 'ultimate-post' ); ?></li>
753 <li><?php esc_html_e( 'Post List View', 'ultimate-post' ); ?></li>
754 <li><?php esc_html_e( 'Post Grid View', 'ultimate-post' ); ?></li>
755 <li><?php esc_html_e( 'Filter Option', 'ultimate-post' ); ?></li>
756 <li><?php esc_html_e( 'Post Carousel', 'ultimate-post' ); ?></li>
757 <li><?php esc_html_e( 'Image Overlay', 'ultimate-post' ); ?></li>
758 </ul>
759 </div><!--/.ultp-overview-feature-->
760 </div><!--/.ultp-overview-content-->
761 <div class="ultp-overview-video">
762 <h3 class="ultp-title"><?php esc_html_e( 'Getting started', 'ultimate-post' ); ?></h3>
763 <iframe width="500" height="315" src="https://www.youtube.com/embed/JZxIflYKOuM" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
764 </div>
765 </div><!--/.ultp-dashboard-->
766
767 </div>
768 <div class="ultp-tab-content"><!-- #Settings Content -->
769 <div class="ultp-overview ultp-admin-card"><!-- #Settings Content -->
770 <?php self::get_settings_data(); ?>
771 </div>
772 </div>
773 <div class="ultp-tab-content"><!-- #Recommended Theme Content -->
774 <div class="ultp-admin-themes"><!-- #Settings Content -->
775 <?php self::get_recommended_themes(); ?>
776 </div>
777 </div>
778 <div class="ultp-tab-content"><!-- #Video Tutorial -->
779 <div class="ultp-video-tutorials">
780 <div class="ultp-video-tutorial">
781 <iframe src="https://www.youtube.com/embed/S0kU_FSa2wc" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
782 <h4><?php esc_html_e('How to Import Layouts','ultimate-post'); ?></h4>
783 </div>
784 <div class="ultp-video-tutorial">
785 <iframe src="https://www.youtube.com/embed/lvRO359JuPw" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
786 <h4><?php esc_html_e('How to use advaced query builder','ultimate-post'); ?></h4>
787 </div>
788 <div class="ultp-video-tutorial">
789 <iframe width="560" height="315" src="https://www.youtube.com/embed/Eoz5yr8BAWY" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
790 <h4><?php esc_html_e('How to use Post Slider','ultimate-post'); ?></h4>
791 </div>
792 <div class="ultp-video-tutorial">
793 <iframe src="https://www.youtube.com/embed/gqaXZ9nQEV8" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
794 <h4><?php esc_html_e('How to use Advanced Pagination','ultimate-post'); ?></h4>
795 </div>
796 <div class="ultp-video-tutorial">
797 <iframe width="560" height="315" src="https://www.youtube.com/embed/kwGhNfBD6AA" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
798 <h4><?php esc_html_e('How to use Pre-made Blocks','ultimate-post'); ?></h4>
799 </div>
800 <div class="ultp-video-tutorial">
801 <iframe src="https://www.youtube.com/embed/bcZJt2aN7hM" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
802 <h4><?php esc_html_e('How to use Image Overlay','ultimate-post'); ?></h4>
803 </div>
804 <div class="ultp-video-tutorial">
805 <iframe src="https://www.youtube.com/embed/2yIcx-2QkiE" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
806 <h4><?php esc_html_e('How to use Category','ultimate-post'); ?></h4>
807 </div>
808 <div class="ultp-video-tutorial">
809 <iframe src="https://www.youtube.com/embed/WGRy7CHcMFU" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
810 <h4><?php esc_html_e('How to use Meta','ultimate-post'); ?></h4>
811 </div>
812 </div>
813 </div>
814 <div class="ultp-tab-content"><!-- #Changelog Content -->
815 <?php self::get_changelog_data(); ?>
816 </div>
817 </div>
818 <?php self::get_support_data(); ?>
819 </div>
820 </div>
821
822 <script type="text/javascript">
823 jQuery( document ).ready(function() {
824 jQuery( document ).on( "click", '.ultp-tab-title', function(e){
825 jQuery(this).closest('.ultp-tab-wrap').find('.ultp-tab-title').removeClass('active').eq(jQuery(this).index()).addClass('active')
826 jQuery(this).closest('.ultp-tab-wrap').find('.ultp-tab-content').removeClass('active').eq(jQuery(this).index()).addClass('active');
827 });
828 });
829 </script>
830 </div>
831
832 <?php }
833 }
834
835