Astra_Builder_UI_Controller::render_social_icon( string $index, string $builder_type = 'header' )
Prepare Social Icon HTML.
Description
Parameters
- $index
-
(string) (Required) The Index of the social icon.
- $builder_type
-
(string) (Optional) the type of the builder.
Default value: 'header'
Source
File: inc/builder/controllers/class-astra-builder-ui-controller.php
public static function render_social_icon( $index, $builder_type = 'header' ) {
$items = astra_get_option( $builder_type . '-social-icons-' . $index );
$items = isset( $items['items'] ) ? $items['items'] : array();
$show_label = astra_get_option( $builder_type . '-social-' . $index . '-label-toggle' );
$color_type = astra_get_option( $builder_type . '-social-' . $index . '-color-type' );
$social_stack = astra_get_option( $builder_type . '-social-' . $index . '-stack', 'none' );
echo '<div class="ast-' . esc_attr( $builder_type ) . '-social-' . esc_attr( $index ) . '-wrap ast-' . esc_attr( $builder_type ) . '-social-wrap">';
if ( is_customize_preview() ) {
self::render_customizer_edit_button();
}
echo '<div class="' . esc_attr( $builder_type ) . '-social-inner-wrap element-social-inner-wrap social-show-label-' . ( $show_label ? 'true' : 'false' ) . ' ast-social-color-type-' . esc_attr( $color_type ) . ' ast-social-stack-' . esc_attr( $social_stack ) . ' ast-social-element-style-filled">';
if ( is_array( $items ) && ! empty( $items ) ) {
foreach ( $items as $item ) {
if ( $item['enabled'] ) {
$link = $item['url'];
switch ( $item['id'] ) {
case 'phone':
$link = 'tel:' . $item['url'];
break;
case 'email':
$link = 'mailto:' . $item['url'];
break;
case 'whatsapp':
$link = 'https://api.whatsapp.com/send?phone=' . $item['url'];
break;
}
echo '<a href="' . esc_url( $link ) . '"' . esc_attr( $item['label'] ? ' aria-label=' . $item['label'] . '' : ' aria-label=' . $item['id'] . '' ) . ' ' . ( 'phone' === $item['id'] || 'email' === $item['id'] ? '' : 'target="_blank" rel="noopener noreferrer" ' ) . 'style="--color: ' . esc_attr( ! empty( $item['color'] ) ? $item['color'] : '#3a3a3a' ) . '; --background-color: ' . esc_attr( ! empty( $item['background'] ) ? $item['background'] : 'transparent' ) . ';" class="ast-builder-social-element ast-inline-flex ast-' . esc_attr( $item['id'] ) . ' ' . esc_attr( $builder_type ) . '-social-item">';
echo self::fetch_svg_icon( $item['icon'] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
if ( $show_label ) {
echo '<span class="social-item-label">' . esc_html( $item['label'] ) . '</span>';
}
echo '</a>';
}
}
}
echo apply_filters( 'astra_social_icons_after', '' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
echo '</div>';
echo '</div>';
}
Expand full source code Collapse full source code View on Trac