Astra_Builder_Helper::is_component_loaded( string $component_id, string $builder_type = 'header', string $device = 'both' )

Check if component placed on the builder.


Description


Parameters

$component_id

(string) (Required) component id.

$builder_type

(string) (Optional) builder type.

Default value: 'header'

$device

(string) (Optional) Device type (mobile, desktop and both).

Default value: 'both'


Return

(bool)


Source

File: inc/core/builder/class-astra-builder-helper.php

	public static function is_component_loaded( $component_id, $builder_type = 'header', $device = 'both' ) {

		$loaded_components = array();

		if ( is_null( self::$loaded_grid ) ) {

			$grids['header_desktop'] = astra_get_option( 'header-desktop-items', array() );
			$grids['header_mobile']  = astra_get_option( 'header-mobile-items', array() );
			$grids['footer_both']    = astra_get_option( 'footer-desktop-items', array() );

			if ( ! empty( $grids ) ) {

				foreach ( $grids as $grid_row => $row_grids ) {

					$components = array();
					if ( ! empty( $row_grids ) ) {

						foreach ( $row_grids as $row => $grid ) {

							if ( ! in_array( $row, array( 'below', 'above', 'primary', 'popup' ) ) ) {
								continue;
							}

							if ( ! is_array( $grid ) ) {
								continue;
							}

							$result = array_values( $grid );

							if ( is_array( $result ) ) {
								$loaded_component = call_user_func_array( 'array_merge', $result );
								$components[]     = is_array( $loaded_component ) ? $loaded_component : array();
							}
						}
					}

					$loaded_components[ $grid_row ] = call_user_func_array( 'array_merge', $components );
				}
			}

			if ( ! empty( $loaded_components ) ) {
				// For both devices(mobile & desktop).
				$loaded_components['header_both'] = array_merge( $loaded_components['header_desktop'], $loaded_components['header_mobile'] );

				// For All device and builder type.
				$all_components           = call_user_func_array( 'array_merge', array_values( $loaded_components ) );
				$loaded_components['all'] = array_unique( $all_components );
			}

			self::$loaded_grid = $loaded_components;
		}

		$loaded_components = self::$loaded_grid;

		if ( 'all' === $builder_type && ! empty( $loaded_components['all'] ) ) {
			$is_loaded = in_array( $component_id, $loaded_components['all'], true );
		} else {
			$is_loaded = in_array( $component_id, $loaded_components[ $builder_type . '_' . $device ], true );
		}

		return $is_loaded || is_customize_preview();
	}


User Contributed Notes

You must log in before being able to contribute a note or feedback.