<li class="et_pb_options_tab_ab_stat_reads" data-analysis="reads">
<li class="et_pb_options_tab_ab_stat_bounces" data-analysis="bounces">
<li class="et_pb_options_tab_ab_stat_engagements" data-analysis="engagements">
<li class="et_pb_options_tab_ab_stat_shortcode_conversions" data-analysis="shortcode_conversions">
<li class="et_pb_ab_refresh_button">
<a href="#" class="et-pb-ab-refresh-stats" title="%11$s">
<span class="icon"></span><span class="label">%12$s</span>
</ul><!-- .et-pb-options-tabs-links -->
<div class="et-pb-ab-view-stats-content has-data">
<div class="et-pb-ab-view-stats-content no-data">
<object type="image/svg+xml" data="%8$s/images/stats-no-data.svg"></object>
<div class="et_pb_prompt_buttons">
<input type="submit" class="et_pb_prompt_proceed" value="%14$s">
esc_html__( 'Split Testing Statistics', 'et_builder' ),
esc_html__( 'Clicks', 'et_builder' ),
esc_html__( 'Reads', 'et_builder' ),
esc_html__( 'Bounces', 'et_builder' ),
esc_html__( 'Goal Engagement', 'et_builder' ), // 5
esc_html__( 'Conversions', 'et_builder' ),
et_core_esc_previously( $view_stats_tabs ),
esc_url( ET_BUILDER_URI ),
esc_html__( 'Statistics are being collected', 'et_builder' ),
esc_html__( 'Stats will be displayed upon sufficient data collection', 'et_builder' ), // 10
esc_attr__( 'Refresh Stats', 'et_builder' ),
esc_html__( 'Refresh Stats', 'et_builder' ),
esc_html__( 'Shortcode Conversions', 'et_builder' ),
esc_attr__( 'End Split Test & Pick Winner', 'et_builder' )
// "Add Specialty Section" Button Template
'<script type="text/template" id="et-builder-add-specialty-section-button">
<a href="#" class="et-pb-section-add-specialty et-pb-add-specialty-template" data-is_template="true">%1$s</a>
esc_html__( 'Add Specialty Section', 'et_builder' )
echo '<script type="text/template" id="et-builder-saved-entry">
<a class="et_pb_saved_entry_item"><%= title %></a>
// Font Family Select Template.
$font_marker = et_pb_is_allowed( 'custom_fonts_management' ) ? '<span class="et-pb-user-font-marker"></span>' : '';
$upload_button = et_pb_is_allowed( 'custom_fonts_management' ) ? sprintf( '<input type="button" class="button button-upload et-pb-font-upload-button" value="%1$s">', esc_html__( 'Upload', 'et_builder' ) ) : '';
'<script type="text/template" id="et-builder-google-fonts-options-items">
<li class="et-pb-option-subgroup et-pb-option-subgroup-uploaded">
<p class="et-pb-subgroup-title">%1$s</p>
<ul class="et-pb-option-subgroup-container">
<%% _.each(this.et_builder_template_options.user_fonts, function(font_data, font_name) { %%>
<li class="select-option-item select-option-item-custom-font select-option-item-<%%= font_name.replace( / /g, "_" ) %%>" data-value="<%%= font_name %%>"><%%= font_name %%>%2$s</li>
esc_html__( 'Uploaded', 'et_builder' ),
et_core_intentionally_unescaped( $font_marker, 'fixed_string' ),
et_core_esc_previously( $upload_button ),
et_core_esc_previously( et_builder_get_google_font_items() )
'<script type="text/template" id="et-builder-font-icon-list-items">
et_core_esc_previously( et_pb_get_font_icon_list_items() )
// Histories Visualizer Item Template.
'<script type="text/template" id="et-builder-histories-visualizer-item-template">
<li id="et-pb-history-<%%= this.options.get( "timestamp" ) %%>" class="<%%= this.options.get( "current_active_history" ) ? "active" : "undo" %%>" data-timestamp="<%%= this.options.get( "timestamp" ) %%>">
<span class="datetime"><%%= this.options.get( "datetime" ) %%></span>
<span class="verb"> <%%= this.getVerb() %%></span>
<span class="noun"> <%%= this.getNoun() %%></span>
<%% if ( typeof this.getAddition === "function" && "" !== this.getAddition() ) { %%>
<span class="addition"> <%%= this.getAddition() %%></span>
// Font Down Icons Template.
'<script type="text/template" id="et-builder-font-down-icon-list-items">
et_core_esc_previously( et_pb_get_font_down_icon_list_items() )
'<script type="text/template" id="et-builder-preview-icons-template">
<ul class="et-pb-preview-screensize-switcher">
<li><a href="#" class="et-pb-preview-mobile" data-width="375"><span class="label">%1$s</span></a></li>
<li><a href="#" class="et-pb-preview-tablet" data-width="768"><span class="label">%2$s</span></a></li>
<li><a href="#" class="et-pb-preview-desktop active"><span class="label">%3$s</span></a></li>
esc_html__( 'Mobile', 'et_builder' ),
et_builder_i18n( 'Tablet' ),
et_builder_i18n( 'Desktop' )
'<script type="text/template" id="et-builder-options-tabs-links-template">
<ul class="et-pb-options-tabs-links">
<%% _.each(this.et_builder_template_options.tabs.options, function(tab, index) { %%>
<li class="et_pb_options_tab_<%%= tab.slug %%><%%= \'1\' === index ? \' et-pb-options-tabs-links-active\' : \'\' %%>">
<a href="#"><%%= tab.label %%></a>
'<script type="text/template" id="et-builder-mobile-options-tabs-template">
<div class="et_pb_mobile_settings_tabs et_pb_tabs_mobile">
<a href="#" class="et_pb_mobile_settings_tab et_pb_mobile_settings_active_tab" data-settings_tab="desktop">
<a href="#" class="et_pb_mobile_settings_tab" data-settings_tab="tablet">
<a href="#" class="et_pb_mobile_settings_tab" data-settings_tab="phone">
et_builder_i18n( 'Desktop' ),
et_builder_i18n( 'Tablet' ),
esc_html__( 'Smartphone', 'et_builder' )
'<script type="text/template" id="et-builder-hover-options-tabs-template">
<div class="et_pb_mobile_settings_tabs et_pb_tabs_hover et_pb_tabs_hover_only">
<a href="#" class="et_pb_mobile_settings_tab et_pb_mobile_settings_active_tab et_pb_hover" data-settings_tab="default">
<a href="#" class="et_pb_mobile_settings_tab et_pb_hover" data-settings_tab="hover">
et_builder_i18n( 'Default' ),
esc_html__( 'Hover', 'et_builder' )
'<script type="text/template" id="et-builder-mobile-hover-options-tabs-template">
<div class="et_pb_mobile_settings_tabs et_pb_tabs_mobile et_pb_tabs_hover">
<a href="#" class="et_pb_mobile_settings_tab et_pb_mobile_settings_active_tab" data-settings_tab="desktop">
<a href="#" class="et_pb_mobile_settings_tab et_pb_hover" data-settings_tab="hover">
<a href="#" class="et_pb_mobile_settings_tab et_pb_mobile" data-settings_tab="tablet">
<a href="#" class="et_pb_mobile_settings_tab et_pb_mobile" data-settings_tab="phone">
et_builder_i18n( 'Desktop' ),
esc_html__( 'Hover', 'et_builder' ),
et_builder_i18n( 'Tablet' ),
esc_html__( 'Smartphone', 'et_builder' )
'<script type="text/template" id="et-builder-hover-icon-template"><span class="et-pb-hover-settings-toggle" data-id="placeholder">
<svg width="18" height="18" viewBox="-2 -3 16 16">
<path d="M8.69 9.43l2.22-.84a.5.5 0 0 0 .19-.8L5.22 1.28A.7.7 0 0 0 4 1.75v8.73a.5.5 0 0 0 .68.47l2.14-.81 1 2.42a1 1 0 1 0 1.86-.75z"></path>
<input type="hidden" id="placeholder"/>
'<script type="text/template" id="et-builder-padding-option-template">
<%%= this.et_builder_template_options.padding.options.label %%>
<input type="text" class="et_custom_margin et_custom_margin_<%%= this.et_builder_template_options.padding.options.side %%><%%= this.et_builder_template_options.padding.options.class %%><%%= \'need_mobile\' === this.et_builder_template_options.padding.options.need_mobile ? \' et_pb_setting_mobile et_pb_setting_mobile_desktop et_pb_setting_mobile_active\' : \'\' %%>"<%%= \'need_mobile\' === this.et_builder_template_options.padding.options.need_mobile ? \' data-device="desktop"\' : \'\' %%> />
<%% if ( \'need_mobile\' === this.et_builder_template_options.padding.options.need_mobile ) { %%>
<input type="text" class="et_custom_margin et_pb_setting_mobile et_pb_setting_mobile_tablet et_custom_margin_<%%= this.et_builder_template_options.padding.options.side %%><%%= this.et_builder_template_options.padding.options.class %%>" data-device="tablet" />
<input type="text" class="et_custom_margin et_pb_setting_mobile et_pb_setting_mobile_phone et_custom_margin_<%%= this.et_builder_template_options.padding.options.side %%><%%= this.et_builder_template_options.padding.options.class %%>" data-device="phone" />
'<script type="text/template" id="et-builder-yes_no_button-option-template">
<div class="et_pb_yes_no_button et_pb_off_state">
<span class="et_pb_value_text et_pb_on_value"><%%= this.et_builder_template_options.yes_no_button.options.on %%></span>
<span class="et_pb_button_slider"></span>
<span class="et_pb_value_text et_pb_off_value"><%%= this.et_builder_template_options.yes_no_button.options.off %%></span>
'<script type="text/template" id="et-builder-animation_buttons-option-template">
<div class="et_pb_animation_buttons">
<% _.each(this.et_builder_template_options.animation_buttons.options, function(option_title, option_name) { %>
<div class="et_animation_button">
<span class="et_animation_button_title" data-value="<%= option_name %>"><%= option_title %></span>
<span class="et_animation_button_icon">
<svg viewBox="0 0 28 28" preserveAspectRatio="xMidYMid meet" shapeRendering="geometricPrecision"><%= this.et_builder_template_options.options_icons[ "animation-" + option_name ] %></svg>
'<script type="text/template" id="et-builder-background_tabs_nav-option-template">
<ul class="et_pb_background-tab-navs">
<% _.each(this.et_builder_template_options.background_tabs_nav.options, function(tab_nav_name, index) { %>
<li><a href="#" class="et_pb_background-tab-nav et_pb_background-tab-nav--<%= tab_nav_name %>" data-tab="<%= tab_nav_name %>" title="<%= tab_nav_name %>"><div class="et-pb-icon"><svg viewBox="0 0 28 28" preserveAspectRatio="xMidYMid meet" shapeRendering="geometricPrecision"><%= this.et_builder_template_options.options_icons[ "background-" + tab_nav_name ] %></svg></div></a></li>
'<script type="text/template" id="et-builder-background_gradient_buttons-option-template">
<div class="et-pb-option-preview et-pb-option-preview--empty">
<button class="et-pb-option-preview-button et-pb-option-preview-button--add">
<svg viewBox="0 0 28 28" preserveAspectRatio="xMidYMid meet" shapeRendering="geometricPrecision"><%= this.et_builder_template_options.options_icons[ "add" ] %></svg>
<button class="et-pb-option-preview-button et-pb-option-preview-button--swap">
<svg viewBox="0 0 28 28" preserveAspectRatio="xMidYMid meet" shapeRendering="geometricPrecision"><%= this.et_builder_template_options.options_icons[ "swap" ] %></svg>
<button class="et-pb-option-preview-button et-pb-option-preview-button--delete">
<svg viewBox="0 0 28 28" preserveAspectRatio="xMidYMid meet" shapeRendering="geometricPrecision"><%= this.et_builder_template_options.options_icons[ "delete" ] %></svg>
'<script type="text/template" id="et-builder-option_preview_buttons-option-template">
<div class="et-pb-option-preview et-pb-option-preview--empty">
<button class="et-pb-option-preview-button et-pb-option-preview-button--add">
<svg viewBox="0 0 28 28" preserveAspectRatio="xMidYMid meet" shapeRendering="geometricPrecision"><%= this.et_builder_template_options.options_icons[ "add" ] %></svg>
<button class="et-pb-option-preview-button et-pb-option-preview-button--edit">
<svg viewBox="0 0 28 28" preserveAspectRatio="xMidYMid meet" shapeRendering="geometricPrecision"><%= this.et_builder_template_options.options_icons[ "setting" ] %></svg>
<button class="et-pb-option-preview-button et-pb-option-preview-button--delete">
<svg viewBox="0 0 28 28" preserveAspectRatio="xMidYMid meet" shapeRendering="geometricPrecision"><%= this.et_builder_template_options.options_icons[ "delete" ] %></svg>
'<script type="text/template" id="et-builder-multiple_buttons-option-template">
<div class="et_pb_multiple_buttons">
<%% _.each(this.et_builder_template_options.multiple_buttons.options, function(button_options, button_id) { %%>
<div class="et_builder_<%%= button_id %%>_button et_builder_multiple_buttons_button mce-widget mce-btn" data-value="<%%= button_id %%>">
<%%= button_options.title %%>
'<script type="text/template" id="et-builder-font-weight-items">
<div class="et_pb_font_weight_container">
<label for="et_builder_font_weight">%1$s:</label>
<select class="et_builder_font_weight">
<%% _.each(this.et_builder_template_options.font_weights, function(font_weight_name, font_weight) { %%>
<option value="<%%= font_weight %%>"><%%= font_weight_name %%></option>
esc_html__( 'Font Weight', 'et_builder' )
'<script type="text/template" id="et-builder-font_buttons-option-template">
<div class="et_pb_font_style_container">
<label for="et_builder_font_style">%1$s:</label>
<%% _.each(this.et_builder_template_options.font_buttons.options, function(font_button) { %%>
<div class="et_builder_<%%= font_button %%>_font et_builder_font_style mce-widget mce-btn" data-button_name="<%%= font_button %%>">
<i class="mce-ico mce-i-<%%= font_button %%>"></i>
esc_html__( 'Font Style', 'et_builder' )
'<script type="text/template" id="et-builder-font_line_styles-option-template">
<div class="et_pb_font_line_settings">
<div class="et_pb_font_line_color">
<label for="et_builder_font_style" data-underline_label="%5$s %7$s" data-strikethrough_label="%6$s %7$s">%1$s:</label>
<span class="et-pb-custom-color-button et-pb-choose-custom-color-button"><span>%4$s</span></span>
<div class="et-pb-custom-color-container et_pb_hidden">
<input class="et-pb-color-picker-hex et-pb-color-picker-hex-alpha" type="text" data-alpha="true" placeholder="%2$s" data-selected-value="" value="" />
<input class="et-pb-custom-color-picker et-pb-font-line-color-value" type="hidden" value="" />
<div class="et_pb_font_line_style">
<label for="et_builder_font_style" data-underline_label="%5$s %8$s" data-strikethrough_label="%6$s %8$s">%3$s:</label>
<select class="et_pb_font_line_style_select">
<option value="solid">solid</option>
<option value="double">double</option>
<option value="dotted">dotted</option>
<option value="dashed">dashed</option>
<option value="wavy">wavy</option>
esc_html__( 'Line Color', 'et_builder' ),
esc_attr__( 'Hex Value', 'et_builder' ),
esc_attr__( 'Line Style', 'et_builder' ),
esc_attr__( 'Choose Custom Color', 'et_builder' ),
esc_attr__( 'Underline', 'et_builder' ),
esc_attr__( 'Strikethrough', 'et_builder' ),
esc_attr__( 'Color', 'et_builder' ),
esc_attr__( 'Style', 'et_builder' )
'<script type="text/template" id="et-builder-text-align-buttons-option-template">
<%% _.each(this.et_builder_template_options.text_align_buttons.options, function(text_align_button) { %%>
var text_align_button_classname = text_align_button === "justified" ? "justify" : text_align_button;
text_align_button_classname = text_align_button === "force_left" ? "left" : text_align_button_classname;
var text_align_button_type = this.et_builder_template_options.text_align_buttons.type;
<div class="et_builder_<%%= text_align_button %%>_text_align et_builder_text_align mce-widget mce-btn" data-value="<%%= text_align_button %%>">
<i class="mce-ico align-<%%= text_align_button_type %%> mce-i-align<%%= text_align_button_classname %%>"></i>
'<script type="text/template" id="et-builder-select-option-template">
<%% _.each(this.et_builder_template_options.select.options.list, function(option_label, option_value) {
var option_label_updated = option_label;
if ( _.isObject( option_label ) ) {
if ( ! _.isUndefined( option_label["data"] ) ) {
var data_key_name = _.keys( option_label["data"] );
data = " data-" + _.escape( data_key_name[0] ) + "=\'" + _.escape( option_label["data"][ data_key_name[0] ] ) + "\'";
var option_label_updated = option_label["value"];
var select_name = this.et_builder_template_options.select.options.select_name.replace( "data.", "" );
var select_value = this.et_builder_template_options.select.data[ select_name ];
var select_value_escaped = _.escape( select_value );
var option_value_escaped = _.escape( option_value );
var default_value = this.et_builder_template_options.select.options.default;
var selected_attr = ! _.isUndefined( select_value ) && "" !== select_value && option_value_escaped === select_value_escaped || ( _.isUndefined( select_value ) && default_value !== "" && option_value_escaped === default_value ) ? \' selected="selected"\' : "";
<option <%%= data %%> value="<%%= option_value_escaped %%>" <%%= selected_attr %%>><%%= _.escape( option_label_updated ) %%></option>
'<script type="text/template" id="et-builder-failure-notice-template">
et_core_esc_previously( et_builder_get_failure_notification_modal() )
'<script type="text/template" id="et-builder-cache-notice-template">
et_core_esc_previously( et_builder_get_cache_notification_modal() )
'<script type="text/template" id="et-builder-page-creation-template">
et_core_esc_previously( et_builder_page_creation_modal() )
'<script type="text/template" id="et-builder-help-template">
<h3 class="et-pb-settings-heading">%1$s</h3>
<ul class="et-pb-options-tabs-links et-pb-help-switcher">
<li class="et-pb-new-module et-pb-options-tabs-links-active" data-open_tab="et-pb-shortcuts-tab">
<div class="et-pb-main-settings et-pb-main-settings-full et-pb-shortcuts-tab active-container"></div>
esc_html__( 'Divi Builder Helper', 'et_builder' ),
esc_html__( 'Shortcuts', 'et_builder' )
do_action( 'et_pb_after_page_builder' );
* Returns builder settings markup
* @param array $options builder settings' configuration.
* @return string builder settings' markup
function et_pb_get_builder_settings_fields( $options ) {
$defaults = et_pb_get_builder_settings_configuration_default();
foreach ( $options as $option ) {
$option = wp_parse_args( $option, $defaults );
$field_list_class = $type;
$affecting = ! empty( $option['affects'] ) ? implode( '|', $option['affects'] ) : '';
if ( $option['depends_show_if'] ) {
$field_list_class .= ' et-pb-display-conditionally';
if ( isset( $option['class'] ) ) {
$field_list_class .= ' ' . $option['class'];
'<div class="et_pb_prompt_field_list et-pb-option-container %1$s" data-id="%2$s" data-type="%3$s" data-autoload="%4$s" data-affects="%5$s" data-visibility-dependency="%6$s">',
esc_attr( $field_list_class ),
esc_attr( $option['id'] ),
esc_attr( $option['autoload'] ),
esc_attr( $option['depends_show_if'] )