Automattic\WooCommerce\Internal\Admin

Settings::add_settings │ public │ WC 1.0

Add WC Admin specific settings

Method of the class: Settings{}

No Hooks.

Returns

array.

Usage

$Settings = new Settings();
$Settings->add_settings( $settings );
$settings(array) (required)
Array of settings in wc admin group.

Settings::add_settings() code WC 11.1.2

public function add_settings( $settings ) {
	$unregistered_statuses = $this->get_unregistered_order_statuses();
	$registered_statuses   = self::get_order_statuses( wc_get_order_statuses() );
	$all_statuses          = array_merge( $unregistered_statuses, $registered_statuses );

	$settings[] = array(
		'id'          => 'woocommerce_excluded_report_order_statuses',
		'option_key'  => 'woocommerce_excluded_report_order_statuses',
		'label'       => __( 'Excluded report order statuses', 'woocommerce' ),
		'description' => __( 'Statuses that should not be included when calculating report totals.', 'woocommerce' ),
		'default'     => array( 'pending', 'cancelled', 'failed' ),
		'type'        => 'multiselect',
		'options'     => $all_statuses,
	);
	$settings[] = array(
		'id'          => 'woocommerce_actionable_order_statuses',
		'option_key'  => 'woocommerce_actionable_order_statuses',
		'label'       => __( 'Actionable order statuses', 'woocommerce' ),
		'description' => __( 'Statuses that require extra action on behalf of the store admin.', 'woocommerce' ),
		'default'     => array( 'processing', 'on-hold' ),
		'type'        => 'multiselect',
		'options'     => $all_statuses,
	);
	$settings[] = array(
		'id'          => 'woocommerce_default_date_range',
		'option_key'  => 'woocommerce_default_date_range',
		'label'       => __( 'Default Date Range', 'woocommerce' ),
		'description' => __( 'Default Date Range', 'woocommerce' ),
		'default'     => 'period=month&compare=previous_year',
		'type'        => 'text',
	);
	$settings[] = array(
		'id'          => 'woocommerce_date_type',
		'option_key'  => 'woocommerce_date_type',
		'label'       => __( 'Date Type', 'woocommerce' ),
		'description' => __( 'Database date field considered for Revenue and Orders reports', 'woocommerce' ),
		'default'     => 'date_paid',
		'type'        => 'select',
		'options'     => array(
			'date_created'   => 'date_created',
			'date_paid'      => 'date_paid',
			'date_completed' => 'date_completed',
		),
	);

	$settings[] = array(
		'id'          => 'woocommerce_analytics_scheduled_import',
		'option_key'  => 'woocommerce_analytics_scheduled_import',
		'label'       => __( 'Updates', 'woocommerce' ),
		'description' => __( 'Controls how analytics data is imported from orders.', 'woocommerce' ),
		'type'        => 'radio',
		// Default to null so we can know if it's a new site or an existing site. New sites will have the option set.
		'default'     => null,
		'options'     => array(
			'yes' => __( 'Scheduled (recommended)', 'woocommerce' ),
			'no'  => __( 'Immediately', 'woocommerce' ),
		),
	);

	// Add hidden setting for the import interval to display in the client side.
	$import_interval = \Automattic\WooCommerce\Internal\Admin\Schedulers\OrdersScheduler::get_import_interval();
	$import_interval = absint( $import_interval );
	// Format the import interval to a human-readable string.
	$import_interval_string = human_time_diff( 0, $import_interval );
	$settings[]             = array(
		'id'         => 'woocommerce_analytics_import_interval',
		'option_key' => 'woocommerce_analytics_import_interval',
		'type'       => 'hidden',
		'default'    => $import_interval_string,
	);

	return $settings;
}