File "class-helpers.php"

Full path: /home/dora/public_html/wp-content/plugins/wp-grid-builder-bricks/includes/class-helpers.php
File size: 1.46 KB
MIME-type: --
Charset: utf-8

<?php
/**
 * Helpers
 *
 * @package   WP Grid Builder - Bricks
 * @author    Loïc Blascos
 * @copyright 2019-2022 Loïc Blascos
 */

namespace WP_Grid_Builder_Bricks\Includes;

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Helpers
 *
 * @trait WP_Grid_Builder_Bricks\Includes\Helpers
 * @since 1.0.0
 */
trait Helpers {

	/**
	 * Whether it is the builder (Ajax requests)
	 *
	 * @since 1.0.0
	 * @access public
	 *
	 * @return boolean
	 */
	public function is_builder() {

		if ( bricks_is_builder() ) {
			return true;
		}

		$path = wp_parse_url( wp_get_referer() );

		if ( empty( $path['query'] ) ) {
			return false;
		}

		wp_parse_str( $path['query'], $output );

		if ( ! isset( $output['bricks'] ) ) {
			return false;
		}

		return 'run' === $output['bricks'];

	}

	/**
	 * Get bricks data from post ID
	 *
	 * @since 1.0.0
	 * @access public
	 *
	 * @param integer $post_id Post ID of the template to retrieve.
	 * @return array
	 */
	public function get_bricks_data( $post_id ) {

		if ( empty( $post_id ) ) {
			return [];
		}

		if (
			! defined( 'BRICKS_DB_PAGE_HEADER' ) ||
			! defined( 'BRICKS_DB_PAGE_CONTENT' ) ||
			! defined( 'BRICKS_DB_PAGE_FOOTER' )
		) {
			return [];
		}

		return array_filter(
			array_merge(
				(array) get_post_meta( $post_id, BRICKS_DB_PAGE_HEADER, true ),
				(array) get_post_meta( $post_id, BRICKS_DB_PAGE_CONTENT, true ),
				(array) get_post_meta( $post_id, BRICKS_DB_PAGE_FOOTER, true )
			)
		);
	}
}