Automattic\WooCommerce\Internal\Admin
Settings::add_settings
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() 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;
}