Automattic\WooCommerce\Internal\Admin\Logging

LogHandlerFileV2::clear()publicWC 1.0

Delete all logs from a specific source.

Метод класса: LogHandlerFileV2{}

Хуков нет.

Возвращает

int. The number of files that were deleted.

Использование

$LogHandlerFileV2 = new LogHandlerFileV2();
$LogHandlerFileV2->clear( $source ): int;
$source(строка) (обязательный)
The source of the log entries.

Код LogHandlerFileV2::clear() WC 9.7.1

public function clear( string $source ): int {
	$source = File::sanitize_source( $source );

	$files = $this->file_controller->get_files(
		array(
			'source' => $source,
		)
	);

	if ( is_wp_error( $files ) || count( $files ) < 1 ) {
		return 0;
	}

	$file_ids = array_map(
		fn( $file ) => $file->get_file_id(),
		$files
	);

	$deleted = $this->file_controller->delete_files( $file_ids );

	if ( $deleted > 0 ) {
		$this->handle(
			time(),
			'info',
			sprintf(
				esc_html(
					// translators: %1$s is a number of log files, %2$s is a slug-style name for a file.
					_n(
						'%1$s log file from source %2$s was deleted.',
						'%1$s log files from source %2$s were deleted.',
						$deleted,
						'woocommerce'
					)
				),
				number_format_i18n( $deleted ),
				sprintf(
					'<code>%s</code>',
					esc_html( $source )
				)
			),
			array(
				'source'    => 'wc_logger',
				'backtrace' => true,
			)
		);
	}

	return $deleted;
}