File: /home/sarlight.ru/public_html/wp-content/plugins/cyr2lat/includes/class-cyr-to-lat-wp-cli.php
<?php
/**
 * WP-CLI support.
 *
 * @package cyr-to-lat
 * @link    https://github.com/mihdan/wp-rocket-cli/blob/master/command.php
 */
/**
 * Class Cyr_To_Lat_WP_CLI
 *
 * @class Cyr_To_Lat_WP_CLI
 */
class Cyr_To_Lat_WP_CLI extends WP_CLI_Command {
	/**
	 * Converter class.
	 *
	 * @var Cyr_To_Lat_Converter
	 */
	private $converter;
	/**
	 * Cyr_To_Lat_WP_CLI constructor.
	 *
	 * @param Cyr_To_Lat_Converter $converter Converter.
	 */
	public function __construct( Cyr_To_Lat_Converter $converter ) {
		parent::__construct();
		$this->converter = $converter;
	}
	/**
	 * Regenerate old slugs.
	 *
	 * ## EXAMPLES
	 *
	 *     $ wp cyr2lat regenerate
	 *     Success: Regenerate Completed.
	 *
	 * @subcommand regenerate
	 *
	 * @param array $args       Arguments.
	 * @param array $assoc_args Arguments in associative array.
	 */
	public function regenerate( $args = array(), $assoc_args = array() ) {
		/**
		 * Notify instance.
		 *
		 * @var \cli\progress\Bar $notify
		 */
		$notify = $this->make_progress_bar();
		$result = array();
		if ( ! empty( $assoc_args['post_status'] ) ) {
			$result['post_status'] = explode( ',', $assoc_args['post_status'] );
			$result['post_status'] = array_values( array_filter( array_map( 'trim', $result['post_status'] ) ) );
		}
		if ( ! empty( $assoc_args['post_type'] ) ) {
			$result['post_type'] = explode( ',', $assoc_args['post_type'] );
			$result['post_type'] = array_values( array_filter( array_map( 'trim', $result['post_type'] ) ) );
		}
		$this->converter->convert_existing_slugs( $result );
		$notify->tick();
		$notify->finish();
		WP_CLI::success( 'Regenerate Completed.' );
	}
	/**
	 * Make progress bar.
	 *
	 * @return \cli\progress\Bar|\WP_CLI\NoOp
	 */
	protected function make_progress_bar() {
		return \WP_CLI\Utils\make_progress_bar( 'Regenerate existing slugs', 1 );
	}
}