# wp-optimize/3.2.3/webp/class-wpo-webp-convert.php

WP-Optimize – Cache, Compress images, Minify &amp; Clean database to boost page speed &amp; performance, version 3.2.3. 63 lines.

- Page: https://pluginprobe.com/plugins/wp-optimize/3.2.3/code/webp/class-wpo-webp-convert.php
- Raw: https://pluginprobe.com/plugins/wp-optimize/3.2.3/raw/webp/class-wpo-webp-convert.php
- Modified: 2021-11-30T14:57:30+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/wp-optimize/3.2.3/code/webp/class-wpo-webp-convert.php#L10-L20`.

```php
<?php

if (!defined('WPO_VERSION')) die('No direct access allowed');
use \WebPConvert\Convert\ConverterFactory;

require_once(WPO_PLUGIN_MAIN_PATH . 'vendor/autoload.php');
require_once(WPO_PLUGIN_MAIN_PATH . 'webp/class-wpo-webp-test-run.php');

if (!class_exists('WPO_WebP_Convert')) :

class WPO_WebP_Convert {

	public $converters = null;

	public function __construct() {
		$this->converters = WP_Optimize()->get_options()->get_option('webp_converters');
	}

	/**
	 * Converts uploaded image to webp format
	 *
	 * @param string $source - path of the source file
	 */
	public function convert($source) {
		if (count($this->converters) < 1) return false;

		$destination = $this->get_destination_path($source);
		$this->check_converters_and_do_conversion($source, $destination);
	}

	/**
	 * Returns the destination full path
	 *
	 * @param string $source - path of the source file
	 *
	 * @return string $destination - path of destination file
	 */
	protected function get_destination_path($source) {
		$path_parts = pathinfo($source);
		$destination =   $path_parts['dirname'] . '/'. basename($source) . '.webp';
		return $destination;
	}

	/**
	 * Loop through available converters and do the conversion
	 *
	 * @param string $source      - path of source file
	 * @param string $destination - path of destination file
	 */
	protected function check_converters_and_do_conversion($source, $destination) {
		foreach ($this->converters as $converter) {
				$converter_instance = ConverterFactory::makeConverter(
					$converter,
					$source,
					$destination
				);
				$converter_instance->doConvert();
				break;
		}
	}
}
endif;

```
