File: /sites/nuofama.com/wp-content/plugins/cyr2lat/src/php/class-wp-cli.php
<?php
/**
* WP-CLI support.
*
* @package cyr-to-lat
* @link https://github.com/mihdan/wp-rocket-cli/blob/master/command.php
*/
// phpcs:ignore Generic.Commenting.DocComment.MissingShort
/** @noinspection PhpUndefinedClassInspection */
namespace Cyr_To_Lat;
use cli\progress\Bar;
use WP_CLI\NoOp;
use WP_CLI_Command;
use function WP_CLI\Utils\make_progress_bar;
/**
* Class WP_CLI
*
* @class WP_CLI
*/
class WP_CLI extends WP_CLI_Command {
/**
* Converter class.
*
* @var Converter
*/
private $converter;
/**
* WP_CLI constructor.
*
* @param Converter $converter Converter.
*/
public function __construct( 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.
*
* @noinspection PhpUnusedParameterInspection
*/
public function regenerate( $args = [], $assoc_args = [] ) {
/**
* Notify instance.
*
* @var Bar $notify
*/
$notify = $this->make_progress_bar();
$result = [];
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 Bar|NoOp
*/
public function make_progress_bar() {
return make_progress_bar( 'Regenerate existing slugs', 1 );
}
}