plugin updates

This commit is contained in:
Tony Volpe
2024-02-21 16:19:46 +00:00
parent c72f206574
commit 21d4c85c00
1214 changed files with 102269 additions and 179257 deletions

View File

@@ -3,8 +3,7 @@
namespace Automattic\WooCommerce\Internal\Admin\Logging;
use Automattic\Jetpack\Constants;
use Automattic\WooCommerce\Internal\Admin\Logging\FileV2\FileController;
use Automattic\WooCommerce\Proxies\LegacyProxy;
use Automattic\WooCommerce\Internal\Admin\Logging\FileV2\{ File, FileController };
use WC_Log_Handler;
/**
@@ -18,11 +17,19 @@ class LogHandlerFileV2 extends WC_Log_Handler {
*/
private $file_controller;
/**
* Instance of the Settings class.
*
* @var Settings
*/
private $settings;
/**
* LogHandlerFileV2 class.
*/
public function __construct() {
$this->file_controller = wc_get_container()->get( FileController::class );
$this->settings = wc_get_container()->get( Settings::class );
}
/**
@@ -73,20 +80,17 @@ class LogHandlerFileV2 extends WC_Log_Handler {
$time_string = static::format_time( $timestamp );
$level_string = strtoupper( $level );
// Remove line breaks so the whole entry is on one line in the file.
$formatted_message = str_replace( PHP_EOL, ' ', $message );
unset( $context['source'] );
if ( ! empty( $context ) ) {
if ( isset( $context['backtrace'] ) && true === filter_var( $context['backtrace'], FILTER_VALIDATE_BOOLEAN ) ) {
$context['backtrace'] = static::get_backtrace();
}
$formatted_context = wp_json_encode( $context );
$formatted_message .= " CONTEXT: $formatted_context";
$formatted_context = wp_json_encode( $context );
$message .= " CONTEXT: $formatted_context";
}
$entry = "$time_string $level_string $formatted_message";
$entry = "$time_string $level_string $message";
// phpcs:disable WooCommerce.Commenting.CommentHooks.MissingSinceComment
/** This filter is documented in includes/abstracts/abstract-wc-log-handler.php */
@@ -152,6 +156,63 @@ class LogHandlerFileV2 extends WC_Log_Handler {
return sanitize_title( $source );
}
/**
* Delete all logs from a specific source.
*
* @param string $source The source of the log entries.
*
* @return int The number of files that were deleted.
*/
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;
}
/**
* Delete all logs older than a specified timestamp.
*
@@ -172,7 +233,7 @@ class LogHandlerFileV2 extends WC_Log_Handler {
)
);
if ( is_wp_error( $files ) ) {
if ( is_wp_error( $files ) || count( $files ) < 1 ) {
return 0;
}
@@ -181,12 +242,8 @@ class LogHandlerFileV2 extends WC_Log_Handler {
$files
);
$deleted = $this->file_controller->delete_files( $file_ids );
// phpcs:disable WooCommerce.Commenting.CommentHooks.MissingSinceComment
/** This filter is documented in includes/class-wc-logger.php. */
$retention_days = absint( apply_filters( 'woocommerce_logger_days_to_retain_logs', 30 ) );
// phpcs:enable WooCommerce.Commenting.CommentHooks.MissingSinceComment
$deleted = $this->file_controller->delete_files( $file_ids );
$retention_days = $this->settings->get_retention_period();
if ( $deleted > 0 ) {
$this->handle(