HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux WebLive 5.15.0-79-generic #86-Ubuntu SMP Mon Jul 10 16:07:21 UTC 2023 x86_64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/html/wpdehaus/wp-content/themes/salient/woocommerce/single-product/product-image.php
<?php
/**
 * Single Product Image
 *
 * This template can be overridden by copying it to yourtheme/woocommerce/single-product/product-image.php.
 *
 * HOWEVER, on occasion WooCommerce will need to update template files and you
 * (the theme developer) will need to copy the new files to your theme to
 * maintain compatibility. We try to do this as little as possible, but it does
 * happen. When this occurs the version of the template file will be bumped and
 * the readme will list any important changes.
 *
 * @see     https://docs.woocommerce.com/document/template-structure/
 * @author  WooThemes
 * @package WooCommerce/Templates
 * @version 3.5.1
 */

defined( 'ABSPATH' ) || exit;

global $post, $product, $woocommerce, $nectar_options;

$product_gallery_style = (!empty($nectar_options['single_product_gallery_type'])) ? $nectar_options['single_product_gallery_type'] : 'default';

if( in_array($product_gallery_style, array('left_thumb_sticky','two_column_images')) ) {
	wp_enqueue_script('stickykit');
}

if( in_array($product_gallery_style, array('ios_slider','left_thumb_sticky')) ) {
	wp_enqueue_script('flickity');
}

// In case product is called from product_page shortcode
wp_enqueue_style( 'nectar-woocommerce-single' ); 

wp_enqueue_script('nectar-single-product');

if( isset( $nectar_options['product_reviews_style'] ) && 
    'off_canvas' === $nectar_options['product_reviews_style'] ) {
  wp_enqueue_script('nectar-single-product-reviews');
}

$gallery_thumbnail = wc_get_image_size( 'gallery_thumbnail' );
$gallery_thumbnail_size = apply_filters( 'woocommerce_gallery_thumbnail_size', array( $gallery_thumbnail['width'], $gallery_thumbnail['height'] ) );


if( in_array($product_gallery_style, array('ios_slider','left_thumb_sticky','left_thumb_slider')) ) {

	if( $woocommerce && version_compare( $woocommerce->version, "3.0", ">=" ) ) {
		$product_attach_ids = $product->get_gallery_image_ids();
	} else {
		$product_attach_ids = $product->get_gallery_attachment_ids();
	}

	$has_gallery_imgs = ($product_attach_ids) ? 'true' : 'false';

	$slider_container_class       = 'flickity';
	$slider_thumb_container_class = 'flickity';
	$slider_wrap_class            = 'slider';
	$slider_slide_class           = 'slide';

	$wrapper_classes   = apply_filters( 'woocommerce_single_product_image_gallery_classes', array(
		'woocommerce-product-gallery',
		'woocommerce-product-gallery--' . ( has_post_thumbnail() ? 'with-images' : 'without-images' ),
		'images'
	) );
	
	?>
    <div class="<?php echo esc_attr( implode( ' ', array_map( 'sanitize_html_class', $wrapper_classes ) ) ); ?>" data-has-gallery-imgs="<?php echo esc_attr( $has_gallery_imgs ); ?>">

    	<div class="<?php echo esc_attr($slider_container_class); ?> product-slider">

				<div class="<?php echo esc_attr($slider_wrap_class); ?> generate-markup">

					<?php if (has_post_thumbnail()) {

						$img_link = wp_get_attachment_url( get_post_thumbnail_id($post->ID) );

						$post_thumbnail_id = get_post_thumbnail_id( $post->ID );
						$thumbnail_size    = apply_filters( 'woocommerce_product_thumbnails_large_size', 'full' );
						$full_size_image   = wp_get_attachment_image_src( $post_thumbnail_id, $thumbnail_size );
						$thumbnail_post    = get_post( $post_thumbnail_id );
						$image_title       = get_post_field( 'post_excerpt', $post_thumbnail_id );

						$attributes = array(
							'title'                   => get_post_field( 'post_title', $post_thumbnail_id ),
							'data-caption'            => get_post_field( 'post_excerpt', $post_thumbnail_id ),
							'data-src'                => $full_size_image[0],
							'data-large_image'        => $full_size_image[0],
							'data-large_image_width'  => $full_size_image[1],
							'data-large_image_height' => $full_size_image[2],
						);

					?>

	        <div class="<?php echo esc_attr($slider_slide_class); ?>">
	        	<?php 
						$main_image_markup = '<div data-thumb="'. get_the_post_thumbnail_url( $post->ID, $gallery_thumbnail_size ) .'" class="woocommerce-product-gallery__image easyzoom">
	          	<a href="' . esc_url( $img_link ). '" class="no-ajaxy">'.get_the_post_thumbnail( $post->ID, 'shop_single', $attributes ) . '</a>
	          </div>';
						echo apply_filters( 'woocommerce_single_product_image_thumbnail_html', $main_image_markup, $product->get_image_id() );
						?>
	        </div>

					<?php 
					} 
					else {
						echo '<div class="'.esc_attr($slider_slide_class).'">'.apply_filters( 'woocommerce_single_product_image_html', sprintf( '<img src="%s" alt="%s" />', wc_placeholder_img_src( 'woocommerce_single' ), __( 'Placeholder', 'woocommerce' ) ), $post->ID ) .'</div>';
					}

					if ( $product_attach_ids ) {

						foreach ($product_attach_ids as $product_attach_id) {

							$img_link = wp_get_attachment_url( $product_attach_id );

							if (!$img_link) {
								continue;
							}


								$full_size_image   = wp_get_attachment_image_src( $product_attach_id, 'full' );
								$attributes = array(
									'data-caption'            => get_post_field( 'post_excerpt', $product_attach_id ),
									'data-src'                => $full_size_image[0],
									'data-large_image'        => $full_size_image[0],
									'data-large_image_width'  => $full_size_image[1],
									'data-large_image_height' => $full_size_image[2],
								);

							echo '<div class="'.esc_attr($slider_slide_class).'"><div class="woocommerce-product-gallery__image easyzoom" data-thumb="'. get_the_post_thumbnail_url( $post->ID, $gallery_thumbnail_size ) .'"><a href="'. wp_get_attachment_url($product_attach_id) .'" class="no-ajaxy">';
							echo wp_get_attachment_image($product_attach_id, 'shop_single', false, $attributes);
							echo '</a></div></div>';

						}
					}
				?>

			</div>
		</div>
		
		<?php if ( $product_attach_ids ) {  ?>
	
				<?php if('left_thumb_slider' === $product_gallery_style) {
					$visible_class = (sizeof($product_attach_ids) > 4) ? ' visible' : '';
					echo '<div class="product-thumbs-wrap'. esc_attr($visible_class) .'"><div class="button-prev"><i class="fa fa-angle-up" aria-hidden="true"></i></div>';
				} ?>
	
				<div class="<?php echo esc_attr($slider_thumb_container_class); ?> product-thumbs">
					<div class="<?php echo esc_attr($slider_wrap_class); ?> generate-markup">
							<?php
							if ( has_post_thumbnail() ) { ?>
								<div class="<?php echo esc_attr($slider_slide_class); ?> thumb active"><div class="thumb-inner"><?php echo get_the_post_thumbnail( $post->ID, apply_filters( 'single_product_small_thumbnail_size', $gallery_thumbnail_size ) ) ?></div></div>
							<?php }
	
							foreach ( $product_attach_ids as $product_attach_id) {
	
								$img_link = wp_get_attachment_url($product_attach_id);
	
								if ( !$img_link ) {
									continue;
								}
	
								$img_size    = wp_get_attachment_image($product_attach_id, apply_filters('single_product_small_thumbnail_size', $gallery_thumbnail_size));
								$classes     = array();
								$image_class = esc_attr( implode(' ', $classes));
	
								echo apply_filters( 'woocommerce_single_product_image_thumbnail_html', sprintf( '<div class="thumb %s"><div class="thumb-inner">%s</div></div>', $slider_slide_class, $img_size ), $product_attach_id, $post->ID, $image_class );
	
	
							} ?>
				</div>
			</div>
			<?php 
			
			if('left_thumb_slider' === $product_gallery_style) {
				echo '<div class="button-next"><i class="fa fa-angle-down" aria-hidden="true"></i></div></div>';
			} 
	
		}
		?>
	</div>

<?php 
} // End custom bottom thumbnail slider/left thumbnail.

// Two column gallery markup.
else if( 'two_column_images' === $product_gallery_style ) {
	
	global $product;
	
	$post_thumbnail_id  = $product->get_image_id();
	$product_attach_ids = $product->get_gallery_image_ids();
	$has_gallery_imgs   = false;
	
	if ( $product_attach_ids ) {
		foreach ($product_attach_ids as $product_attach_id) {
			$img_link = wp_get_attachment_url( $product_attach_id );
			if (!$img_link) {
				continue;
			}
			$has_gallery_imgs = true;
			break;
		}
	}
	
	$wrapper_classes    = apply_filters( 'woocommerce_single_product_image_gallery_classes', array(
		'woocommerce-product-gallery',
		'woocommerce-product-gallery--' . ( has_post_thumbnail() ? 'with-images' : 'without-images' ),
		'images',
		'woocommerce-product-gallery-with-' . ( true === $has_gallery_imgs ? 'multiple-images' : 'single-image')
	) ); ?>
	
	<div class="<?php echo esc_attr( implode( ' ', array_map( 'sanitize_html_class', $wrapper_classes ) ) ); ?>">
		<figure class="woocommerce-product-gallery__wrapper">
		<?php 
		// Featured Image.
		if ( has_post_thumbnail() ) {
			$main_image_markup = wc_get_gallery_image_html( $post_thumbnail_id, true );
			echo apply_filters( 'woocommerce_single_product_image_thumbnail_html', $main_image_markup, $product->get_image_id() );
		} else {
			echo '<div class="woocommerce-product-gallery__image--placeholder">';
			echo sprintf( '<img src="%s" alt="%s" class="wp-post-image" />', esc_url( wc_placeholder_img_src( 'woocommerce_single' ) ), esc_html__( 'Awaiting product image', 'woocommerce' ) );
			echo '</div>';
		}
		// Gallery Images.
		if ( true === $has_gallery_imgs ) {
			
			foreach ($product_attach_ids as $product_attach_id) {
				
				$img_link = wp_get_attachment_url( $product_attach_id );
				
				if (!$img_link) {
					continue;
				}
				
				$full_size_image   = wp_get_attachment_image_src( $product_attach_id, 'full' );
				$attributes = array(
					'data-caption'            => get_post_field( 'post_excerpt', $product_attach_id ),
					'data-src'                => $full_size_image[0],
					'data-large_image'        => $full_size_image[0],
					'data-large_image_width'  => $full_size_image[1],
					'data-large_image_height' => $full_size_image[2],
				);
				
				echo '<div class="woocommerce-product-gallery__image"><a href="'. wp_get_attachment_url($product_attach_id) .'" class="no-ajaxy">';
				
				$gallery_img_size = 'shop_single';
				if( isset( $nectar_options['single_product_custom_image_dimensions'] ) && 
					'1' === $nectar_options['single_product_custom_image_dimensions'] ) {

					$gallery_img_size = 'woocommerce_single';
				}
	
				echo wp_get_attachment_image($product_attach_id, $gallery_img_size, false, $attributes);
				echo '</a></div>';
				
			}
		}
		?>
	</figure>
	</div>
	
	<?php 
} // End two column gallery markup.

// Default WooCommerce gallery functionality.
else { ?>

	<div class="images">

	<?php
	// Note: `wc_get_gallery_image_html` was added in WC 3.3.2 and did not exist prior. This check protects against theme overrides being used on older versions of WC.
	if( function_exists( 'wc_get_gallery_image_html' ) ) {

		global $product;

		$columns           = apply_filters( 'woocommerce_product_thumbnails_columns', 4 );
		$post_thumbnail_id = $product->get_image_id();
		$wrapper_classes   = apply_filters( 'woocommerce_single_product_image_gallery_classes', array(
			'woocommerce-product-gallery',
			'woocommerce-product-gallery--' . ( has_post_thumbnail() ? 'with-images' : 'without-images' ),
			'woocommerce-product-gallery--columns-' . absint( $columns ),
			'default-woo-gallery',
			'images',
		) );
		?>
		<div class="<?php echo esc_attr( implode( ' ', array_map( 'sanitize_html_class', $wrapper_classes ) ) ); ?>" data-columns="<?php echo esc_attr( $columns ); ?>" style="opacity: 0; transition: opacity .25s ease-in-out;">
			<figure class="woocommerce-product-gallery__wrapper">
				<?php
				if ( has_post_thumbnail() ) {
					$html = wc_get_gallery_image_html( $post_thumbnail_id, true );
				} else {
					$html  = '<div class="woocommerce-product-gallery__image--placeholder">';
					$html .= sprintf( '<img src="%s" alt="%s" class="wp-post-image" />', esc_url( wc_placeholder_img_src( 'woocommerce_single' ) ), esc_html__( 'Awaiting product image', 'woocommerce' ) );
					$html .= '</div>';
				}

				echo apply_filters( 'woocommerce_single_product_image_thumbnail_html', $html, $post_thumbnail_id );

				do_action( 'woocommerce_product_thumbnails' );
				?>
			</figure>
		</div>


		<?php

	}
	else if( $woocommerce && version_compare( $woocommerce->version, "3.0", ">=" ) ) {

		global $post, $product;
		$columns           = apply_filters( 'woocommerce_product_thumbnails_columns', 4 );
		$post_thumbnail_id = get_post_thumbnail_id( $post->ID );
		$thumbnail_size    = apply_filters( 'woocommerce_product_thumbnails_large_size', 'full' );
		$full_size_image   = wp_get_attachment_image_src( $post_thumbnail_id, $thumbnail_size );
		$image_title       = get_post_field( 'post_excerpt', $post_thumbnail_id );
		$placeholder       = has_post_thumbnail() ? 'with-images' : 'without-images';
		$wrapper_classes   = apply_filters( 'woocommerce_single_product_image_gallery_classes', array(
			'woocommerce-product-gallery',
			'woocommerce-product-gallery--' . $placeholder,
			'woocommerce-product-gallery--columns-' . absint( $columns ),
			'images',
		) );
		?>
		<div class="<?php echo esc_attr( implode( ' ', array_map( 'sanitize_html_class', $wrapper_classes ) ) ); ?>" data-columns="<?php echo esc_attr( $columns ); ?>" style="opacity: 0; transition: opacity .25s ease-in-out;">
			<figure class="woocommerce-product-gallery__wrapper">
				<?php
				$attributes = array(
					'title'                   => get_post_field( 'post_title', $post_thumbnail_id ),
					'data-caption'            => get_post_field( 'post_excerpt', $post_thumbnail_id ),
					'data-src'                => $full_size_image[0],
					'data-large_image'        => $full_size_image[0],
					'data-large_image_width'  => $full_size_image[1],
					'data-large_image_height' => $full_size_image[2],
				);

				if ( has_post_thumbnail() ) {
					$html  = '<div data-thumb="' . get_the_post_thumbnail_url( $post->ID, 'shop_thumbnail' ) . '" class="woocommerce-product-gallery__image"><a href="' . esc_url( $full_size_image[0] ) . '">';
					$html .= get_the_post_thumbnail( $post->ID, 'shop_single', $attributes );
					$html .= '</a></div>';
				} else {
					$html  = '<div class="woocommerce-product-gallery__image--placeholder">';
					$html .= sprintf( '<img src="%s" alt="%s" class="wp-post-image" />', esc_url( wc_placeholder_img_src( 'woocommerce_single' ) ), esc_html__( 'Awaiting product image', 'woocommerce' ) );
					$html .= '</div>';
				}

				echo apply_filters( 'woocommerce_single_product_image_thumbnail_html', $html, get_post_thumbnail_id( $post->ID ) );

				do_action( 'woocommerce_product_thumbnails' );
				?>
			</figure>
		</div>



<?php } ?>

	 </div><!--images-->

 <?php } ?>