Automattic\WooCommerce\Internal\Admin\Logging
Settings::get_retention_period_days_setting_definition
The definition for the retention_period_days setting.
Method of the class: Settings{}
No Hooks.
Returns
Array.
Usage
// private - for code of main (parent) class only $result = $this->get_retention_period_days_setting_definition(): array;
Settings::get_retention_period_days_setting_definition() Settings::get retention period days setting definition code WC 10.5.0
private function get_retention_period_days_setting_definition(): array {
$custom_attributes = array(
'min' => 1,
'step' => 1,
);
$desc = array();
$hardcoded = has_filter( 'woocommerce_logger_days_to_retain_logs' );
if ( $hardcoded ) {
$custom_attributes['disabled'] = 'true';
$desc[] = sprintf(
// translators: %s is the name of a filter hook.
__( 'This setting cannot be changed here because it is being set by a filter on the %s hook.', 'woocommerce' ),
'<code>woocommerce_logger_days_to_retain_logs</code>'
);
}
$file_delete_has_filter = LogHandlerFileV2::class === $this->get_default_handler() && has_filter( 'woocommerce_logger_delete_expired_file' );
if ( $file_delete_has_filter ) {
$desc[] = sprintf(
// translators: %s is the name of a filter hook.
__( 'The %s hook has a filter set, so some log files may have different retention settings.', 'woocommerce' ),
'<code>woocommerce_logger_delete_expired_file</code>'
);
}
return array(
'title' => __( 'Retention period', 'woocommerce' ),
'desc_tip' => __( 'This sets how many days log entries will be kept before being auto-deleted.', 'woocommerce' ),
'id' => self::PREFIX . 'retention_period_days',
'type' => 'number',
'value' => $this->get_retention_period(),
'default' => self::DEFAULTS['retention_period_days'],
'autoload' => false,
'custom_attributes' => $custom_attributes,
'css' => 'width:70px;',
'row_class' => 'logs-retention-period-days',
'suffix' => sprintf(
' %s',
__( 'days', 'woocommerce' ),
),
'desc' => implode( '<br><br>', $desc ),
);
}