Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/clone/wp-conte.../themes/Divi/includes/builder
File: class-et-builder-element.php
$button_text_size_hover = $this->get_hover_value( "{$option_name}_text_size" );
[13500] Fix | Delete
$button_text_size_values = et_pb_responsive_options()->get_property_values( $this->props, "{$option_name}_text_size" );
[13501] Fix | Delete
$button_text_size = isset( $button_text_size_values['desktop'] ) ? $button_text_size_values['desktop'] : '';
[13502] Fix | Delete
$button_text_size_tablet = isset( $button_text_size_values['tablet'] ) ? $button_text_size_values['tablet'] : '';
[13503] Fix | Delete
$button_text_size_phone = isset( $button_text_size_values['phone'] ) ? $button_text_size_values['phone'] : '';
[13504] Fix | Delete
[13505] Fix | Delete
// Button Text Color.
[13506] Fix | Delete
$button_text_color_hover = $this->get_hover_value( "{$option_name}_text_color" );
[13507] Fix | Delete
$button_text_color_values = et_pb_responsive_options()->get_property_values( $this->props, "{$option_name}_text_color" );
[13508] Fix | Delete
$button_text_color = isset( $button_text_color_values['desktop'] ) ? $button_text_color_values['desktop'] : '';
[13509] Fix | Delete
$button_text_color_tablet = isset( $button_text_color_values['tablet'] ) ? $button_text_color_values['tablet'] : '';
[13510] Fix | Delete
$button_text_color_phone = isset( $button_text_color_values['phone'] ) ? $button_text_color_values['phone'] : '';
[13511] Fix | Delete
[13512] Fix | Delete
// Button Border Width.
[13513] Fix | Delete
$button_border_width_hover = $this->get_hover_value( "{$option_name}_border_width" );
[13514] Fix | Delete
$button_border_width_values = et_pb_responsive_options()->get_property_values( $this->props, "{$option_name}_border_width" );
[13515] Fix | Delete
$button_border_width = isset( $button_border_width_values['desktop'] ) ? $button_border_width_values['desktop'] : '';
[13516] Fix | Delete
$button_border_width_tablet = isset( $button_border_width_values['tablet'] ) ? $button_border_width_values['tablet'] : '';
[13517] Fix | Delete
$button_border_width_phone = isset( $button_border_width_values['phone'] ) ? $button_border_width_values['phone'] : '';
[13518] Fix | Delete
[13519] Fix | Delete
// Button Border Color.
[13520] Fix | Delete
$button_border_color_hover = $this->get_hover_value( "{$option_name}_border_color" );
[13521] Fix | Delete
$button_border_color_values = et_pb_responsive_options()->get_property_values( $this->props, "{$option_name}_border_color" );
[13522] Fix | Delete
$button_border_color = isset( $button_border_color_values['desktop'] ) ? $button_border_color_values['desktop'] : '';
[13523] Fix | Delete
$button_border_color_tablet = isset( $button_border_color_values['tablet'] ) ? $button_border_color_values['tablet'] : '';
[13524] Fix | Delete
$button_border_color_phone = isset( $button_border_color_values['phone'] ) ? $button_border_color_values['phone'] : '';
[13525] Fix | Delete
[13526] Fix | Delete
// Button Border Radius.
[13527] Fix | Delete
$button_border_radius_hover = $this->get_hover_value( "{$option_name}_border_radius" );
[13528] Fix | Delete
$button_border_radius_values = et_pb_responsive_options()->get_property_values( $this->props, "{$option_name}_border_radius" );
[13529] Fix | Delete
$button_border_radius = isset( $button_border_radius_values['desktop'] ) ? $button_border_radius_values['desktop'] : '';
[13530] Fix | Delete
$button_border_radius_tablet = isset( $button_border_radius_values['tablet'] ) ? $button_border_radius_values['tablet'] : '';
[13531] Fix | Delete
$button_border_radius_phone = isset( $button_border_radius_values['phone'] ) ? $button_border_radius_values['phone'] : '';
[13532] Fix | Delete
[13533] Fix | Delete
// Button Font.
[13534] Fix | Delete
$button_font_values = et_pb_responsive_options()->get_property_values( $this->props, "{$option_name}_font" );
[13535] Fix | Delete
$button_font = isset( $button_font_values['desktop'] ) ? $button_font_values['desktop'] : '';
[13536] Fix | Delete
$button_font_tablet = isset( $button_font_values['tablet'] ) ? $button_font_values['tablet'] : '';
[13537] Fix | Delete
$button_font_phone = isset( $button_font_values['phone'] ) ? $button_font_values['phone'] : '';
[13538] Fix | Delete
[13539] Fix | Delete
// Button Letter Spacing.
[13540] Fix | Delete
$button_letter_spacing_hover = $this->get_hover_value( "{$option_name}_letter_spacing" );
[13541] Fix | Delete
$button_letter_spacing_values = et_pb_responsive_options()->get_property_values( $this->props, "{$option_name}_letter_spacing" );
[13542] Fix | Delete
$button_letter_spacing = isset( $button_letter_spacing_values['desktop'] ) ? $button_letter_spacing_values['desktop'] : '';
[13543] Fix | Delete
$button_letter_spacing_tablet = isset( $button_letter_spacing_values['tablet'] ) ? $button_letter_spacing_values['tablet'] : '';
[13544] Fix | Delete
$button_letter_spacing_phone = isset( $button_letter_spacing_values['phone'] ) ? $button_letter_spacing_values['phone'] : '';
[13545] Fix | Delete
[13546] Fix | Delete
// Button Icon Color.
[13547] Fix | Delete
$button_icon_color_hover = et_pb_hover_options()->get_value( "{$option_name}_icon_color", $this->props );
[13548] Fix | Delete
$button_icon_color_values = et_pb_responsive_options()->get_property_values( $this->props, "{$option_name}_icon_color" );
[13549] Fix | Delete
$button_icon_color = isset( $button_icon_color_values['desktop'] ) ? $button_icon_color_values['desktop'] : '';
[13550] Fix | Delete
$button_icon_color_tablet = isset( $button_icon_color_values['tablet'] ) ? $button_icon_color_values['tablet'] : '';
[13551] Fix | Delete
$button_icon_color_phone = isset( $button_icon_color_values['phone'] ) ? $button_icon_color_values['phone'] : '';
[13552] Fix | Delete
[13553] Fix | Delete
$button_icon_pseudo_selector = $button_icon_placement === 'left' ? ':before' : ':after';
[13554] Fix | Delete
[13555] Fix | Delete
// Hide button settings.
[13556] Fix | Delete
$hide_icon_setting = isset( $option_settings['hide_icon'] ) ? $option_settings['hide_icon'] : false;
[13557] Fix | Delete
$hide_custom_padding_setting = isset( $option_settings['hide_custom_padding'] ) ? $option_settings['hide_custom_padding'] : false;
[13558] Fix | Delete
[13559] Fix | Delete
// If module hides the button icon settings, no need to render button icon. So, we need
[13560] Fix | Delete
// to the button_use_icon value as 'off'.
[13561] Fix | Delete
if ( $hide_icon_setting ) {
[13562] Fix | Delete
$button_use_icon = 'off';
[13563] Fix | Delete
}
[13564] Fix | Delete
[13565] Fix | Delete
// Specific selector needs to be explicitly defined to make button alignment works
[13566] Fix | Delete
if ( isset( $option_settings['use_alignment'] ) && $option_settings['use_alignment'] && isset( $option_settings['css'] ) && isset( $option_settings['css']['alignment'] ) ) {
[13567] Fix | Delete
$button_alignment_selector = $option_settings['css']['alignment'];
[13568] Fix | Delete
[13569] Fix | Delete
// Button alignment.
[13570] Fix | Delete
if ( '' !== $button_alignment_selector ) {
[13571] Fix | Delete
// Get button alignment responsive status.
[13572] Fix | Delete
$button_alignment_responsive_active = isset( $this->props["{$option_name}_alignment_last_edited"] ) ? et_pb_get_responsive_status( $this->props["{$option_name}_alignment_last_edited"] ) : false;
[13573] Fix | Delete
[13574] Fix | Delete
// Print styles for each devices.
[13575] Fix | Delete
foreach ( array( 'desktop', 'tablet', 'phone' ) as $device ) {
[13576] Fix | Delete
$is_desktop = 'desktop' === $device;
[13577] Fix | Delete
$button_key = ! $is_desktop ? "{$option_name}_alignment_{$device}" : "{$option_name}_alignment";
[13578] Fix | Delete
$button_alignment = $this->props["{$button_key}"];
[13579] Fix | Delete
[13580] Fix | Delete
// Ensure button alignment value is not empty.
[13581] Fix | Delete
if ( empty( $button_alignment ) ) {
[13582] Fix | Delete
continue;
[13583] Fix | Delete
}
[13584] Fix | Delete
[13585] Fix | Delete
$button_alignment_data = array(
[13586] Fix | Delete
'selector' => $button_alignment_selector,
[13587] Fix | Delete
'declaration' => esc_html( "text-align: {$button_alignment};" ),
[13588] Fix | Delete
);
[13589] Fix | Delete
[13590] Fix | Delete
if ( ! $is_desktop ) {
[13591] Fix | Delete
// Skip tablet/phone if responsive setting is disabled.
[13592] Fix | Delete
if ( ! $button_alignment_responsive_active ) {
[13593] Fix | Delete
continue;
[13594] Fix | Delete
}
[13595] Fix | Delete
[13596] Fix | Delete
// Set media query for tablet/phone.
[13597] Fix | Delete
$current_media_query = 'tablet' === $device ? 'max_width_980' : 'max_width_767';
[13598] Fix | Delete
$button_alignment_data['media_query'] = ET_Builder_Element::get_media_query( $current_media_query );
[13599] Fix | Delete
}
[13600] Fix | Delete
[13601] Fix | Delete
self::set_style( $function_name, $button_alignment_data );
[13602] Fix | Delete
}
[13603] Fix | Delete
}
[13604] Fix | Delete
}
[13605] Fix | Delete
[13606] Fix | Delete
if ( 'on' === $button_custom ) {
[13607] Fix | Delete
// Default.
[13608] Fix | Delete
$is_default_button_text_size = $this->_is_field_default( 'button_text_size', $button_text_size );
[13609] Fix | Delete
$is_default_button_icon_placement = $this->_is_field_default( 'button_icon_placement', $button_icon_placement );
[13610] Fix | Delete
$is_default_button_on_hover = $this->_is_field_default( 'button_on_hover', $button_on_hover );
[13611] Fix | Delete
$is_default_button_icon = $this->_is_field_default( 'button_icon', $button_icon );
[13612] Fix | Delete
$is_default_hover_placement = $is_default_button_on_hover && $is_default_button_icon_placement;
[13613] Fix | Delete
[13614] Fix | Delete
// Processed values.
[13615] Fix | Delete
$button_text_size_processed = $is_default_button_text_size ? '20px' : et_builder_process_range_value( $button_text_size );
[13616] Fix | Delete
$button_text_size_hover_processed = strlen( $button_text_size_hover ) && $button_text_size !== $button_text_size_hover ? et_builder_process_range_value( $button_text_size_hover ) : '';
[13617] Fix | Delete
$button_border_radius_processed = '' !== $button_border_radius && 'px' !== $button_border_radius ? et_builder_process_range_value( $button_border_radius ) : '';
[13618] Fix | Delete
$button_border_radius_hover_processed = null !== $button_border_radius_hover && 'px' !== $button_border_radius_hover && $button_border_radius_hover !== $button_border_radius ? et_builder_process_range_value( $button_border_radius_hover ) : '';
[13619] Fix | Delete
$button_use_icon = '' === $button_use_icon ? 'on' : $button_use_icon;
[13620] Fix | Delete
[13621] Fix | Delete
$css_element = ! empty( $option_settings['css']['main'] ) ? $option_settings['css']['main'] : $this->main_css_element . ' .et_pb_button';
[13622] Fix | Delete
$css_element_processed = $css_element;
[13623] Fix | Delete
$is_dbp = et_builder_has_limitation( 'use_limited_main' );
[13624] Fix | Delete
[13625] Fix | Delete
if ( $is_dbp && ! empty( $option_settings['css']['limited_main'] ) ) {
[13626] Fix | Delete
$css_element_processed = $option_settings['css']['limited_main'];
[13627] Fix | Delete
} else if ( ! $is_dbp ) {
[13628] Fix | Delete
// Explicitly add '.et_pb_section' to the selector so selector splitting during prefixing
[13629] Fix | Delete
// does not incorrectly add third party classes before #et-boc.
[13630] Fix | Delete
$css_element_processed = "body #page-container .et_pb_section {$css_element}";
[13631] Fix | Delete
}
[13632] Fix | Delete
[13633] Fix | Delete
if ( et_builder_has_limitation('force_use_global_important') ) {
[13634] Fix | Delete
$button_border_radius_processed .= '' !== $button_border_radius_processed ? ' !important' : '';
[13635] Fix | Delete
$button_border_radius_hover_processed .= '' !== $button_border_radius_hover_processed ? ' !important' : '';
[13636] Fix | Delete
}
[13637] Fix | Delete
[13638] Fix | Delete
$global_use_icon_value = et_builder_option( 'all_buttons_icon' );
[13639] Fix | Delete
[13640] Fix | Delete
$main_element_styles_padding_important = 'no' === $global_use_icon_value && 'off' !== $button_use_icon;
[13641] Fix | Delete
[13642] Fix | Delete
// Check existing button custom padding on desktop before generating padding.
[13643] Fix | Delete
// If current button has custom padding, we should not set default padding,
[13644] Fix | Delete
// just leave it empty.
[13645] Fix | Delete
$button_padding_name = 'et_pb_button' !== $function_name ? "{$option_name}_custom_padding" : 'custom_padding';
[13646] Fix | Delete
$button_padding_value = et_pb_responsive_options()->get_any_value( $this->props, $button_padding_name );
[13647] Fix | Delete
$button_padding_value = ! empty( $button_padding_value ) ? explode( '|', $button_padding_value ) : array();
[13648] Fix | Delete
$button_padding_right = self::$_->array_get( $button_padding_value, 1, '' );
[13649] Fix | Delete
$button_padding_left = self::$_->array_get( $button_padding_value, 3, '' );
[13650] Fix | Delete
[13651] Fix | Delete
$main_element_styles = sprintf(
[13652] Fix | Delete
'%1$s
[13653] Fix | Delete
%2$s
[13654] Fix | Delete
%3$s
[13655] Fix | Delete
%4$s
[13656] Fix | Delete
%5$s
[13657] Fix | Delete
%6$s
[13658] Fix | Delete
%7$s
[13659] Fix | Delete
%8$s
[13660] Fix | Delete
%9$s',
[13661] Fix | Delete
'' !== $button_text_color ? sprintf( 'color:%1$s !important;', $button_text_color ) : '',
[13662] Fix | Delete
'' !== $button_border_width && 'px' !== $button_border_width ? sprintf( 'border-width:%1$s !important;', et_builder_process_range_value( $button_border_width ) ) : '',
[13663] Fix | Delete
'' !== $button_border_color ? sprintf( 'border-color:%1$s;', $button_border_color ) : '',
[13664] Fix | Delete
'' !== $button_border_radius_processed ? sprintf( 'border-radius:%1$s;', $button_border_radius_processed ) : '',
[13665] Fix | Delete
'' !== $button_letter_spacing && 'px' !== $button_letter_spacing ? sprintf( 'letter-spacing:%1$s;', et_builder_process_range_value( $button_letter_spacing ) ) : '', // #5
[13666] Fix | Delete
! $is_default_button_text_size ? sprintf( 'font-size:%1$s;', $button_text_size_processed ) : '',
[13667] Fix | Delete
'' !== $button_font ? et_builder_set_element_font( $button_font, true ) : '',
[13668] Fix | Delete
'off' === $button_on_hover && empty( $button_padding_right ) ?
[13669] Fix | Delete
sprintf( 'padding-right: %1$s%2$s;',
[13670] Fix | Delete
'left' === $button_icon_placement ? '0.7em' : '2em',
[13671] Fix | Delete
$main_element_styles_padding_important ? ' !important' : ''
[13672] Fix | Delete
)
[13673] Fix | Delete
: '',
[13674] Fix | Delete
'off' === $button_on_hover && empty( $button_padding_left ) ?
[13675] Fix | Delete
sprintf( 'padding-left:%1$s%2$s;',
[13676] Fix | Delete
'left' === $button_icon_placement ? '2em' : '0.7em',
[13677] Fix | Delete
$main_element_styles_padding_important ? ' !important' : ''
[13678] Fix | Delete
)
[13679] Fix | Delete
: ''
[13680] Fix | Delete
);
[13681] Fix | Delete
[13682] Fix | Delete
self::set_style( $function_name, array(
[13683] Fix | Delete
'selector' => $css_element_processed,
[13684] Fix | Delete
'declaration' => rtrim( $main_element_styles ),
[13685] Fix | Delete
) );
[13686] Fix | Delete
[13687] Fix | Delete
// Check existing button custom padding on hover before generating padding on
[13688] Fix | Delete
// hover. If current button has custom padding on hover, we should not set
[13689] Fix | Delete
// default padding on hover, just leave it empty.
[13690] Fix | Delete
$button_padding_hover_value = et_pb_hover_options()->get_value( $button_padding_name, $this->props, '' );
[13691] Fix | Delete
$button_padding_hover_value = ! empty( $button_padding_hover_value ) ? explode( '|', $button_padding_hover_value ) : array();
[13692] Fix | Delete
$button_padding_hover_right = self::$_->array_get( $button_padding_hover_value, 1, '' );
[13693] Fix | Delete
$button_padding_hover_left = self::$_->array_get( $button_padding_hover_value, 3, '' );
[13694] Fix | Delete
[13695] Fix | Delete
$on_hover_padding_right = ! empty( $button_padding_hover_right ) ? '' : sprintf( 'padding-right: %1$s%2$s;',
[13696] Fix | Delete
'left' === $button_icon_placement ? '0.7em' : '2em',
[13697] Fix | Delete
$main_element_styles_padding_important ? ' !important' : ''
[13698] Fix | Delete
);
[13699] Fix | Delete
[13700] Fix | Delete
$on_hover_padding_left = ! empty( $button_padding_hover_left ) ? '' : sprintf( 'padding-left: %1$s%2$s;',
[13701] Fix | Delete
'left' === $button_icon_placement ? '2em' : '0.7em',
[13702] Fix | Delete
$main_element_styles_padding_important ? ' !important' : ''
[13703] Fix | Delete
);
[13704] Fix | Delete
[13705] Fix | Delete
// if button has default icon position or disabled globally and not enabled in module then no padding css should be generated.
[13706] Fix | Delete
$on_hover_padding = $is_default_button_icon_placement || ('default' === $button_use_icon && 'no' === $global_use_icon_value)
[13707] Fix | Delete
? ''
[13708] Fix | Delete
: sprintf( '%1$s%2$s',
[13709] Fix | Delete
$on_hover_padding_right,
[13710] Fix | Delete
$on_hover_padding_left
[13711] Fix | Delete
);
[13712] Fix | Delete
[13713] Fix | Delete
// Avoid adding useless style when value equals its default
[13714] Fix | Delete
$button_letter_spacing_hover = $this->_is_field_default( $hover->get_hover_field( 'button_letter_spacing' ), $button_letter_spacing_hover) ? '' : $button_letter_spacing_hover;
[13715] Fix | Delete
[13716] Fix | Delete
$main_element_styles_hover = sprintf(
[13717] Fix | Delete
'%1$s
[13718] Fix | Delete
%2$s
[13719] Fix | Delete
%3$s
[13720] Fix | Delete
%4$s
[13721] Fix | Delete
%5$s
[13722] Fix | Delete
%6$s
[13723] Fix | Delete
%7$s',
[13724] Fix | Delete
! empty( $button_text_color_hover ) ? sprintf( 'color:%1$s !important;', $button_text_color_hover ) : '',
[13725] Fix | Delete
! empty( $button_border_color_hover ) ? sprintf( 'border-color:%1$s !important;', $button_border_color_hover ) : '',
[13726] Fix | Delete
'' !== $button_border_radius_hover_processed ? sprintf( 'border-radius:%1$s;', $button_border_radius_hover_processed ) : '',
[13727] Fix | Delete
! empty( $button_letter_spacing_hover ) && 'px' !== $button_letter_spacing_hover && $button_letter_spacing_hover !== $button_letter_spacing ? sprintf( 'letter-spacing:%1$s;', et_builder_process_range_value( $button_letter_spacing_hover ) ) : '',
[13728] Fix | Delete
'off' === $button_on_hover || $hide_custom_padding_setting ? '' : $on_hover_padding,
[13729] Fix | Delete
'' !== $button_text_size_hover_processed ? sprintf( 'font-size:%1$s !important;', $button_text_size_hover_processed ) : '',
[13730] Fix | Delete
! empty( $button_border_width_hover ) ? sprintf( 'border-width:%1$s !important;', $button_border_width_hover ) : ''
[13731] Fix | Delete
);
[13732] Fix | Delete
[13733] Fix | Delete
$main_element_styles_hover_declaration = rtrim( $main_element_styles_hover );
[13734] Fix | Delete
[13735] Fix | Delete
if ( $main_element_styles_hover_declaration ) {
[13736] Fix | Delete
self::set_style( $function_name, array(
[13737] Fix | Delete
'selector' => $css_element_processed . ':hover',
[13738] Fix | Delete
'declaration' => $main_element_styles_hover_declaration,
[13739] Fix | Delete
) );
[13740] Fix | Delete
}
[13741] Fix | Delete
[13742] Fix | Delete
$main_element_styles_after_hover = '';
[13743] Fix | Delete
[13744] Fix | Delete
if ( 'off' === $button_use_icon ) {
[13745] Fix | Delete
$main_element_styles_after = 'display:none !important;';
[13746] Fix | Delete
$selector = sprintf( '%1$s:before, %1$s:after', $css_element_processed );
[13747] Fix | Delete
$no_icon_styles = '';
[13748] Fix | Delete
[13749] Fix | Delete
// Check button custom padding. Prepend option name to get the correct padding.
[13750] Fix | Delete
$custom_padding = self::$_->array_get( $this->props, 'custom_padding', '' );
[13751] Fix | Delete
if ( 'et_pb_button' !== $function_name ) {
[13752] Fix | Delete
$custom_padding = self::$_->array_get( $this->props, "{$option_name}_custom_padding", '' );
[13753] Fix | Delete
}
[13754] Fix | Delete
[13755] Fix | Delete
if ( empty( $custom_padding ) ) {
[13756] Fix | Delete
$no_icon_styles .= 'padding: 0.3em 1em !important;';
[13757] Fix | Delete
} else {
[13758] Fix | Delete
$padding_array = explode( '|', $custom_padding );
[13759] Fix | Delete
[13760] Fix | Delete
if ( empty( $padding_array[1] ) ) {
[13761] Fix | Delete
$no_icon_styles .= 'padding-right: 1em !important;';
[13762] Fix | Delete
}
[13763] Fix | Delete
[13764] Fix | Delete
if ( empty( $padding_array[3] ) ) {
[13765] Fix | Delete
$no_icon_styles .= 'padding-left: 1em !important;';
[13766] Fix | Delete
}
[13767] Fix | Delete
}
[13768] Fix | Delete
[13769] Fix | Delete
// No need to print custom padding if custom padding setting is disabled.
[13770] Fix | Delete
if ( ! empty( $no_icon_styles ) && ! $hide_custom_padding_setting ) {
[13771] Fix | Delete
self::set_style( $function_name, array(
[13772] Fix | Delete
'selector' => $css_element_processed . ',' . $css_element_processed . ':hover',
[13773] Fix | Delete
'declaration' => rtrim( $no_icon_styles ),
[13774] Fix | Delete
) );
[13775] Fix | Delete
}
[13776] Fix | Delete
[13777] Fix | Delete
[13778] Fix | Delete
} else {
[13779] Fix | Delete
$button_icon_code = '' !== $button_icon ? str_replace( ';', '', str_replace( '&#x', '', html_entity_decode( et_pb_process_font_icon( $button_icon ) ) ) ) : '';
[13780] Fix | Delete
[13781] Fix | Delete
$main_element_styles_after = sprintf(
[13782] Fix | Delete
'%1$s
[13783] Fix | Delete
%2$s
[13784] Fix | Delete
%3$s
[13785] Fix | Delete
%4$s
[13786] Fix | Delete
%5$s
[13787] Fix | Delete
%6$s
[13788] Fix | Delete
%7$s',
[13789] Fix | Delete
'' !== $button_icon_color ? sprintf( 'color:%1$s;', $button_icon_color ) : '',
[13790] Fix | Delete
'' !== $button_icon_code ? 'line-height: inherit;' : '',
[13791] Fix | Delete
'' !== $button_icon_code ? 'font-size: inherit !important;' : '',
[13792] Fix | Delete
$is_default_hover_placement ? '' : sprintf( 'opacity:%1$s;', 'off' !== $button_on_hover ? '0' : '1' ),
[13793] Fix | Delete
'off' !== $button_on_hover && '' !== $button_icon_code ?
[13794] Fix | Delete
sprintf( 'margin-left: %1$s; %2$s: auto;',
[13795] Fix | Delete
'left' === $button_icon_placement ? '-1.3em' : '-1em',
[13796] Fix | Delete
'left' === $button_icon_placement ? 'right' : 'left'
[13797] Fix | Delete
)
[13798] Fix | Delete
: '',
[13799] Fix | Delete
'off' === $button_on_hover ?
[13800] Fix | Delete
sprintf( 'margin-left: %1$s; %2$s:auto;',
[13801] Fix | Delete
'left' === $button_icon_placement ? '-1.3em' : '.3em',
[13802] Fix | Delete
'left' === $button_icon_placement ? 'right' : 'left'
[13803] Fix | Delete
)
[13804] Fix | Delete
: '',
[13805] Fix | Delete
( ! $is_default_button_icon_placement && in_array( $button_use_icon , array( 'default', 'on' ) ) ? 'display: inline-block;' : '' )
[13806] Fix | Delete
);
[13807] Fix | Delete
[13808] Fix | Delete
if ( ! empty( $button_icon_color_hover ) && $button_icon_color_hover !== $button_icon_color ) {
[13809] Fix | Delete
$main_element_styles_after_hover = sprintf( 'color: %1$s', $button_icon_color_hover );
[13810] Fix | Delete
}
[13811] Fix | Delete
[13812] Fix | Delete
// Reverse icon position
[13813] Fix | Delete
if ( 'left' === $button_icon_placement ) {
[13814] Fix | Delete
$button_icon_left_content = '' !== $button_icon_code ? 'content: attr(data-icon);' : '';
[13815] Fix | Delete
[13816] Fix | Delete
self::set_style( $function_name, array(
[13817] Fix | Delete
'selector' => $css_element_processed . ':after',
[13818] Fix | Delete
'declaration' => 'display: none;',
[13819] Fix | Delete
) );
[13820] Fix | Delete
[13821] Fix | Delete
if ( et_builder_has_limitation('use_additional_limiting_styles') ) {
[13822] Fix | Delete
self::set_style( $function_name, array(
[13823] Fix | Delete
'selector' => '.et_pb_row ' . $css_element_processed . ':hover',
[13824] Fix | Delete
'declaration' => 'padding-right: 1em; padding-left: 2em;',
[13825] Fix | Delete
) );
[13826] Fix | Delete
}
[13827] Fix | Delete
[13828] Fix | Delete
self::set_style( $function_name, array(
[13829] Fix | Delete
'selector' => $css_element_processed . ':before',
[13830] Fix | Delete
'declaration' => $button_icon_left_content . ' ; font-family: "ETmodules" !important;',
[13831] Fix | Delete
) );
[13832] Fix | Delete
}
[13833] Fix | Delete
[13834] Fix | Delete
// if button has default icon/hover/placement and disabled globally or not enabled in module then no :after:hover css should be generated.
[13835] Fix | Delete
if ( ! ( $is_default_button_icon && $is_default_hover_placement ) &&
[13836] Fix | Delete
( 'default' !== $button_use_icon || 'no' !== $global_use_icon_value ) ) {
[13837] Fix | Delete
$hover_after_styles = sprintf(
[13838] Fix | Delete
'%1$s
[13839] Fix | Delete
%2$s
[13840] Fix | Delete
%3$s',
[13841] Fix | Delete
'' !== $button_icon_code ?
[13842] Fix | Delete
sprintf( 'margin-left:%1$s;', '35' !== $button_icon_code ? '.3em' : '0' )
[13843] Fix | Delete
: '',
[13844] Fix | Delete
'' !== $button_icon_code ?
[13845] Fix | Delete
sprintf( '%1$s: auto; margin-left: %2$s;',
[13846] Fix | Delete
'left' === $button_icon_placement ? 'right' : 'left',
[13847] Fix | Delete
'left' === $button_icon_placement ? '-1.3em' : '.3em'
[13848] Fix | Delete
)
[13849] Fix | Delete
: '',
[13850] Fix | Delete
'off' !== $button_on_hover ? 'opacity: 1;' : ''
[13851] Fix | Delete
);
[13852] Fix | Delete
[13853] Fix | Delete
self::set_style( $function_name, array(
[13854] Fix | Delete
'selector' => $css_element_processed . ':hover' . $button_icon_pseudo_selector,
[13855] Fix | Delete
'declaration' => rtrim( $hover_after_styles ),
[13856] Fix | Delete
) );
[13857] Fix | Delete
}
[13858] Fix | Delete
[13859] Fix | Delete
if ( '' === $button_icon && ! $is_default_button_text_size ) {
[13860] Fix | Delete
$default_icons_size = '1.6em';
[13861] Fix | Delete
$custom_icon_size = $button_text_size_processed;
[13862] Fix | Delete
[13863] Fix | Delete
self::set_style( $function_name, array(
[13864] Fix | Delete
'selector' => $css_element_processed . $button_icon_pseudo_selector,
[13865] Fix | Delete
'declaration' => sprintf( 'font-size:%1$s;', $default_icons_size ),
[13866] Fix | Delete
) );
[13867] Fix | Delete
[13868] Fix | Delete
self::set_style( $function_name, array(
[13869] Fix | Delete
'selector' => 'body.et_button_custom_icon #page-container ' . $css_element . $button_icon_pseudo_selector,
[13870] Fix | Delete
'declaration' => sprintf( 'font-size:%1$s;', $custom_icon_size ),
[13871] Fix | Delete
) );
[13872] Fix | Delete
}
[13873] Fix | Delete
[13874] Fix | Delete
if ( '' === $button_icon && '' !== $button_text_size_hover_processed ) {
[13875] Fix | Delete
$default_icons_size = '1.6em';
[13876] Fix | Delete
$custom_icon_size = $button_text_size_hover_processed;
[13877] Fix | Delete
[13878] Fix | Delete
self::set_style( $function_name, array(
[13879] Fix | Delete
'selector' => $css_element_processed . ':hover' . $button_icon_pseudo_selector,
[13880] Fix | Delete
'declaration' => sprintf( 'font-size:%1$s;', $default_icons_size ),
[13881] Fix | Delete
) );
[13882] Fix | Delete
[13883] Fix | Delete
self::set_style( $function_name, array(
[13884] Fix | Delete
'selector' => 'body.et_button_custom_icon #page-container ' . $css_element . ':hover' . $button_icon_pseudo_selector,
[13885] Fix | Delete
'declaration' => sprintf( 'font-size:%1$s;', $custom_icon_size ),
[13886] Fix | Delete
) );
[13887] Fix | Delete
}
[13888] Fix | Delete
[13889] Fix | Delete
$selector = $css_element_processed . $button_icon_pseudo_selector;
[13890] Fix | Delete
}
[13891] Fix | Delete
[13892] Fix | Delete
self::set_style( $function_name, array(
[13893] Fix | Delete
'selector' => $selector,
[13894] Fix | Delete
'declaration' => rtrim( $main_element_styles_after ),
[13895] Fix | Delete
) );
[13896] Fix | Delete
[13897] Fix | Delete
self::set_style( $function_name, array(
[13898] Fix | Delete
'selector' => et_pb_hover_options()->add_hover_to_selectors( $selector ),
[13899] Fix | Delete
'declaration' => rtrim( $main_element_styles_after_hover ),
[13900] Fix | Delete
) );
[13901] Fix | Delete
[13902] Fix | Delete
// Responsive Button Styles.
[13903] Fix | Delete
$prev_icon = $button_icon;
[13904] Fix | Delete
foreach( array( 'tablet', 'phone' ) as $device ) {
[13905] Fix | Delete
$current_media_query = 'tablet' === $device ? 'max_width_980' : 'max_width_767';
[13906] Fix | Delete
$current_text_size = 'tablet' === $device ? $button_text_size_tablet : $button_text_size_phone;
[13907] Fix | Delete
$current_text_size = '' !== $current_text_size ? et_builder_process_range_value( $current_text_size ) : '';
[13908] Fix | Delete
$current_text_color = 'tablet' === $device ? $button_text_color_tablet : $button_text_color_phone;
[13909] Fix | Delete
$current_border_width = 'tablet' === $device ? $button_border_width_tablet : $button_border_width_phone;
[13910] Fix | Delete
$current_border_width = '' !== $current_border_width ? et_builder_process_range_value( $current_border_width ) : '';
[13911] Fix | Delete
$current_border_color = 'tablet' === $device ? $button_border_color_tablet : $button_border_color_phone;
[13912] Fix | Delete
$current_border_radius = 'tablet' === $device ? $button_border_radius_tablet : $button_border_radius_phone;
[13913] Fix | Delete
$current_border_radius = '' !== $current_border_radius ? et_builder_process_range_value( $current_border_radius ) : '';
[13914] Fix | Delete
$current_letter_spacing = 'tablet' === $device ? $button_letter_spacing_tablet : $button_letter_spacing_phone;
[13915] Fix | Delete
$current_letter_spacing = '' !== $current_letter_spacing ? et_builder_process_range_value( $current_letter_spacing ) : '';
[13916] Fix | Delete
$current_font = 'tablet' === $device ? $button_font_tablet : $button_font_phone;
[13917] Fix | Delete
$current_icon_color = 'tablet' === $device ? $button_icon_color_tablet : $button_icon_color_phone;
[13918] Fix | Delete
[13919] Fix | Delete
// The attributes below should inherit larger device.
[13920] Fix | Delete
$current_icon = et_pb_responsive_options()->get_property_value( $this->props, "{$option_name}_icon", $button_icon, $device, true );
[13921] Fix | Delete
$current_icon_placement = et_pb_responsive_options()->get_property_value( $this->props, "{$option_name}_icon_placement", $button_icon_placement, $device, true );
[13922] Fix | Delete
$current_on_hover = et_pb_responsive_options()->get_property_value( $this->props, "{$option_name}_on_hover", $button_on_hover, $device, true );
[13923] Fix | Delete
[13924] Fix | Delete
$is_default_hover_placement = '' === $current_on_hover && '' === $current_icon_placement;
[13925] Fix | Delete
$button_icon_pseudo_selector = 'left' === $current_icon_placement ? ':before' : ':after';
[13926] Fix | Delete
[13927] Fix | Delete
// Force to have important tag.
[13928] Fix | Delete
if ( et_builder_has_limitation('force_use_global_important') ) {
[13929] Fix | Delete
$current_border_radius .= '' !== $current_border_radius ? ' !important' : '';
[13930] Fix | Delete
}
[13931] Fix | Delete
[13932] Fix | Delete
// Get right and left custom padding value. The reset padding should not
[13933] Fix | Delete
// be applied if current button has custom padding defined.
[13934] Fix | Delete
$current_padding_name = et_pb_responsive_options()->get_field_name( $button_padding_name, $device );
[13935] Fix | Delete
$current_padding_value = et_pb_responsive_options()->get_any_value( $this->props, $current_padding_name, '', true );
[13936] Fix | Delete
$current_padding_value = ! empty( $current_padding_value ) ? explode( '|', $current_padding_value ) : array();
[13937] Fix | Delete
$current_padding_default = et_pb_responsive_options()->get_default_value( $this->props, $current_padding_name );
[13938] Fix | Delete
$current_padding_default = ! empty( $current_padding_default ) ? explode( '|', $current_padding_default ) : array();
[13939] Fix | Delete
$current_padding_right = self::$_->array_get( $current_padding_value, 1, '' );
[13940] Fix | Delete
$current_padding_left = self::$_->array_get( $current_padding_value, 3, '' );
[13941] Fix | Delete
$current_padding_default_right = self::$_->array_get( $current_padding_default, 1, '' );
[13942] Fix | Delete
$current_padding_default_left = self::$_->array_get( $current_padding_default, 3, '' );
[13943] Fix | Delete
[13944] Fix | Delete
// Reset responsive padding right. Only reset padding if current device
[13945] Fix | Delete
// doesn't have value and the previous device has value to be reset.
[13946] Fix | Delete
$responsive_padding_right = '';
[13947] Fix | Delete
$responsive_hover_padding_right = '';
[13948] Fix | Delete
if ( empty( $current_padding_right ) && ! empty( $current_padding_default_right ) ) {
[13949] Fix | Delete
// Default padding for normal and hover.
[13950] Fix | Delete
$responsive_padding_right = '1em';
[13951] Fix | Delete
[13952] Fix | Delete
// If padding hover right deosn't exist, add default padding for hover.
[13953] Fix | Delete
if ( empty( $button_padding_hover_right ) ) {
[13954] Fix | Delete
$responsive_hover_padding_right = 'left' === $current_icon_placement ? '2em' : '0.7em';
[13955] Fix | Delete
}
[13956] Fix | Delete
[13957] Fix | Delete
// If icon on hover is disabled, set padding value like hover state
[13958] Fix | Delete
// and remove padding for hover because it's same.
[13959] Fix | Delete
if ( 'off' === $current_on_hover ) {
[13960] Fix | Delete
$responsive_padding_right = 'left' === $current_icon_placement ? '2em' : '0.7em';
[13961] Fix | Delete
$responsive_hover_padding_right = '';
[13962] Fix | Delete
}
[13963] Fix | Delete
}
[13964] Fix | Delete
[13965] Fix | Delete
// Reset responsive padding left. Only reset padding if current device
[13966] Fix | Delete
// doesn't have value and the previous device has value to be reset.
[13967] Fix | Delete
$responsive_padding_left = '';
[13968] Fix | Delete
$responsive_hover_padding_left = '';
[13969] Fix | Delete
if ( empty( $current_padding_left ) && ! empty( $current_padding_default_left ) ) {
[13970] Fix | Delete
// Default padding for normal and hover.
[13971] Fix | Delete
$responsive_padding_left = '1em';
[13972] Fix | Delete
[13973] Fix | Delete
// If padding hover left deosn't exist, add default padding for hover.
[13974] Fix | Delete
if ( empty( $button_padding_hover_left ) ) {
[13975] Fix | Delete
$responsive_hover_padding_left = 'left' === $current_icon_placement ? '2em' : '0.7em';
[13976] Fix | Delete
}
[13977] Fix | Delete
[13978] Fix | Delete
// If icon on hover is disabled, set padding value like hover state
[13979] Fix | Delete
// and remove padding for hover because it's same.
[13980] Fix | Delete
if ( 'off' === $current_on_hover ) {
[13981] Fix | Delete
$responsive_padding_left = 'left' === $current_icon_placement ? '0.7em' : '2em';
[13982] Fix | Delete
$responsive_hover_padding_left = '';
[13983] Fix | Delete
}
[13984] Fix | Delete
}
[13985] Fix | Delete
[13986] Fix | Delete
// Remove responsive on hover padding left & right.
[13987] Fix | Delete
if ( '' === $current_icon_placement || ( 'default' === $button_use_icon && 'no' === $global_use_icon_value ) || $hide_custom_padding_setting ) {
[13988] Fix | Delete
$responsive_hover_padding_left = '';
[13989] Fix | Delete
$responsive_hover_padding_right = '';
[13990] Fix | Delete
}
[13991] Fix | Delete
[13992] Fix | Delete
// Responsive button declaration.
[13993] Fix | Delete
$responsive_button_declaration = trim( sprintf(
[13994] Fix | Delete
'%1$s
[13995] Fix | Delete
%2$s
[13996] Fix | Delete
%3$s
[13997] Fix | Delete
%4$s
[13998] Fix | Delete
%5$s
[13999] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function