PluginProbe
Post Grid Gutenberg Blocks – PostX / 2.5.4
Post Grid Gutenberg Blocks – PostX v2.5.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 / Initialization.php

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

628 lines 23.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Initialization Action.
4 *
5 * @package ULTP\Notice
6 * @since v.1.1.0
7 */
8 namespace ULTP;
9
10 defined('ABSPATH') || exit;
11
12 /**
13 * Initialization class.
14 */
15 class ULTP_Initialization{
16
17 private $all_blocks;
18
19 /**
20 * Setup class.
21 *
22 * @since v.1.1.0
23 */
24 public function __construct(){
25 $this->compatibility_check();
26 $this->requires(); // Include Necessary Files
27 $this->blocks(); // Include Blocks
28 $this->include_addons(); // Include Addons
29
30 add_action('wp', array($this, 'popular_posts_tracker_callback'));
31 add_filter('block_categories_all', array($this, 'register_category_callback'), 10, 2); // Block Category Register
32 add_action('after_setup_theme', array($this, 'add_image_size'));
33
34 add_action('enqueue_block_editor_assets', array($this, 'register_scripts_back_callback')); // Only editor
35 add_action('admin_enqueue_scripts', array($this, 'register_scripts_option_panel_callback')); // Option Panel
36 add_action('wp_enqueue_scripts', array($this, 'register_scripts_front_callback')); // Both frontend
37 register_activation_hook(ULTP_PATH.'ultimate-post.php', array($this, 'install_hook'));
38 add_action( 'activated_plugin', array($this, 'activation_redirect'));
39
40 add_action('wp_ajax_ultp_next_prev', array($this, 'ultp_next_prev_callback')); // Next Previous AJAX Call
41 add_action('wp_ajax_nopriv_ultp_next_prev', array($this, 'ultp_next_prev_callback')); // Next Previous AJAX Call Logout User
42 add_action('wp_ajax_ultp_filter', array($this, 'ultp_filter_callback')); // Next Previous AJAX Call
43 add_action('wp_ajax_nopriv_ultp_filter', array($this, 'ultp_filter_callback')); // Next Previous AJAX Call Logout User
44 add_action('wp_ajax_ultp_pagination', array($this, 'ultp_pagination_callback')); // Page Number AJAX Call
45 add_action('wp_ajax_nopriv_ultp_pagination',array($this, 'ultp_pagination_callback')); // Page Number AJAX Call Logout User
46 add_action('wp_ajax_ultp_addon', array($this, 'ultp_addon_callback')); // Next Previous AJAX Call
47
48 add_action('admin_init', array($this, 'check_theme_compatibility'));
49 add_action( 'after_switch_theme', array($this, 'wpxpo_swithch_thememe'));
50 }
51
52
53 /**
54 * Theme Switch Callback
55 *
56 * @since v.1.1.0
57 * @return NULL
58 */
59 public function wpxpo_swithch_thememe () {
60 $this->check_theme_compatibility();
61 }
62
63
64 /**
65 * Theme Compatibility Action
66 *
67 * @since v.1.1.0
68 * @return NULL
69 */
70 public function check_theme_compatibility() {
71 $licence = apply_filters( 'ultp_theme_integration' , FALSE);
72 $theme = get_transient( 'ulpt_theme_enable' );
73
74 if( $licence ) {
75 if( $theme != 'integration' ) {
76 $themes = wp_get_theme();
77 $api_params = array(
78 'wpxpo_theme_action' => 'theme_license',
79 'slug' => $themes->get('TextDomain'),
80 'author' => $themes->get('Author'),
81 'item_id' => 181,
82 'url' => home_url()
83 );
84
85 $response = wp_remote_post( 'https://www.wpxpo.com', array( 'timeout' => 15, 'sslverify' => false, 'body' => $api_params ) );
86
87 if ( !is_wp_error( $response ) || 200 === wp_remote_retrieve_response_code( $response ) ) {
88 $license_data = json_decode( wp_remote_retrieve_body( $response ) );
89 if(isset($license_data->license)) {
90 if ( $license_data->license == 'valid' ) {
91 set_transient( 'ulpt_theme_enable', 'integration', 2592000 ); // 30 days time
92 }
93 }
94 }
95 }
96 } else {
97 if ( $theme == 'integration' ) {
98 delete_transient('ulpt_theme_enable');
99 }
100 }
101 }
102
103
104 /**
105 * Check Compatibility
106 *
107 * @since v.1.0.0
108 * @return NULL
109 */
110 public function compatibility_check(){
111 require_once ULTP_PATH.'classes/Compatibility.php';
112 new \ULTP\Compatibility();
113 }
114
115
116 /**
117 * Option Panel CSS and JS Scripts
118 *
119 * @since v.1.0.0
120 * @return NULL
121 */
122 public function register_scripts_option_panel_callback(){
123 wp_enqueue_style('wp-color-picker');
124 wp_enqueue_script('wp-color-picker');
125 wp_enqueue_script('ultp-option-script', ULTP_URL.'assets/js/ultp-option.js', array('jquery'), ULTP_VER, true);
126 wp_enqueue_style('ultp-option-style', ULTP_URL.'assets/css/ultp-option.css', array(), ULTP_VER);
127 wp_localize_script('ultp-option-script', 'ultp_option_panel', array(
128 'security' => wp_create_nonce('ultp-nonce'),
129 'ajax' => admin_url('admin-ajax.php')
130 ));
131 }
132
133
134 /**
135 * Common Frontend and Backend CSS and JS Scripts
136 *
137 * @since v.1.0.0
138 * @return NULL
139 */
140 public function register_scripts_common(){
141 wp_enqueue_style('ultp-style', ULTP_URL.'assets/css/style.min.css', array(), ULTP_VER );
142 wp_enqueue_script('ultp-script', ULTP_URL.'assets/js/ultp.min.js', array('jquery'), ULTP_VER, true);
143 wp_localize_script('ultp-script', 'ultp_data_frontend', array(
144 'url' => ULTP_URL,
145 'ajax' => admin_url('admin-ajax.php'),
146 'security' => wp_create_nonce('ultp-nonce')
147 ));
148
149 }
150
151
152 /**
153 * Only Frontend CSS and JS Scripts
154 *
155 * @since v.1.0.0
156 * @return NULL
157 */
158 public function register_scripts_front_callback() {
159 $call_common = false;
160 if (isset($_GET['preview_id']) && isset($_GET['preview_nonce'])) {
161 $call_common = true;
162 $this->register_scripts_common();
163 } else if ('yes' == get_post_meta(ultimate_post()->get_ID(), '_ultp_active', true)) {
164 $call_common = true;
165 $this->register_scripts_common();
166 } else if (ultimate_post()->is_builder()) {
167 $call_common = true;
168 $this->register_scripts_common();
169 } else if (apply_filters ('postx_common_script', false)) {
170 $call_common = true;
171 $this->register_scripts_common();
172 }
173
174 // For WidgetWidget
175 $has_block = false;
176 $widget_blocks = array();
177 global $wp_registered_sidebars, $sidebars_widgets;
178 foreach ($wp_registered_sidebars as $key => $value) {
179 if (is_active_sidebar($key)) {
180 foreach ($sidebars_widgets[$key] as $val) {
181 if (strpos($val, 'block-') !== false) {
182 if (empty($widget_blocks)) {
183 $widget_blocks = get_option( 'widget_block' );
184 }
185 foreach ( (array) $widget_blocks as $block ) {
186 if ( isset( $block['content'] ) && strpos($block['content'], 'wp:ultimate-post') !== false ) {
187 $has_block = true;
188 break;
189 }
190 }
191 if ($has_block) {
192 break;
193 }
194 }
195 }
196 }
197 }
198 if ($has_block) {
199 if (!$call_common) {
200 $this->register_scripts_common();
201 }
202 $css = get_option('ultp-widget', true);
203 if ($css) {
204 wp_register_style('ultp-post-widget', false );
205 wp_enqueue_style('ultp-post-widget' );
206 wp_add_inline_style('ultp-post-widget', $css);
207 }
208 }
209 }
210
211
212 /**
213 * Only Backend CSS and JS Scripts
214 *
215 * @since v.1.0.0
216 * @return NULL
217 */
218 public function register_scripts_back_callback() {
219 $this->register_scripts_common();
220 global $pagenow;
221 $depends = 'wp-editor';
222 if ( $pagenow === 'widgets.php' ) {
223 $depends = 'wp-edit-widgets';
224 }
225 wp_enqueue_script('ultp-blocks-editor-script', ULTP_URL.'assets/js/editor.blocks.min.js', array('wp-i18n', 'wp-element', 'wp-blocks', 'wp-components', $depends ), ULTP_VER, true);
226 wp_enqueue_style('ultp-blocks-editor-css', ULTP_URL.'assets/css/blocks.editor.css', array(), ULTP_VER);
227 if(is_rtl()){
228 wp_enqueue_style('ultp-blocks-editor-rtl-css', ULTP_URL.'assets/css/rtl.css', array(), ULTP_VER);
229 }
230 $is_active = ultimate_post()->is_lc_active();
231 wp_localize_script('ultp-blocks-editor-script', 'ultp_data', array(
232 'url' => ULTP_URL,
233 'ajax' => admin_url('admin-ajax.php'),
234 'security' => wp_create_nonce('ultp-nonce'),
235 'hide_import_btn' => ultimate_post()->get_setting('hide_import_btn'),
236 'upload' => wp_upload_dir()['basedir'] . '/ultp',
237 'premium_link' => ultimate_post()->get_premium_link(),
238 'license' => $is_active ? get_option('edd_ultp_license_key') : '',
239 'active' => $is_active,
240 'archive' => $is_active ? ultimate_post()->is_archive_builder() : '',
241 'settings' => ultimate_post()->get_setting()
242 ));
243
244 wp_set_script_translations( 'ultp-blocks-editor-script', 'ultimate-post', ULTP_PATH . 'languages/' );
245 }
246
247
248 /**
249 * Fire When Plugin First Install
250 *
251 * @since v.1.0.0
252 * @return NULL
253 */
254 public function install_hook() {
255 if (!get_option('ultp_options')) {
256 ultimate_post()->init_set_data();
257 }
258 }
259
260
261 /**
262 * Redirect After Active Plugin
263 *
264 * @since v.1.0.0
265 * @param STRING | Plugin Path
266 * @return NULL
267 */
268 public function activation_redirect($plugin) {
269 if( $plugin == 'ultimate-post/ultimate-post.php' ) {
270 exit(wp_redirect(admin_url('admin.php?page=ultp-settings')));
271 }
272 }
273
274
275 /**
276 * Require Blocks
277 *
278 * @since v.1.0.0
279 * @return NULL
280 */
281 public function blocks() {
282 global $unique_ID;
283 $setting = ultimate_post()->get_setting();
284 if (!isset($setting['post_list_1']) || $setting['post_list_1'] == 'yes') {
285 require_once ULTP_PATH.'blocks/Post_List_1.php';
286 $this->all_blocks['ultimate-post_post-list-1'] = new \ULTP\blocks\Post_List_1();
287 }
288 if (!isset($setting['post_list_2']) || $setting['post_list_2'] == 'yes') {
289 require_once ULTP_PATH.'blocks/Post_List_2.php';
290 $this->all_blocks['ultimate-post_post-list-2'] = new \ULTP\blocks\Post_List_2();
291 }
292 if (!isset($setting['post_list_3']) || $setting['post_list_3'] == 'yes') {
293 require_once ULTP_PATH.'blocks/Post_List_3.php';
294 $this->all_blocks['ultimate-post_post-list-3'] = new \ULTP\blocks\Post_List_3();
295 }
296 if (!isset($setting['post_list_4']) || $setting['post_list_4'] == 'yes') {
297 require_once ULTP_PATH.'blocks/Post_List_4.php';
298 $this->all_blocks['ultimate-post_post-list-4'] = new \ULTP\blocks\Post_List_4();
299 }
300 if (!isset($setting['post_grid_1']) || $setting['post_grid_1'] == 'yes') {
301 require_once ULTP_PATH.'blocks/Post_Grid_1.php';
302 $this->all_blocks['ultimate-post_post-grid-1'] = new \ULTP\blocks\Post_Grid_1();
303 }
304 if (!isset($setting['post_grid_2']) || $setting['post_grid_2'] == 'yes') {
305 require_once ULTP_PATH.'blocks/Post_Grid_2.php';
306 $this->all_blocks['ultimate-post_post-grid-2'] = new \ULTP\blocks\Post_Grid_2();
307 }
308 if (!isset($setting['post_grid_3']) || $setting['post_grid_3'] == 'yes') {
309 require_once ULTP_PATH.'blocks/Post_Grid_3.php';
310 $this->all_blocks['ultimate-post_post-grid-3'] = new \ULTP\blocks\Post_Grid_3();
311 }
312 if (!isset($setting['post_grid_4']) || $setting['post_grid_4'] == 'yes') {
313 require_once ULTP_PATH.'blocks/Post_Grid_4.php';
314 $this->all_blocks['ultimate-post_post-grid-4'] = new \ULTP\blocks\Post_Grid_4();
315 }
316 if (!isset($setting['post_grid_5']) || $setting['post_grid_5'] == 'yes') {
317 require_once ULTP_PATH.'blocks/Post_Grid_5.php';
318 $this->all_blocks['ultimate-post_post-grid-5'] = new \ULTP\blocks\Post_Grid_5();
319 }
320 if (!isset($setting['post_grid_6']) || $setting['post_grid_6'] == 'yes') {
321 require_once ULTP_PATH.'blocks/Post_Grid_6.php';
322 $this->all_blocks['ultimate-post_post-grid-6'] = new \ULTP\blocks\Post_Grid_6();
323 }
324 if (!isset($setting['post_grid_7']) || $setting['post_grid_7'] == 'yes') {
325 require_once ULTP_PATH.'blocks/Post_Grid_7.php';
326 $this->all_blocks['ultimate-post_post-grid-7'] = new \ULTP\blocks\Post_Grid_7();
327 }
328 if (!isset($setting['post_slider_1']) || $setting['post_slider_1'] == 'yes') {
329 require_once ULTP_PATH.'blocks/Post_Slider_1.php';
330 $this->all_blocks['ultimate-post_post-slider-1'] = new \ULTP\blocks\Post_Slider_1();
331 }
332 if (!isset($setting['post_module_1']) || $setting['post_module_1'] == 'yes') {
333 require_once ULTP_PATH.'blocks/Post_Module_1.php';
334 $this->all_blocks['ultimate-post_post-module-1'] = new \ULTP\blocks\Post_Module_1();
335 }
336 if (!isset($setting['post_module_2']) || $setting['post_module_2'] == 'yes') {
337 require_once ULTP_PATH.'blocks/Post_Module_2.php';
338 $this->all_blocks['ultimate-post_post-module-2'] = new \ULTP\blocks\Post_Module_2();
339 }
340 if (!isset($setting['heading']) || $setting['heading'] == 'yes') {
341 require_once ULTP_PATH.'blocks/Heading.php';
342 $this->all_blocks['ultimate-post_heading'] = new \ULTP\blocks\Heading();
343 }
344 if (!isset($setting['image']) || $setting['image'] == 'yes') {
345 require_once ULTP_PATH.'blocks/Image.php';
346 $this->all_blocks['ultimate-post_image'] = new \ULTP\blocks\Image();
347 }
348 if (!isset($setting['taxonomy']) || $setting['taxonomy'] == 'yes') {
349 require_once ULTP_PATH.'blocks/Taxonomy.php';
350 $this->all_blocks['ultimate-post_ultp-taxonomy'] = new \ULTP\blocks\Taxonomy();
351 }
352
353 if (!isset($setting['news_ticker']) || $setting['news_ticker'] == 'yes') {
354 require_once ULTP_PATH.'blocks/News_Ticker.php';
355 $this->all_blocks['ultimate-post_news-ticker'] = new \ULTP\blocks\News_Ticker();
356 }
357
358 require_once ULTP_PATH.'blocks/Archive_Title.php';
359 $this->all_blocks['ultimate-post_archive-title'] = new \ULTP\blocks\Archive_Title();
360 }
361
362
363 /**
364 * Necessary Requires Class
365 *
366 * @since v.1.0.0
367 * @return NULL
368 */
369 public function requires() {
370 require_once ULTP_PATH.'classes/Notice.php';
371 require_once ULTP_PATH.'classes/Styles.php';
372 require_once ULTP_PATH.'classes/Options.php';
373 require_once ULTP_PATH.'classes/REST_API.php';
374 require_once ULTP_PATH.'classes/Caches.php';
375 new \ULTP\REST_API();
376 new \ULTP\Caches();
377 new \ULTP\Options();
378 new \ULTP\Styles();
379 new \ULTP\Notice();
380
381 require_once ULTP_PATH.'classes/Deactive.php';
382 new \ULTP\Deactive();
383 }
384
385
386 /**
387 * Block Categories Initialization
388 *
389 * @since v.1.0.0
390 * @param $categories(ARRAY) | $post (ARRAY)
391 * @return NULL
392 */
393 public function register_category_callback( $categories, $post ) {
394 return array_merge(
395 array(
396 array(
397 'slug' => 'ultimate-post',
398 'title' => __( 'PostX - Gutenberg Post Blocks', 'ultimate-post' )
399 )
400 ), $categories
401 );
402 }
403
404
405 /**
406 * Post View Counter for Every Post
407 *
408 * @since v.1.0.0
409 * @param NUMBER | Post ID
410 * @return NULL
411 */
412 public function popular_posts_tracker_callback($post_id) {
413 if (!is_single()){ return; }
414 global $post;
415 $post_id = $post->ID;
416 $isEnable = apply_filters('ultp_view_cookies', true);
417 if ($post_id && $isEnable) {
418 $has_cookie = isset( $_COOKIE['ultp_view_'.$post_id] ) ? $_COOKIE['ultp_view_'.$post_id] : false;
419 if (!$has_cookie) {
420 $count = (int)get_post_meta( $post_id, '__post_views_count', true );
421 update_post_meta($post_id, '__post_views_count', $count ? (int)$count + 1 : 1 );
422 setcookie( 'ultp_view_'.$post_id, 1, time() + 86400, COOKIEPATH ); // 1 days cookies
423 }
424 }
425 }
426
427
428 /**
429 * Set Image Size
430 *
431 * @since v.1.0.0
432 * @return NULL
433 */
434 public function add_image_size() {
435 $size_disable = ultimate_post()->get_setting('disable_image_size');
436 if ($size_disable != 'yes') {
437 add_image_size('ultp_layout_landscape_large', 1200, 800, true);
438 add_image_size('ultp_layout_landscape', 870, 570, true);
439 add_image_size('ultp_layout_portrait', 600, 900, true);
440 add_image_size('ultp_layout_square', 600, 600, true);
441 }
442 }
443
444
445 /**
446 * Include Addons Directory
447 *
448 * @since v.1.0.0
449 * @return NULL
450 */
451 public function include_addons() {
452 $addons_dir = array_filter(glob(ULTP_PATH.'addons/*'), 'is_dir');
453 if (count($addons_dir) > 0) {
454 foreach( $addons_dir as $key => $value ) {
455 $addon_dir_name = str_replace(dirname($value).'/', '', $value);
456 $file_name = ULTP_PATH . 'addons/'.$addon_dir_name.'/init.php';
457 if ( file_exists($file_name) ) {
458 include_once $file_name;
459 }
460 }
461 }
462 }
463
464
465 /**
466 * Addon Callback
467 *
468 * @since v.1.0.0
469 * @return STRING
470 */
471 public function ultp_addon_callback() {
472 if (!wp_verify_nonce($_REQUEST['wpnonce'], 'ultp-nonce') && $local){
473 return ;
474 }
475 $addon_name = sanitize_text_field($_POST['addon']);
476 $addon_value = sanitize_text_field($_POST['value']);
477 if ($addon_name && current_user_can('administrator')) {
478 $addon_data = ultimate_post()->get_setting();
479 $addon_data[$addon_name] = $addon_value;
480 $GLOBALS['ultp_settings'][$addon_name] = $addon_value;
481 update_option('ultp_options', $addon_data);
482 }
483 }
484
485
486 /**
487 * Next Preview Callback of the Blocks
488 *
489 * @since v.1.0.0
490 * @return STRING
491 */
492 public function ultp_next_prev_callback() {
493 if (!wp_verify_nonce($_REQUEST['wpnonce'], 'ultp-nonce') && $local){
494 return ;
495 }
496
497 $paged = sanitize_text_field($_POST['paged']);
498 $blockId = sanitize_text_field($_POST['blockId']);
499 $postId = sanitize_text_field($_POST['postId']);
500 $blockRaw = sanitize_text_field($_POST['blockName']);
501 $builder = isset($_POST['builder']) ? sanitize_text_field($_POST['builder']) : '';
502
503 $blockName = str_replace('_','/', $blockRaw);
504
505 if( $paged && $blockId && $postId && $blockName ) {
506 $post = get_post($postId);
507 if (has_blocks($post->post_content)) {
508 $blocks = parse_blocks($post->post_content);
509 $this->block_return($blocks, $paged, $blockId, $blockRaw, $blockName, $builder, $postId);
510 }
511 }
512 }
513
514
515 /**
516 * Filter Callback of the Blocks
517 *
518 * @since v.1.0.0
519 * @return STRING
520 */
521 public function filter_block_return($blocks, $blockId, $blockRaw, $blockName, $taxtype, $taxonomy) {
522 foreach ($blocks as $key => $value) {
523 if($blockName == $value['blockName']) {
524 if($value['attrs']['blockId'] == $blockId) {
525 $attr = $this->all_blocks[$blockRaw]->get_attributes(true);
526 if($taxonomy) {
527 $value['attrs']['queryTaxValue'] = json_encode(array($taxonomy));
528 $value['attrs']['queryTax'] = $taxtype;
529 }
530 if(isset($value['attrs']['queryNumber'])){
531 $value['attrs']['queryNumber'] = $value['attrs']['queryNumber'];
532 }
533 $attr = array_merge($attr, $value['attrs']);
534 echo $this->all_blocks[$blockRaw]->content($attr, true);
535 die();
536 }
537 }
538 if(!empty($value['innerBlocks'])){
539 $this->filter_block_return($value['innerBlocks'], $blockId, $blockRaw, $blockName, $taxtype, $taxonomy);
540 }
541 }
542 }
543
544
545 /**
546 * Filter Callback of the Blocks
547 *
548 * @since v.1.0.0
549 * @return STRING
550 */
551 public function ultp_filter_callback() {
552 if (!wp_verify_nonce($_REQUEST['wpnonce'], 'ultp-nonce') && $local){
553 return ;
554 }
555
556 $taxtype = sanitize_text_field($_POST['taxtype']);
557 if( $taxtype ) {
558 $blockId = sanitize_text_field($_POST['blockId']);
559 $postId = sanitize_text_field($_POST['postId']);
560 $taxonomy = sanitize_text_field($_POST['taxonomy']);
561 $blockRaw = sanitize_text_field($_POST['blockName']);
562 $blockName = str_replace('_','/', $blockRaw);
563 $post = get_post($postId);
564 if (has_blocks($post->post_content)) {
565 $blocks = parse_blocks($post->post_content);
566 $this->filter_block_return($blocks, $blockId, $blockRaw, $blockName, $taxtype, $taxonomy);
567 }
568 }
569 }
570
571
572 /**
573 * Pagination of the Blocks
574 *
575 * @since v.1.0.0
576 * @return STRING
577 */
578 public function ultp_pagination_callback() {
579 if (!wp_verify_nonce($_REQUEST['wpnonce'], 'ultp-nonce') && $local) {
580 return ;
581 }
582
583 $paged = sanitize_text_field($_POST['paged']);
584 if($paged) {
585 $blockId = sanitize_text_field($_POST['blockId']);
586 $postId = sanitize_text_field($_POST['postId']);
587 $blockRaw = sanitize_text_field($_POST['blockName']);
588 $builder = isset($_POST['builder']) ? sanitize_text_field($_POST['builder']) : '';
589 $blockName = str_replace('_','/', $blockRaw);
590 $post = get_post($postId);
591 if (has_blocks($post->post_content)) {
592 $blocks = parse_blocks($post->post_content);
593 $this->block_return($blocks, $paged, $blockId, $blockRaw, $blockName, $builder, $postId);
594 }
595 }
596 }
597
598
599 /**
600 * Blocks Content Start
601 *
602 * @since v.1.0.0
603 * @return STRING
604 */
605 public function block_return($blocks, $paged, $blockId, $blockRaw, $blockName, $builder, $postId) {
606 foreach ($blocks as $key => $value) {
607 if($blockName == $value['blockName']) {
608 if($value['attrs']['blockId'] == $blockId) {
609 $attr = $this->all_blocks[$blockRaw]->get_attributes(true);
610 $value['attrs']['paged'] = $paged;
611 if ($builder) {
612 $value['attrs']['builder'] = $builder;
613 }
614 if ($postId) {
615 $attr['current_post'] = $postId;
616 }
617 $attr = array_merge($attr, $value['attrs']);
618 echo $this->all_blocks[$blockRaw]->content($attr, true);
619 die();
620 }
621 }
622 if(!empty($value['innerBlocks'])){
623 $this->block_return($value['innerBlocks'], $paged, $blockId, $blockRaw, $blockName, $builder, $postId);
624 }
625 }
626 }
627
628 }