function et_pb_get_font_icon_list() {
$output = is_customize_preview() ? et_pb_get_font_icon_list_items() : '<%= window.et_builder.font_icon_list_template() %>';
$output = sprintf( '<ul class="et_font_icon">%1$s</ul>', et_core_esc_previously( $output ) );
if ( ! function_exists( 'et_pb_get_svg_icons_list' ) ) :
function et_pb_get_svg_icons_list() {
<path d="M18 13h-3v-3a1 1 0 0 0-2 0v3h-3a1 1 0 0 0 0 2h3v3a1 1 0 0 0 2 0v-3h3a1 1 0 0 0 0-2z" fillRule="evenodd" />
<path d="M19 9h-3V8a1 1 0 0 0-1-1h-2a1 1 0 0 0-1 1v1H9a1 1 0 1 0 0 2h10a1 1 0 0 0 .004-2H19zM9 20c.021.543.457.979 1 1h8c.55-.004.996-.45 1-1v-7H9v7zm2.02-4.985h2v4h-2v-4zm4 0h2v4h-2v-4z" fillRule="evenodd" />
<path d="M20.426 13.088l-1.383-.362a.874.874 0 0 1-.589-.514l-.043-.107a.871.871 0 0 1 .053-.779l.721-1.234a.766.766 0 0 0-.116-.917 6.682 6.682 0 0 0-.252-.253.768.768 0 0 0-.917-.116l-1.234.722a.877.877 0 0 1-.779.053l-.107-.044a.87.87 0 0 1-.513-.587l-.362-1.383a.767.767 0 0 0-.73-.567h-.358a.768.768 0 0 0-.73.567l-.362 1.383a.878.878 0 0 1-.513.589l-.107.044a.875.875 0 0 1-.778-.054l-1.234-.722a.769.769 0 0 0-.918.117c-.086.082-.17.166-.253.253a.766.766 0 0 0-.115.916l.721 1.234a.87.87 0 0 1 .053.779l-.043.106a.874.874 0 0 1-.589.514l-1.382.362a.766.766 0 0 0-.567.731v.357a.766.766 0 0 0 .567.731l1.383.362c.266.07.483.26.588.513l.043.107a.87.87 0 0 1-.053.779l-.721 1.233a.767.767 0 0 0 .115.917c.083.087.167.171.253.253a.77.77 0 0 0 .918.116l1.234-.721a.87.87 0 0 1 .779-.054l.107.044a.878.878 0 0 1 .513.589l.362 1.383a.77.77 0 0 0 .731.567h.356a.766.766 0 0 0 .73-.567l.362-1.383a.878.878 0 0 1 .515-.589l.107-.044a.875.875 0 0 1 .778.054l1.234.721c.297.17.672.123.917-.117.087-.082.171-.166.253-.253a.766.766 0 0 0 .116-.917l-.721-1.234a.874.874 0 0 1-.054-.779l.044-.107a.88.88 0 0 1 .589-.513l1.383-.362a.77.77 0 0 0 .567-.731v-.357a.772.772 0 0 0-.569-.724v-.005zm-6.43 3.9a2.986 2.986 0 1 1 2.985-2.986 3 3 0 0 1-2.985 2.987v-.001z" fillRule="evenodd" />
<path d="M19.4 14.6c0 0-1.5 3.1-1.5 4.4 0 0.9 0.7 1.6 1.5 1.6 0.8 0 1.5-0.7 1.5-1.6C20.9 17.6 19.4 14.6 19.4 14.6zM19.3 12.8l-4.8-4.8c-0.2-0.2-0.4-0.3-0.6-0.3 -0.3 0-0.5 0.1-0.7 0.3l-1.6 1.6L9.8 7.8c-0.4-0.4-1-0.4-1.4 0C8 8.1 8 8.8 8.4 9.1l1.8 1.8 -2.8 2.8c-0.4 0.4-0.4 1-0.1 1.4l4.6 4.6c0.2 0.2 0.4 0.3 0.6 0.3 0.3 0 0.5-0.1 0.7-0.3l6.1-6.1C19.5 13.4 19.5 13.1 19.3 12.8zM15.6 14.6c-1.7 1.7-4.5 1.7-6.2 0l2.1-2.1 1 1c0.4 0.4 1 0.4 1.4 0 0.4-0.4 0.4-1 0-1.4l-1-1 0.9-0.9 3.1 3.1L15.6 14.6z" fillRule="evenodd"/>
<path d="M22.9 7.5c-0.1-0.3-0.5-0.6-0.8-0.6H5.9c-0.4 0-0.7 0.2-0.8 0.6C5.1 7.6 5 7.7 5 7.9v12.2c0 0.1 0 0.2 0.1 0.4 0.1 0.3 0.5 0.5 0.8 0.6h16.2c0.4 0 0.7-0.2 0.8-0.6 0-0.1 0.1-0.2 0.1-0.4V7.9C23 7.7 23 7.6 22.9 7.5zM21 18.9H7v-10h14V18.9z" fillRule="evenodd"/>
<circle cx="10.5" cy="12.4" r="1.5"/>
<polygon points="15 16.9 13 13.9 11 16.9 "/>
<polygon points="17 10.9 15 16.9 19 16.9 "/>
<path d="M22.9 7.5c-0.1-0.3-0.5-0.6-0.8-0.6H5.9c-0.4 0-0.7 0.2-0.8 0.6C5.1 7.6 5 7.7 5 7.9v12.2c0 0.1 0 0.2 0.1 0.4 0.1 0.3 0.5 0.5 0.8 0.6h16.2c0.4 0 0.7-0.2 0.8-0.6 0-0.1 0.1-0.2 0.1-0.4V7.9C23 7.7 23 7.6 22.9 7.5zM21 18.9L7 8.9h14V18.9z" fillRule="evenodd"/>
<path d="M22.9 7.5c-0.1-0.3-0.5-0.6-0.8-0.6H5.9c-0.4 0-0.7 0.2-0.8 0.6C5.1 7.6 5 7.7 5 7.9v12.2c0 0.1 0 0.2 0.1 0.4 0.1 0.3 0.5 0.5 0.8 0.6h16.2c0.4 0 0.7-0.2 0.8-0.6 0-0.1 0.1-0.2 0.1-0.4V7.9C23 7.7 23 7.6 22.9 7.5zM21 18.9H7v-10h14V18.9z" fillRule="evenodd"/>
<polygon points="13 10.9 13 16.9 17 13.9 "/>
<path d="M19 12h-3V9c0-0.5-0.5-1-1-1H8C7.5 8 7 8.5 7 9v7c0 0.5 0.5 1 1 1h3v3c0 0.5 0.5 1 1 1h7c0.5 0 1-0.5 1-1v-7C20 12.5 19.5 12 19 12zM18 19h-5v-2h2c0.5 0 1-0.5 1-1v-2h2V19z" fillRule="evenodd"/>
<path d="M14 24c5.5 0 10-4.5 10-10S19.5 4 14 4 4 8.5 4 14s4.5 10 10 10zm0-17.5c4.1 0 7.5 3.4 7.5 7.5 0 1.5-.5 2.9-1.2 4.1L9.9 7.7c1.2-.7 2.6-1.2 4.1-1.2zM7.7 9.9l10.4 10.4c-1.2.8-2.6 1.2-4.1 1.2-4.1 0-7.5-3.4-7.5-7.5 0-1.5.5-2.9 1.2-4.1z"/>
<path d="M14 24c5.5 0 10-4.5 10-10S19.5 4 14 4 4 8.5 4 14s4.5 10 10 10zm0-17.5c4.1 0 7.5 3.4 7.5 7.5 0 1.5-.5 2.9-1.2 4.1L9.9 7.7c1.2-.7 2.6-1.2 4.1-1.2zM7.7 9.9l10.4 10.4c-1.2.8-2.6 1.2-4.1 1.2-4.1 0-7.5-3.4-7.5-7.5 0-1.5.5-2.9 1.2-4.1z"/>
<circle cx="8.5" cy="19.5" r="1.5"/>
<circle cx="8.5" cy="14.5" r="1.5"/>
<circle cx="5" cy="12" r="1"/>
<circle cx="5" cy="17" r="1"/>
<circle cx="8.5" cy="9.5" r="1.5"/>
<path d="M15.7 4c-.4 0-.8.1-1.2.3-.6.3-.5.7-1.5.7-1.1 0-2 .9-2 2s.9 2 2 2c.3 0 .5.2.5.5s-.2.5-.5.5c-1.1 0-2 .9-2 2s.9 2 2 2c.3 0 .5.2.5.5s-.2.5-.5.5c-1.1 0-2 .9-2 2s.9 2 2 2c.3 0 .5.2.5.5s-.2.5-.5.5c-1.1 0-2 .9-2 2s.9 2 2 2c1 0 .9.4 1.4.7.4.2.8.3 1.2.3 4.3-.4 8.3-5.3 8.3-10.5s-4-10-8.2-10.5z"/>
<path d="M22 4h-5c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h5c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM10 14c0 .6.4 1 1 1h.6L10 16.6c-.4.4-.4 1 0 1.4.4.4 1 .4 1.4 0l3.3-3.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7L11.4 10c-.4-.4-1-.4-1.4 0-.4.4-.4 1 0 1.4l1.6 1.6H11c-.6 0-1 .4-1 1z"/>
<circle cx="7" cy="14" r="1.5"/>
<circle cx="3" cy="14" r="1"/>
<circle cx="21.5" cy="8.5" r="3.5"/>
<circle cx="16" cy="12" r="1.7"/>
<circle cx="13" cy="15" r="1.2"/>
<circle cx="11" cy="18" r="1"/>
<circle cx="9" cy="22" r="1"/>
<circle cx="7" cy="19" r="1"/>
<circle cx="4" cy="17" r="1"/>
<path d="M23.7 4.3c-.1-.1-.2-.2-.3-.2-.1-.1-.3-.1-.4-.1h-5c-.6 0-1 .4-1 1s.4 1 1 1h2.6l-3.1 3.1c-.2-.1-.3-.1-.5-.1h-6c-.2 0-.3 0-.5.1L7.4 6H10c.6 0 1-.4 1-1s-.4-1-1-1H5c-.1 0-.3 0-.4.1-.2.1-.4.3-.5.5-.1.1-.1.3-.1.4v5c0 .6.4 1 1 1s1-.4 1-1V7.4l3.1 3.1c-.1.2-.1.3-.1.5v6c0 .2 0 .3.1.5L6 20.6V18c0-.6-.4-1-1-1s-1 .4-1 1v5c0 .1 0 .3.1.4.1.2.3.4.5.5.1.1.3.1.4.1h5c.6 0 1-.4 1-1s-.4-1-1-1H7.4l3.1-3.1c.2 0 .3.1.5.1h6c.2 0 .3 0 .5-.1l3.1 3.1H18c-.6 0-1 .4-1 1s.4 1 1 1h5c.1 0 .3 0 .4-.1.2-.1.4-.3.5-.5.1-.1.1-.3.1-.4v-5c0-.6-.4-1-1-1s-1 .4-1 1v2.6l-3.1-3.1c0-.2.1-.3.1-.5v-6c0-.2 0-.3-.1-.5L22 7.4V10c0 .6.4 1 1 1s1-.4 1-1V5c0-.1 0-.3-.1-.4 0-.1-.1-.2-.2-.3z"/>
<path d="M22 2.4l-7 2.9V7h-2v-.8L7.6 8.7c-.4.2-.6.5-.6.9v8.7c0 .4.2.7.6.9l5.4 2.5V21h2v1.7l7 2.9c.5.2 1-.2 1-.7V3.1c0-.5-.5-.9-1-.7zM15 19h-2v-2h2v2zm0-4h-2v-2h2v2zm0-4h-2V9h2v2zM13 2h2v2.5h-2zM13 23.5h2V26h-2z"/>
<path d="M24 7h-4V3.4c0-.8-.6-1.4-1.3-1.4-.2 0-.5.1-.7.2l-6.5 3.9c-.9.6-1.5 1.6-1.5 2.6V23c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V9c0-1.1-.9-2-2-2zm-6 10.5c0 .2-.1.4-.3.5L12 21.5V8.7c0-.4.2-.7.5-.9L18 4.5v13zM6 7h2v2H6zM6 23h2v2H6zM2.6 7.1c-.1 0-.1.1-.2.1v.1l-.1.1-.1.1c-.1.1-.2.3-.2.5v1h2V7H3c-.1 0-.2 0-.4.1zM2 23v1c0 .4.3.8.7.9.1.1.2.1.3.1h1v-2H2zM2 11h2v2H2zM2 19h2v2H2zM2 15h2v2H2z"/>
<path d="M18.8 5c-5.3-2.7-11.8.2-14 5.6-1.1 2.8-1 6 .2 8.8.4 1 3.9 6.5 5 3.6.5-1.2-1.3-2.2-1.9-3-.8-1.2-1.4-2.5-1.6-3.9-.4-2.7.5-5.5 2.4-7.4 4-4 11.6-2.5 12.6 3.4.4 2.7-.9 5.5-3.4 6.6-2.6 1.1-6 0-6.8-2.8-.7-2.4 1.2-5.7 4-4.8 1.1.3 2 1.5 1.5 2.7-.3.7-1.7 1.2-1.6.1 0-.3.2-.4.2-.8-.1-.4-.5-.6-.9-.6-1.1.1-1.6 1.6-1.3 2.5.3 1.2 1.5 1.9 2.7 1.9 2.9 0 4.2-3.4 3.1-5.7-1.2-2.6-4.6-3.4-7-2.2-2.6 1.3-3.8 4.4-3.1 7.2 1.6 5.9 9.3 6.8 13.1 2.5 3.8-4.2 1.9-11.1-3.2-13.7z"/>
<path d="M14.71 17.71a3 3 0 0 1-2.12-.88l-.71-.71a1 1 0 0 1 1.41-1.41l.71.71a1 1 0 0 0 1.41 0l5-4.95a1 1 0 0 0 0-1.41l-1.46-1.42a1 1 0 0 0-1.41 0L16.1 9.07a1 1 0 0 1-1.41-1.41l1.43-1.43a3.07 3.07 0 0 1 4.24 0l1.41 1.41a3 3 0 0 1 0 4.24l-5 4.95a3 3 0 0 1-2.06.88z"/>
<path d="M9.76 22.66a3 3 0 0 1-2.12-.88l-1.42-1.42a3 3 0 0 1 0-4.24l5-4.95a3.07 3.07 0 0 1 4.24 0l.71.71a1 1 0 0 1-1.41 1.41l-.76-.7a1 1 0 0 0-1.41 0l-5 4.95a1 1 0 0 0 0 1.41L9 20.36a1 1 0 0 0 1.41 0L11.82 19a1 1 0 0 1 1.41 1.41l-1.36 1.36a3 3 0 0 1-2.11.89z"/>
<path d="M22 5H6a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h16a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1zm-2 15H8V8h12z"/>
<path d="M17 21h2v2h-2zM5 9h2v2H5zM21 17h2v2h-2zM21 9h2v2h-2zM21 13h2v2h-2zM21 23h1a1 1 0 0 0 1-1v-1h-2zM5 17h2v2H5zM5 13h2v2H5zM13 21h2v2h-2zM9 21h2v2H9zM5 21v1a1 1 0 0 0 1 1h1v-2zM22 5H6a1 1 0 0 0-1 1v2h18V6a1 1 0 0 0-1-1z"/>
<path d="M13 5h2v2h-2zM5 9h2v2H5zM9 5h2v2H9zM7 5H6a1 1 0 0 0-1 1v1h2zM5 13h2v2H5zM13 21h2v2h-2zM5 17h2v2H5zM9 21h2v2H9zM17 5h2v2h-2zM5 21v1a1 1 0 0 0 1 1h1v-2zM22 5h-2v18h2a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1zM17 21h2v2h-2z"/>
<path d="M9 5h2v2H9zM7 20H5v2a1 1 0 0 0 1 1h16a1 1 0 0 0 1-1v-2H7zM17 5h2v2h-2zM5 13h2v2H5zM5 9h2v2H5zM13 5h2v2h-2zM5 17h2v2H5zM21 9h2v2h-2zM21 17h2v2h-2zM22 5h-1v2h2V6a1 1 0 0 0-1-1zM21 13h2v2h-2zM7 5H6a1 1 0 0 0-1 1v1h2z"/>
<path d="M22 5h-1v2h2V6a1 1 0 0 0-1-1zM9 21h2v2H9zM21 17h2v2h-2zM13 21h2v2h-2zM21 13h2v2h-2zM9 5h2v2H9zM17 21h2v2h-2zM17 5h2v2h-2zM21 9h2v2h-2zM8 7V5H6a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h2V7zM21 23h1a1 1 0 0 0 1-1v-1h-2zM13 5h2v2h-2z"/>
<path d="M20 12C19.9 11.7 19.3 11 19 11L18 11C18 8.1 16.2 6 14 6 11.8 6 10 8.1 10 11L9 11C8.6 11 8.1 11.6 8 12L8 13 8 19 8 20C8.1 20.3 8.7 20.9 9 21L19 21C19.4 21 19.9 20.4 20 20L20 19 20 14 20 12 20 12ZM14 8C15.1 8 16 9.4 16 11.1L12 11.1C12 9.4 12.9 8 14 8L14 8ZM18 19L10 19 10 13 18 13 18 19 18 19Z" fillRule="evenodd"/>
<path d="M14 18C14.6 18 15 17.6 15 17L15 15C15 14.4 14.6 14 14 14 13.4 14 13 14.4 13 15L13 15 13 17C13 17.6 13.4 18 14 18L14 18Z" fillRule="evenodd"/>
if ( ! function_exists( 'et_pb_get_font_icon_list_items' ) ) :
* Return Font icon list items.
function et_pb_get_font_icon_list_items() {
$symbols = et_pb_get_font_icon_symbols();
foreach ( $symbols as $symbol ) {
$output .= sprintf( '<li data-icon=\'%1$s\'></li>', esc_attr( $symbol ) );
if ( ! function_exists( 'et_pb_font_icon_list' ) ) :
* Display font icon list.
function et_pb_font_icon_list() {
echo et_core_esc_previously( et_pb_get_font_icon_list() );
if ( ! function_exists( 'et_pb_get_font_down_icon_symbols' ) ) :
* Return icon to display for the scroll down button.
function et_pb_get_font_down_icon_symbols() {
$symbols = array( '&#x22;', '&#x33;', '&#x37;', '&#x3b;', '&#x3f;', '&#x43;', '&#x47;', '&#xe03a;', '&#xe044;', '&#xe048;', '&#xe04c;' );
if ( ! function_exists( 'et_pb_get_font_down_icon_list' ) ) :
* Return font down icon list.
function et_pb_get_font_down_icon_list() {
$output = is_customize_preview() ? et_pb_get_font_down_icon_list_items() : '<%= window.et_builder.font_down_icon_list_template() %>';
$output = sprintf( '<ul class="et_font_icon">%1$s</ul>', et_core_esc_previously( $output ) );
if ( ! function_exists( 'et_pb_get_font_down_icon_list_items' ) ) :
* Return font down icon list items.
function et_pb_get_font_down_icon_list_items() {
$symbols = et_pb_get_font_down_icon_symbols();
foreach ( $symbols as $symbol ) {
$output .= sprintf( '<li data-icon="%1$s"></li>', esc_attr( $symbol ) );
if ( ! function_exists( 'et_pb_font_down_icon_list' ) ) :
* Return icon to display for the scroll down button.
function et_pb_font_down_icon_list() {
echo et_core_esc_previously( et_pb_get_font_down_icon_list() );
if ( ! function_exists( 'et_pb_process_font_icon' ) ) :
* Processes font icon value for use on front-end
* @param string $font_icon Font Icon ( exact value or in %%index_number%% format ).
* @param string $symbols_function Optional. Name of the function that gets an array of font icon values.
* et_pb_get_font_icon_symbols function is used by default.
* @return string $font_icon Font Icon value
function et_pb_process_font_icon( $font_icon, $symbols_function = 'default' ) {
// the exact font icon value is saved.
if ( 1 !== preg_match( '/^%%/', trim( $font_icon ) ) ) {
// the font icon value is saved in the following format: %%index_number%%.
$icon_index = (int) str_replace( '%', '', $font_icon );
$icon_symbols = 'default' === $symbols_function ? et_pb_get_font_icon_symbols() : call_user_func( $symbols_function );
$font_icon = isset( $icon_symbols[ $icon_index ] ) ? $icon_symbols[ $icon_index ] : '';
if ( ! function_exists( 'et_builder_accent_color' ) ) :
* Return an accent color.
* @param string $default_color Default color.
function et_builder_accent_color( $default_color = '#7EBEC5' ) {
// Accent color option exists in Divi theme only. Use default color in plugin.
$accent_color = ! et_is_builder_plugin_active() ? et_get_option( 'accent_color', $default_color ) : $default_color;
return apply_filters( 'et_builder_accent_color', $accent_color );
if ( ! function_exists( 'et_pb_process_header_level' ) ) :
* @param string $new_level Header level.
* @param string $default Default header level.
function et_pb_process_header_level( $new_level, $default ) {
$valid_header_levels = array( 'h1', 'h2', 'h3', 'h4', 'h5', 'h6' );
// return the new header level if exists in the list of valid header levels.
if ( in_array( $new_level, $valid_header_levels, true ) ) {
// return default if defined. Fallback to h2 otherwise.
return isset( $default ) ? $default : 'h2';
if ( ! function_exists( 'et_pb_get_alignment' ) ) {
* Return an alignment value from alignment key.
* @param string $key Alignment key.
function et_pb_get_alignment( $key ) {
if ( is_rtl() && 'left' === $key ) {
if ( ! function_exists( 'et_builder_get_text_orientation_options' ) ) :
* Return text orientation options to use in dropdown.
* @param array $exclude_options Options to be excluded.
* @param array $include_options Options to be included.
function et_builder_get_text_orientation_options( $exclude_options = array(), $include_options = array() ) {
$text_orientation_options = array(
'left' => et_builder_i18n( 'Left' ),
'center' => et_builder_i18n( 'Center' ),
'right' => et_builder_i18n( 'Right' ),
'justified' => et_builder_i18n( 'Justified' ),
$text_orientation_options = array(
'right' => et_builder_i18n( 'Right' ),
'center' => et_builder_i18n( 'Center' ),
'force_left' => et_builder_i18n( 'Left' ),
// Exclude some options if needed.
if ( ! empty( $exclude_options ) ) {
foreach ( $exclude_options as $exclude ) {
unset( $text_orientation_options[ $exclude ] );
// Include some options if needed.
if ( ! empty( $include_options ) ) {
$text_orientation_options = wp_parse_args( $include_options, $text_orientation_options );
return apply_filters( 'et_builder_text_orientation_options', $text_orientation_options );
if ( ! function_exists( 'et_builder_get_gallery_settings' ) ) :
function et_builder_get_gallery_settings() {
'<input type="button" class="button button-upload et-pb-gallery-button" value="%1$s" />',
esc_attr__( 'Update Gallery', 'et_builder' )
if ( ! function_exists( 'et_builder_get_nav_menus_options' ) ) :
* Return navigation menus options.
function et_builder_get_nav_menus_options() {
$nav_menus_options = array( 'none' => esc_html__( 'Select a menu', 'et_builder' ) );
$nav_menus = wp_get_nav_menus( array( 'orderby' => 'name' ) );
foreach ( (array) $nav_menus as $_nav_menu ) {
$nav_menus_options[ $_nav_menu->term_id ] = $_nav_menu->name;
return apply_filters( 'et_builder_nav_menus_options', $nav_menus_options );
if ( ! function_exists( 'et_builder_generate_center_map_setting' ) ) :
function et_builder_generate_center_map_setting() {
return '<div id="et_pb_map_center_map" class="et-pb-map et_pb_map_center_map"></div>';
if ( ! function_exists( 'et_builder_generate_pin_zoom_level_input' ) ) :
* Return map's pin zoom level input element.
function et_builder_generate_pin_zoom_level_input() {
return '<input class="et_pb_zoom_level" type="hidden" value="18" />';
* Define conditional tags needed for component's backend parser. This is used for FB's public facing update
* mechanism to pass conditional tag to admin-ajax.php for component which relies to backend parsing. Backend
* uses this conditional tags' key as well for sanitization
function et_fb_conditional_tag_params() {
$post_type = isset( $post->post_type ) ? $post->post_type : false;
$conditional_tags = array(
'is_limited_mode' => et_builder_is_limited_mode(),
'is_bfb' => et_builder_bfb_enabled(),
'is_bfb_activated' => et_builder_bfb_activated(),
'is_tb' => et_builder_tb_enabled(),
'is_front_page' => is_front_page(),
'is_home_page' => is_home() || is_front_page(),
'is_search' => is_search(),
'is_single' => is_single(),
'is_singular' => is_singular(),
'is_singular_project' => is_singular( 'project' ),
'is_no_rtl' => 'on' === et_get_option( 'divi_disable_translations', 'off' ),
'et_is_builder_plugin_active' => et_is_builder_plugin_active(),
'is_user_logged_in' => is_user_logged_in(),
'et_is_ab_testing_active' => et_is_ab_testing_active() ? 'yes' : 'no',
'is_wrapped_styles' => et_builder_has_limitation( 'use_wrapped_styles' ),
'is_gutenberg' => et_core_is_gutenberg_active(),
'is_custom_post_type' => et_builder_is_post_type_custom( $post_type ),
'is_layout_post_type' => et_theme_builder_is_layout_post_type( $post_type ),
'is_rich_editor' => 'true' === apply_filters( 'user_can_richedit', get_user_option( 'rich_editing' ) ) ? 'yes' : 'no',
// Pass falsey as empty string so it remains falsey when conditionalTags is fetched and
// passed string as AJAX payload (on AJAX string, false bool becomes 'false' string).
'is_layout_block' => ET_GB_Block_Layout::is_layout_block_preview() ? true : '',
return apply_filters( 'et_fb_conditional_tag_params', $conditional_tags );
if ( ! function_exists( 'et_builder_page_creation_options' ) ) :
* Get Page Creation flow options
function et_builder_page_creation_options() {
'build_from_scratch' => array(
'className' => 'accent-blue',
'imgSrc' => 'scratch.png',
'imgSrcHover' => 'scratch.gif',
'titleText' => esc_html__( 'Build From Scratch', 'et_builder' ),
'descriptionText' => esc_html__( 'Build your page from the ground up. Don’t worry, you can access our premade layouts at any time.', 'et_builder' ),
'buttonText' => esc_html__( 'Start Building', 'et_builder' ),
'permission' => array( 'add_module' ),
'use_existing_content' => array(
'className' => 'accent-blue',
'imgSrc' => 'existing.png',
'imgSrcHover' => 'existing.gif',
'titleText' => esc_html__( 'Use Existing Content', 'et_builder' ),
'descriptionText' => esc_html__( 'Use the Divi Builder while retaining your existing page content.', 'et_builder' ),
'buttonText' => esc_html__( 'Start Building', 'et_builder' ),
'permission' => array( 'edit_module' ),
'choose_premade_layout' => array(
'className' => 'accent-purple',
'imgSrc' => 'premade.png',
'imgSrcHover' => 'premade.gif',
'titleText' => esc_html__( 'Choose a premade Layout', 'et_builder' ),
'descriptionText' => esc_html__( 'Choose from hundreds of world-class premade layouts or start from any of your existing saved layouts.', 'et_builder' ),
'buttonText' => esc_html__( 'Browse Layouts', 'et_builder' ),
'permission' => array( 'load_layout', 'divi_library' ),
'label' => esc_html__( 'Load Premade Layout', 'et_builder' ),
'clone_existing_page' => array(
'className' => 'accent-green',
'imgSrcHover' => 'clone.gif',
'titleText' => esc_html__( 'Clone Existing page', 'et_builder' ),
'descriptionText' => esc_html__( 'Jump start your layout design by duplicating another page that you’ve already built.', 'et_builder' ),
'buttonText' => esc_html__( 'Choose Page', 'et_builder' ),
'permission' => array( 'load_layout', 'divi_library', 'edit_module' ),
if ( ! function_exists( 'et_builder_page_creation_settings' ) ) :
* Get Page Creation flow setting options
* @param bool $value_as_index Flag to set the options value as numeric index.
function et_builder_page_creation_settings( $value_as_index = false ) {