HEX
Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/7.4.30
System: Linux iZj6c1151k3ad370bosnmsZ 3.10.0-1160.76.1.el7.x86_64 #1 SMP Wed Aug 10 16:21:17 UTC 2022 x86_64
User: root (0)
PHP: 7.4.30
Disabled: NONE
Upload Files
File: /var/www/html/breadsecret.com/wp-content/themes/zeen/inc/builder/app/class-application.php
<?php
/**
 * Builder
 *
 * @package    Zeen
 * @copyright  Copyright Codetipi
 * @since      1.0.0
*/
namespace TipiBuilder;

class ZeenBuilder {

	/**
	 * Var for setup.
	 *
	 * @since    1.0.0
	 */
	private $zeen_setup;

	/**
	 * Constructor
	 *
	 * @since 1.0.0
	 *
	*/
	public function __construct() {

		add_action( 'wp_restore_post_revision', array( $this, 'zeen_wp_restore_post_revision' ), 10, 2 );
		add_filter( '_wp_post_revision_fields', array( $this, 'zeen_wp_post_revision_fields' ) );
		add_filter( '_wp_post_revision_field_my_meta', array( $this, 'zeen_builder_revision_field' ), 10, 2 );
		add_action( 'save_post', array( $this, 'zeen_builder_save_post' ), 10, 3 );

		if ( ZeenHelpers::zeen_builder_call() != true ) {
			return;
		}
		add_filter( 'autoptimize_filter_noptimize', '__return_true', 10, 0 );
		add_filter( 'wpel_apply_settings', '__return_false' );
		add_action( 'wp_enqueue_scripts', array( $this, 'zeen_scripts' ) );
		add_filter( 'ajax_query_attachments_args', array( $this, 'zeen_ajax_query' ) );
		add_action( 'send_headers', array( $this, 'zeen_cache' ) );
		add_filter( 'body_class', array( $this, 'zeen_b_body_classes' ) );
		add_filter( 'pre_get_document_title', array( $this, 'zeen_doc_title' ) );
		add_action( 'template_redirect', array( $this, 'zeen_init' ) );
		add_filter( 'run_ngg_resource_manager', '__return_false' );
		add_filter( 'FHEE__EE_System__canLoadBlocks', '__return_false' );
		add_filter( 'gform_disable_print_form_scripts', '__return_true' );
		add_filter( 'wp_anti_clickjack', '__return_false' );
		define( 'NGG_DISABLE_RESOURCE_MANAGER', true );
	}

	public function zeen_doc_title( $title ) {
		if ( is_post_type_archive() ) {
			$title = post_type_archive_title( '', false );
		} elseif ( is_tax() ) {
			$title = single_term_title( '', false );
		} elseif ( is_home() || is_singular() ) {
			$title = single_post_title( '', false );
		} elseif ( is_category() || is_tag() ) {
			$title = single_term_title( '', false );
		}
		return 'Tipi Builder | ' . $title;
	}


	public function zeen_b_body_classes( $classes ) {
		$classes[] = 'is-tipi-builder';
		return $classes;
	}

	/**
	 * Init
	 *
	 * @since 1.0.0
	 */
	public function zeen_init() {
		require ZEEN_BUILDER_DIR . '/app/frontend/frontend.php';
		die();
	}

	/**
	 * cache
	 *
	 * @since 1.0.0
	 */
	public function zeen_cache() {
		if ( ZeenHelpers::zeen_builder_call() == true ) {
			header( 'Cache-Control: no-cache, no-store, must-revalidate' );
			header( 'Pragma: no-cache' );
			header( 'Expires: 0' );
			define( 'DONOTCACHEDB', true );
			define( 'DONOTCACHEPAGE', true );
			define( 'DONOTCACHCEOBJECT', true );
			define( 'LSCACHE_NO_CACHE', true );
		}
	}

	/**
	 * Scripts
	 *
	 * @since 1.0.0
	 */
	public function zeen_scripts() {
		wp_enqueue_media();

		wp_enqueue_style( 'zeen-builder-style', ZEEN_BUILDER_URI . '/assets/css/builder-style.css', array(), ZEEN_BUILDER_VERSION );
		wp_enqueue_style( 'zeen-builder-icons', ZEEN_BUILDER_URI . '/assets/css/fonts/builder-icons.css', array(), ZEEN_BUILDER_VERSION );
		wp_enqueue_style( 'zeen-builder-font', 'https://fonts.googleapis.com/css?family=Montserrat:400,400i,700', array(), ZEEN_BUILDER_VERSION );
		wp_enqueue_script( 'zeen-dep', ZEEN_BUILDER_URI . '/app/core/assets/vendor.js', array(), ZEEN_BUILDER_VERSION, true );
		wp_enqueue_script( 'zeen-main', ZEEN_BUILDER_URI . '/app/core/assets/main.js', array( 'zeen-dep', 'zeen-functions' ), ZEEN_BUILDER_VERSION, true );

		$term = ZeenHelpers::zeen_active_id();
		if ( 'page' == $term['type'] ) {
			$type      = 'page';
			$taxonomy  = 'page';
			$id        = $term['id'];
			$editor    = get_edit_post_link( $id );
			$permalink = get_permalink( $id );
			$fonts     = get_post_meta( $id, 'tipi_builder_fonts', true );
			$is_page   = true;
		} else {
			$type      = 'term';
			$id        = $term['id'];
			$taxonomy  = $term['tax'];
			$editor    = get_edit_term_link( $id, $taxonomy );
			$permalink = get_term_link( $id, $taxonomy );
			$fonts     = get_term_meta( $id, 'tipi_builder_fonts', true );
			$is_page   = '';
		}

		$i18n      = ZeenI18n::zeen_i18n();
		$data      = ZeenHelpers::zeen_js_data( $taxonomy, $id );
		$templates = ZeenHelpers::zeen_templates();

		$frame_permalink = add_query_arg(
			array(
				'tipi_builder_frame' => 1,
			),
			$permalink
		);

		wp_localize_script(
			'zeen-main',
			'zeenB',
			array(
				'type'            => $type,
				'id'              => $id,
				'taxonomy'        => $taxonomy,
				'permalink'       => esc_url( $permalink ),
				'editor'          => esc_url( $editor ),
				'frame_permalink' => esc_url( $frame_permalink ),
				'root'            => esc_url_raw( rest_url() ) . 'codetipi-tipi-builder/v1/',
				'nonce'           => wp_create_nonce( 'wp_rest' ),
				'blockImgs'       => zeen_customizer_blocks( true, array(), array( 'type' => $is_page ) ),
				'i18n'            => $i18n,
				'templates'       => $templates,
				'data'            => $data,
			)
		);

	}

	/**
	 * Attachment Query Safe check
	 *
	 * @since 1.0.0
	 */
	public function zeen_ajax_query( $query ) {
		if ( ! current_user_can( 'edit_posts' ) ) {
			return;
		}
		return $query;
	}

	public function zeen_builder_save_post( $post_id, $post, $update ) {

		$parent_id = wp_is_post_revision( $post_id );

		if ( $parent_id ) {

			$parent            = get_post( $parent_id );
			$tipi_builder_data = get_post_meta( $parent->ID, 'tipi_builder_data', true );

			if ( false !== $tipi_builder_data ) {
				add_metadata( 'post', $post_id, 'tipi_builder_data', $tipi_builder_data );
			}
		}

	}
	public function zeen_wp_restore_post_revision( $post_id, $revision_id ) {
		$revision          = get_post( $revision_id );
		$tipi_builder_data = get_metadata( 'post', $revision->ID, 'tipi_builder_data', true );

		if ( false !== $tipi_builder_data ) {
			update_post_meta( $post_id, 'tipi_builder_data', $tipi_builder_data );
		} else {
			delete_post_meta( $post_id, 'tipi_builder_data' );
		}

	}
	public function zeen_wp_post_revision_fields( $fields ) {

		$fields['tipi_builder_data'] = 'Tipi Builder';
		return $fields;

	}

	public function zeen_builder_revision_field( $value, $field ) {

		global $revision;
		return get_metadata( 'post', $revision->ID, $field, true );

	}

}

new ZeenBuilder();