[Back]
<?php
/**
 * Imagify Plugin.
 *
 * @package visual-portfolio
 */

if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Class Visual_Portfolio_3rd_Imagify
 */
class Visual_Portfolio_3rd_Imagify {
	/**
	 * Visual_Portfolio_3rd_Imagify constructor.
	 */
	public function __construct() {
		// Fix lazyload attributes.
		//
		// Thanks to:
		// - https://wordpress.org/support/topic/all-images-are-grey/
		// - https://wordpress.org/support/topic/all-images-are-grey-again/.
		add_filter( 'imagify_picture_attributes', array( $this, 'imagify_picture_attributes' ) );
		add_filter( 'imagify_picture_img_attributes', array( $this, 'imagify_picture_img_attributes' ), 10, 2 );
	}

	/**
	 * Remove lazyload class from the picture tag.
	 *
	 * @param array $attributes image tag attributes.
	 *
	 * @return array
	 */
	public function imagify_picture_attributes( $attributes ) {
		if ( isset( $attributes['class'] ) && strpos( $attributes['class'], 'vp-lazyload' ) !== false ) {
			$attributes['class'] = str_replace( 'vp-lazyload', '', $attributes['class'] );
		}

		return $attributes;
	}

	/**
	 * Restore lazyload class to the img tag.
	 *
	 * @param array $attributes image tag attributes.
	 * @param array $image image data.
	 *
	 * @return array
	 */
	public function imagify_picture_img_attributes( $attributes, $image ) {
		if ( isset( $image['attributes']['class'] ) && strpos( $image['attributes']['class'], 'vp-lazyload' ) !== false ) {
			if ( isset( $attributes['class'] ) ) {
				$attributes['class'] .= ' ';
			} else {
				$attributes['class'] = '';
			}

			$attributes['class'] .= 'vp-lazyload';
		}

		return $attributes;
	}
}

new Visual_Portfolio_3rd_Imagify();