# shopbuilder/1.1.0/app/Helpers/BuilderFns.php

ShopBuilder – WooCommerce Builder For Elementor, version 1.1.0. 367 lines.

- Page: https://pluginprobe.com/plugins/shopbuilder/1.1.0/code/app/Helpers/BuilderFns.php
- Raw: https://pluginprobe.com/plugins/shopbuilder/1.1.0/raw/app/Helpers/BuilderFns.php
- Modified: 2023-04-10T06:54:32+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/shopbuilder/1.1.0/code/app/Helpers/BuilderFns.php#L10-L20`.

```php
<?php
/**
 * BuilderFns class
 *
 * The  builder.
 *
 * @package  RadiusTheme\SB
 * @since    1.0.0
 */

namespace RadiusTheme\SB\Helpers;

// Do not allow directly accessing this file.
if ( ! defined( 'ABSPATH' ) ) {
	exit( 'This script cannot be accessed directly.' );
}

/**
 * BuilderFns class
 */
class BuilderFns {

	/**
	 * Template builder post type
	 *
	 * @var string
	 */
	public static $post_type_tb = 'rtsb_builder';
	/**
	 * Template builder
	 *
	 * @var string
	 */
	public static $template_meta = 'rtsb_tb_template';
	/**
	 * Template builder
	 *
	 * @var string
	 */
	public static $product_template_meta = 'rtsb_selected_product_template';

	/**
	 * Page builder id.
	 *
	 * @return init
	 */
	public static function builder_page_id_by_type( $type ) {
		if ( array_key_exists( $type, self::builder_page_types() ) ) {
			$post_id = get_option( self::option_name( $type ) );
			if ( 'publish' === get_post_status( $post_id ) && self::builder_type( $post_id ) === $type ) {
				return $post_id;
			}
		}
		return 0;
	}

	/**
	 * Page builder id.
	 *
	 * @return init
	 */
	public static function builder_page_id_by_page() {
		$type = apply_filters( 'rtsb/builder/set/current/page/type', '' );
		return self::builder_page_id_by_type( $type );
	}
	/**
	 * Page builder Page for.
	 *
	 * @return array
	 */
	public static function builder_page_types() {
		$page_types = [
			'shop'     => esc_html__( 'Shop', 'shopbuilder' ),
			'archive'  => esc_html__( 'Archive', 'shopbuilder' ),
			'product'  => esc_html__( 'Product Page', 'shopbuilder' ),
			'cart'     => esc_html__( 'Cart', 'shopbuilder' ),
			'checkout' => esc_html__( 'Checkout', 'shopbuilder' ),
		];
		return apply_filters( 'rtsb/builder/page/types', $page_types );
	}

	/**
	 * Option name.
	 *
	 * @param string $type Builder type.
	 * @return string
	 */
	public static function option_name( $type ) {
		$type = str_replace( [ '-', ' ' ], '_', $type );
		return self::$template_meta . '_default_' . $type;
	}
	/**
	 * Option name.
	 *
	 * @param string $type Builder type.
	 * @return string
	 */
	/*
	public static function option_name_by_product_id( $type, $product_id ) {
		return self::option_name($type) . '_' . $product_id ;
	}
	*/
	/**
	 * Template builder
	 *
	 * @var string
	 */
	public static function template_type_meta_key() {
		return self::$template_meta . '_type';
	}
	/**
	 * Get builder type.
	 *
	 * @param [type] $post_id Post id.
	 * @return string
	 */
	public static function builder_type( $post_id ) {
		return get_post_meta( $post_id, self::template_type_meta_key(), true );
	}
	/**
	 * Template builder
	 *
	 * @var boolean
	 */
	public static function is_builder_preview() {
		return is_singular( self::$post_type_tb );
	}
	/**
	 * Template builder
	 *
	 * @var boolean
	 */
	public static function is_archive() {
		return self::is_page_builder( 'archive', is_product_taxonomy() );
	}
	/**
	 * Template builder
	 *
	 * @var boolean
	 */
	public static function is_shop() {
		return self::is_page_builder( 'shop', is_shop() );
	}
	/**
	 * Template builder
	 *
	 * @var boolean
	 */
	public static function is_cart() {
		return self::is_page_builder( 'cart', is_cart() );
	}
	/**
	 * Template builder
	 *
	 * @var boolean
	 */
	public static function is_checkout() {
		return self::is_page_builder( 'checkout', is_checkout() && ! is_wc_endpoint_url() && ! is_order_received_page() );
	}
	/**
	 * Single Page builder Detection
	 *
	 * @return boolean
	 */
	public static function is_product() {
		return self::is_page_builder( 'product', is_product() );
	}
	/**
	 * Builder page detector.
	 *
	 * @param string  $type builder Page type.
	 * @param boolean $is_page page status.
	 * @return boolean
	 */
	public static function is_page_builder( $type, $is_page ) {
		$builder_id   = self::builder_page_id_by_type( $type );
		$builder_type = self::builder_type( $builder_id );
		$type_status  = $type === $builder_type; // Ticket issue.
		if ( self::builder_type( get_the_ID() ) === $type || ( $type_status && $is_page ) ) {
			return true;
		}
		return false;
	}

	/**
	 * Get builder content function
	 *
	 * @param [type]  $template_id builder Template id.
	 * @param boolean $with_css with css.
	 * @return mixed
	 */
	public static function get_builder_content( $template_id, $with_css = false ) {
		return \Elementor\Plugin::instance()->frontend->get_builder_content_for_display( $template_id, $with_css );
	}

	/**
	 * Page builder Page for.
	 *
	 * @return array
	 */
	public static function default_layout() {
		$demo_root_url = 'https://shopbuilderwp.com';
		$page_layout   = [
			'default'  => [
				[
					'text_label' => __( 'Blank', 'shopbuilder' ),
					'image'      => rtsb()->get_assets_uri( 'images/layout-preview/placeholder.png' ),
				],
			],
			'product'  => [
				[
					'text_label'   => __( 'Product Layout 1', 'shopbuilder' ),
					'image'        => rtsb()->get_assets_uri( 'images/layout-preview/product-single-demo-1.jpg' ),
					'live_preview' => $demo_root_url . '/rtsb-template/product-single-demo-1/',
					'import_file'  => '/sample-layout/products/product-single-demo-1.json',
				],
				[
					'text_label'   => __( 'Product Layout 2', 'shopbuilder' ),
					'image'        => rtsb()->get_assets_uri( 'images/layout-preview/product-single-demo-2.jpg' ),
					'live_preview' => $demo_root_url . '/rtsb-template/product-single-demo-2',
					'import_file'  => '/sample-layout/products/product-single-demo-2.json',
				],
				[
					'text_label'   => __( 'Product Layout 3', 'shopbuilder' ),
					'image'        => rtsb()->get_assets_uri( 'images/layout-preview/product-single-demo-3.jpg' ),
					'live_preview' => $demo_root_url . '/rtsb-template/product-single-demo-3/',
					'import_file'  => '/sample-layout/products/product-single-demo-3.json',
				],
				[
					'text_label'   => __( 'Product Layout 4', 'shopbuilder' ),
					'image'        => rtsb()->get_assets_uri( 'images/layout-preview/product-single-demo-4.jpg' ),
					'live_preview' => $demo_root_url . '/rtsb-template/product-single-demo-4/',
					'import_file'  => '/sample-layout/products/product-single-demo-4.json',
				],
				[
					'text_label'   => __( 'Product Layout 5', 'shopbuilder' ),
					'image'        => rtsb()->get_assets_uri( 'images/layout-preview/product-single-demo-5.jpg' ),
					'live_preview' => $demo_root_url . '/rtsb-template/product-single-demo-5/',
					'import_file'  => '/sample-layout/products/product-single-demo-5.json',
				],

			],
			'shop'     => [
				[
					'text_label'   => __( 'Shop – Theme Default', 'shopbuilder' ),
					'image'        => rtsb()->get_assets_uri( 'images/layout-preview/shop-theme-default.jpg' ),
					'live_preview' => $demo_root_url . '/shop/',
					'import_file'  => '/sample-layout/shop/shop-theme-default.json',
				],
				[
					'text_label'   => __( 'Shop – Left Sidebar', 'shopbuilder' ),
					'image'        => rtsb()->get_assets_uri( 'images/layout-preview/shop-left-sidebar.jpg' ),
					'live_preview' => $demo_root_url . '/rtsb-template/shop-left-sidebar-shop-builder-custom/',
					'import_file'  => '/sample-layout/shop/shop-left-sidebar.json',
				],
				[
					'text_label'   => __( 'Shop - Custom Layout 1', 'shopbuilder' ),
					'image'        => rtsb()->get_assets_uri( 'images/layout-preview/shop-custom-layout-1.jpg' ),
					'live_preview' => $demo_root_url . '/rtsb-template/shop-builder-custom-layout-1/',
					'import_file'  => '/sample-layout/shop/shop-custom-layout-1.json',
				],
				[
					'text_label'   => __( 'Shop - Custom Layout 2', 'shopbuilder' ),
					'image'        => rtsb()->get_assets_uri( 'images/layout-preview/shop-custom-layout-2.jpg' ),
					'live_preview' => $demo_root_url . '/rtsb-template/shop-builder-custom-layout-2/',
					'import_file'  => '/sample-layout/shop/shop–builder-custom-layout-2.json',
				],
				[
					'text_label'   => __( 'Shop - List View 1', 'shopbuilder' ),
					'image'        => rtsb()->get_assets_uri( 'images/layout-preview/shop-custom-layout-list-view-1.jpg' ),
					'live_preview' => $demo_root_url . '/rtsb-template/shop-builder-custom-layout-list-view-1/',
					'import_file'  => '/sample-layout/shop/shop-custom-layout-list-view-1.json',
				],
				[
					'text_label'   => __( 'Shop - List View 2', 'shopbuilder' ),
					'image'        => rtsb()->get_assets_uri( 'images/layout-preview/shop-custom-layout-list-view-2.jpg' ),
					'live_preview' => $demo_root_url . '/rtsb-template/shop-builder-custom-layout-list-view-2/',
					'import_file'  => '/sample-layout/shop/shop-custom-layout-list-view-2.json',
				],
			],
			'archive'  => [
				[
					'text_label'   => __( 'Archive – Theme Default', 'shopbuilder' ),
					'image'        => rtsb()->get_assets_uri( 'images/layout-preview/shop-theme-default.jpg' ),
					'live_preview' => $demo_root_url . '/shop/',
					'import_file'  => '/sample-layout/shop/shop-theme-default.json',
				],
				[
					'text_label'   => __( 'Archive – Left Sidebar', 'shopbuilder' ),
					'image'        => rtsb()->get_assets_uri( 'images/layout-preview/shop-left-sidebar.jpg' ),
					'live_preview' => $demo_root_url . '/rtsb-template/shop-left-sidebar-shop-builder-custom/',
					'import_file'  => '/sample-layout/shop/shop-left-sidebar.json',
				],
				[
					'text_label'   => __( 'Archive - Custom Layout 1', 'shopbuilder' ),
					'image'        => rtsb()->get_assets_uri( 'images/layout-preview/shop-custom-layout-1.jpg' ),
					'live_preview' => $demo_root_url . '/rtsb-template/shop-builder-custom-layout-1/',
					'import_file'  => '/sample-layout/shop/shop-custom-layout-1.json',
				],
				[
					'text_label'   => __( 'Archive - Custom Layout 2', 'shopbuilder' ),
					'image'        => rtsb()->get_assets_uri( 'images/layout-preview/shop-custom-layout-2.jpg' ),
					'live_preview' => $demo_root_url . '/rtsb-template/shop-builder-custom-layout-2/',
					'import_file'  => '/sample-layout/shop/shop–builder-custom-layout-2.json',
				],
				[
					'text_label'   => __( 'Archive - List View 1', 'shopbuilder' ),
					'image'        => rtsb()->get_assets_uri( 'images/layout-preview/shop-custom-layout-list-view-1.jpg' ),
					'live_preview' => $demo_root_url . '/rtsb-template/shop-builder-custom-layout-list-view-1/',
					'import_file'  => '/sample-layout/shop/shop-custom-layout-list-view–1.json',
				],
				[
					'text_label'   => __( 'Archive - List View 2', 'shopbuilder' ),
					'image'        => rtsb()->get_assets_uri( 'images/layout-preview/shop-custom-layout-list-view-2.jpg' ),
					'live_preview' => $demo_root_url . '/rtsb-template/shop-builder-custom-layout-list-view-2/',
					'import_file'  => '/sample-layout/shop/shop-custom-layout-list-view-2.json',
				],

			],
			'cart'     => [
				[
					'text_label'   => __( 'Cart - View 1', 'shopbuilder' ),
					'image'        => rtsb()->get_assets_uri( 'images/layout-preview/cart-view-1.jpg' ),
					'live_preview' => $demo_root_url . '/rtsb-template/cart-page-demo-1/',
					'import_file'  => '/sample-layout/cart/cart-view-1.json',
				],
				[
					'text_label'   => __( 'Cart - View 2', 'shopbuilder' ),
					'image'        => rtsb()->get_assets_uri( 'images/layout-preview/cart-view-2.jpg' ),
					'live_preview' => $demo_root_url . '/rtsb-template/cart-page-demo-2/',
					'import_file'  => '/sample-layout/cart/cart-view-2.json',
				],
			],
			'checkout' => [
				[
					'text_label'   => __( 'Checkout - View 1', 'shopbuilder' ),
					'image'        => rtsb()->get_assets_uri( 'images/layout-preview/checkout-demo-1.jpg' ),
					'live_preview' => $demo_root_url . '/rtsb-template/checkout-page-layout-1/',
					'import_file'  => '/sample-layout/checkout/checkout-view-1.json',
				],
				[
					'text_label'   => __( 'Checkout - View 2', 'shopbuilder' ),
					'image'        => rtsb()->get_assets_uri( 'images/layout-preview/checkout-demo-2.jpg' ),
					'live_preview' => $demo_root_url . '/rtsb-template/checkout-page-demo-2/',
					'import_file'  => '/sample-layout/checkout/checkout-view-2.json',
				],
				[
					'text_label'   => __( 'Checkout - View 3', 'shopbuilder' ),
					'image'        => rtsb()->get_assets_uri( 'images/layout-preview/checkout-demo-3.jpg' ),
					'live_preview' => $demo_root_url . '/rtsb-template/checkout-page-demo-3/',
					'import_file'  => '/sample-layout/checkout/checkout-view-3.json',
				],
				[
					'text_label'   => __( 'Checkout - View 4', 'shopbuilder' ),
					'image'        => rtsb()->get_assets_uri( 'images/layout-preview/checkout-demo-4.jpg' ),
					'live_preview' => $demo_root_url . '/rtsb-template/checkout-page-demo-4/',
					'import_file'  => '/sample-layout/checkout/checkout-view-4.json',
				],

			],
		];
		$page_layout = apply_filters( 'rtsb/page/default/layout', $page_layout );
		return $page_layout;
	}

}

```
