check_post(); // Add the shortcodes // TODO : Make a json file add_action('wp_head', array($this, 'wp_head'), 999); // Add the Body Class Filter //add_filter('body_class', array($this, 'body_class')); // Add the content handler add_filter('the_content', array($this, 'the_content'), 999999); // Skip do_blocks for invalid blocks add_filter( 'pre_render_block', array($this, 'pre_do_render_block'), 10, 3 ); // Skip do_shortcode for invalid shortcodes add_filter( 'pre_do_shortcode_tag', array($this, 'pre_do_shortcode_tag'), 10, 4 ); // Build the Shortcodes MD5 for cache $scmd5 = md5(json_encode($pagelayer->shortcodes).json_encode($pagelayer->groups).json_encode($pagelayer->styles)); $premium_js = apply_filters('pagelayer_editor_give_js', ''); $premium_css = apply_filters('pagelayer_editor_give_css', ''); // Enqueue our Editor's JS wp_register_script('pagelayer-editor', admin_url( 'admin-ajax.php?action=pagelayer_givejs' ).'&give=pagelayer-editor.js,widgets.js,properties.js,base-64.min.js,slimscroll.js,vanilla-picker.min.js,trumbowyg.js,trumbowyg.fontfamily.js,trumbowyg-pagelayer.js,tlite.min.js,pagelayer-pen.js'.$premium_js.'&pagelayer_nonce=1&scmd5='.$scmd5, array('jquery'), PAGELAYER_VERSION); wp_enqueue_script('pagelayer-editor'); $css_url = admin_url('admin-ajax.php?action=pagelayer_givecss&pagelayer_nonce=1&'); if(pagelayer_enable_giver()){ $css_url = PAGELAYER_CSS.'/givecss.php?'; } // Enqueue the Editor's CSS wp_register_style('pagelayer-editor', $css_url.'give=pagelayer-editor-frontend.css,pagelayer-pen.css,'.(defined('PAGELAYER_PREMIUM') ? ',owl.theme.default.min.css,owl.carousel.min.css' : '').$premium_css, array(), PAGELAYER_VERSION); wp_enqueue_style('pagelayer-editor'); // Enqueue the DateTime picker CSS /* wp_register_style('datetime-picker', PAGELAYER_CSS.'/datetime-picker.css', array(), PAGELAYER_VERSION); wp_enqueue_style('datetime-picker'); */ // Enqueue the media library if(!did_action('wp_enqueue_media')){ wp_enqueue_media(); } // Force the Frontend CSS and JS if not already loaded pagelayer_enqueue_frontend(true); // Hide Admin Bar show_admin_bar(false); remove_action('wp_head', '_admin_bar_bump_cb'); // Load custom widgets do_action('pagelayer_custom_editor_enqueue'); // Add the footer scripts add_action('wp_footer', array($this, 'wp_footer'), 1); } // Add our body class function body_class($classes){ return array_merge($classes, array('pagelayer-body')); } // Header function to add certain things function wp_head(){ global $pagelayer, $post, $wp_query, $_wp_post_type_features; // Export the post props $_post = clone $post; unset($_post->post_content); // Add template type if(!empty($pagelayer->template_editor)){ $_post->pagelayer_template_type = get_post_meta($_post->ID, 'pagelayer_template_type', true); } $returnURL = ($_post->post_type == 'post' ? admin_url('edit.php') : admin_url('edit.php?post_type='.$_post->post_type) ); // Get CAPTCHA site key $pagelayer_recaptch_site_key = get_option('pagelayer_google_captcha'); $pro_url = defined('POPULARFX_PRO_URL') ? POPULARFX_PRO_URL : PAGELAYER_PRO_PRICE_URL; $pro_txt = defined('POPULARFX_PRO_URL') ? 'PopularFX Pro' : 'Pagelayer Pro'; $post_type = get_post_type_object($post->post_type); $post_type_name = (!empty($post_type->labels->singular_name)) ? $post_type->labels->singular_name : ucfirst($post_type->name); // Create list of nav menus and it's items list $pagelayer_menus_items_list = array(); $menus = wp_get_nav_menus(); foreach($menus as $menu){ if(!is_nav_menu($menu)){ continue; } $pagelayer_menus_items_list[$menu->term_id] = wp_get_nav_menu_items($menu->term_id, array('post_status' => 'any')); } echo ' '; echo ''; do_action('pagelayer_editor_wp_head'); } // Footer function to add certain things function wp_footer(){ global $pagelayer; echo ''; wp_enqueue_script('heartbeat'); _wp_footer_scripts(); } // Convert to Pagelayer post function check_post(){ global $post; // Is this a Pagelayer post $data = get_post_meta($post->ID, 'pagelayer-data', true); if(empty($data)){ // Is it a Gutenburg Post ? if(!empty($post->post_content)){ // Add our surrounding tag $post->post_content = ' '.$post->post_content.' '; // Regular post, but its empty so we will add our blocks ! }else{ // Add our surrounding tag $post->post_content = ' '; // Update the post $new_post = array( 'ID' => $post->ID, 'post_content' => $post->post_content, ); // Update the post into the database wp_update_post($new_post); // Convert to pagelayer accessed post if(!add_post_meta($post->ID, 'pagelayer-data', time(), true)){ update_post_meta($post->ID, 'pagelayer-data', time()); } } } } // Add certain things function the_content($content) { global $post, $pagelayer; if(empty($pagelayer->dont_make_editable)){ $content = '