Astra_Ext_Blog_Pro_Markup::astra_render_social_sharing()

Render social sharing.


Description


Source

File: addons/blog-pro/classes/class-astra-ext-blog-pro-markup.php

		public function astra_render_social_sharing() {

			$items                 = astra_get_option( 'single-post-social-sharing-icon-list' );
			$items                 = isset( $items['items'] ) ? $items['items'] : array();
			$post_categories       = wp_strip_all_tags( get_the_category_list( ',' ) );
			$post_title            = get_the_title();
			$post_link             = urlencode( get_the_permalink() ); // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.urlencode_urlencode
			$email_title           = str_replace( '&', '%26', $post_title );
			$enable_heading        = astra_get_option( 'single-post-social-sharing-heading-enable' );
			$heading_text          = astra_get_option( 'single-post-social-sharing-heading-text' );
			$heading_position      = astra_get_option( 'single-post-social-sharing-heading-position' );
			$show_label            = astra_get_option( 'single-post-social-sharing-icon-label' );
			$show_label_class      = $show_label ? 'social-show-label-true' : 'social-show-label-false';
			$color_type            = astra_get_option( 'single-post-social-sharing-icon-color-type' );
			$label_position        = astra_get_option( 'single-post-social-sharing-icon-label-position' );
			$social_icon_condition = array( 'facebook', 'pinterest', 'linkedin', 'reddit', 'whatsapp', 'sms' );

			if ( $items ) {
				ob_start();
				?>
					<div class="ast-post-social-sharing">
						<?php if ( $enable_heading && 'above' === $heading_position ) { ?>
							<h3 class="ast-social-sharing-heading"> <?php echo esc_html( $heading_text ); ?></h3>
						<?php } ?>
						<div class="ast-social-inner-wrap element-social-inner-wrap <?php echo esc_attr( $show_label_class ); ?> ast-social-color-type-<?php echo esc_attr( $color_type ); ?>">
							<?php
							if ( is_array( $items ) && ! empty( $items ) ) {

								foreach ( $items as $item ) {

									if ( $item['enabled'] ) {

										$link = $item['url'];

										switch ( $item['id'] ) {
											case 'facebook':
												$link = add_query_arg(
													array(
														'u' => $post_link,
													),
													'https://www.facebook.com/sharer.php'
												);
												break;
											case 'twitter':
												$link = add_query_arg(
													array(
														'url'      => $post_link,
														'text'     => rawurlencode( html_entity_decode( wp_strip_all_tags( $post_title ), ENT_COMPAT, 'UTF-8' ) ),
														'hashtags' => $post_categories,
													),
													'http://twitter.com/share'
												);
												break;
											case 'email':
												$link = add_query_arg(
													array(
														'subject' => wp_strip_all_tags( $email_title ),
														'body'    => $post_link,
													),
													'mailto:'
												);
												break;
											case 'pinterest':
												$link = 'https://pinterest.com/pin/create/bookmarklet/?media=' . get_the_post_thumbnail_url() . '&url=' . $post_link . '&description=' . $post_title;
												break;
											case 'linkedin':
												$link = 'https://www.linkedin.com/shareArticle?mini=true&url=' . $post_link . '&title=' . urlencode( $post_title ) . '&source=' . urlencode( get_bloginfo( 'name' ) ); // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.urlencode_urlencode
												break;
											case 'tumblr':
												$link = 'http://www.tumblr.com/share/link?url=' . $post_link . '&title=' . $post_title;
												break;
											case 'reddit':
												$link = 'https://reddit.com/submit?url=' . $post_link . '&title=' . $post_title;
												break;
											case 'whatsapp':
												$link = 'https://wa.me/?text=' . $post_link;
												break;
											case 'sms':
												$link = 'sms://?&body=' . $post_title . ' - ' . $post_link;
												break;
											case 'vk':
												$link = 'http://vk.com/share.php?url=' . urlencode( $post_link ); // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.urlencode_urlencode
												break;
										}

										$aria_label        = $item['label'] ? $item['label'] : $item['id'];
										$is_phone_or_email = 'phone' === $item['id'] || 'email' === $item['id'];
										$add_target        = $is_phone_or_email ? '' : '_blank';
										$add_rel           = $is_phone_or_email ? '' : 'noopener noreferrer';
										?>
											<a href="<?php echo esc_url( $link ); ?>" aria-label="<?php echo esc_attr( $aria_label ); ?>" target="<?php echo esc_attr( $add_target ); ?>" rel="<?php echo esc_attr( $add_rel ); ?>" class="ast-inline-flex ast-social-icon-a">
											<?php
											if ( $show_label && $label_position && 'above' === $label_position ) {
												?>
													<span class="social-item-label"> <?php echo esc_html( $item['label'] ); ?> </span>
												<?php } ?>
												<?php
													$icon_color            = ! empty( $item['color'] ) ? $item['color'] : '#3a3a3a';
													$icon_background_color = ! empty( $item['background'] ) ? $item['background'] : 'transparent';
												?>
												<div style="--color: <?php echo esc_attr( $icon_color ); ?>; --background-color:<?php echo esc_attr( $icon_background_color ); ?>;" class="ast-social-element ast-<?php echo esc_attr( $item['id'] ); ?>-social-item">
													<?php echo do_shortcode( Astra_Builder_UI_Controller::fetch_svg_icon( in_array( $item['icon'], $social_icon_condition ) ? $item['icon'] . '-fill' : $item['icon'] ) ); ?>
												</div>
												<?php
												if ( $show_label && $label_position && 'below' === $label_position ) {
													?>
														<span class="social-item-label"> <?php echo esc_html( $item['label'] ); ?> </span>
												<?php } ?>
											</a>
										<?php
									}
								}
							}
							?>
						</div>
						<?php if ( $enable_heading && 'below' === $heading_position ) { ?>
							<h3 class="ast-social-sharing-heading"> <?php echo esc_html( $heading_text ); ?></h3>
						<?php } ?>
					</div>
				<?php
				echo do_shortcode( ob_get_clean() );
			}
		}

Changelog

Changelog
Version Description
4.1.0 Introduced.

User Contributed Notes

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