( $preload_data_endpoints as $key => $endpoint ) {
// Handle error case: rest_do_request() doesn't guarantee success.
if ( empty( $preload_data[ $endpoint ] ) ) {
$settings['dataEndpoints'][ $key ] = array();
} else {
$settings['dataEndpoints'][ $key ] = $preload_data[ $endpoint ]['body'];
}
}
}
$settings = $this->get_custom_settings( $settings );
if ( PageController::is_embed_page() ) {
$settings['embedBreadcrumbs'] = wc_admin_get_breadcrumbs();
}
$settings['allowMarketplaceSuggestions'] = WC_Marketplace_Suggestions::allow_suggestions();
$settings['connectNonce'] = wp_create_nonce( 'connect' );
$settings['wcpay_welcome_page_connect_nonce'] = wp_create_nonce( 'wcpay-connect' );
$settings['wc_helper_nonces'] = array(
'refresh' => wp_create_nonce( 'refresh' ),
);
$settings['features'] = $this->get_features();
$settings['isWooPayEligible'] = WCPayPromotionInit::is_woopay_eligible();
$has_gutenberg = is_plugin_active( 'gutenberg/gutenberg.php' );
$gutenberg_version = '';
if ( $has_gutenberg ) {
if ( defined( 'GUTENBERG_VERSION' ) ) {
$gutenberg_version = GUTENBERG_VERSION;
}
if ( ! $gutenberg_version ) {
$gutenberg_data = get_plugin_data( WP_PLUGIN_DIR . '/gutenberg/gutenberg.php' );
$gutenberg_version = $gutenberg_data['Version'];
}
}
$settings['gutenberg_version'] = $has_gutenberg ? $gutenberg_version : 0;
return $settings;
}
/**
* Removes non necesary feature properties for the client side.
*
* @return array
*/
public function get_features() {
$features = FeaturesUtil::get_features( true, true );
$new_features = array();
foreach ( array_keys( $features ) as $feature_id ) {
$new_features[ $feature_id ] = array(
'is_enabled' => $features[ $feature_id ]['is_enabled'],
'is_experimental' => $features[ $feature_id ]['is_experimental'] ?? false,
);
}
return $new_features;
}
/**
* Register the admin settings for use in the WC REST API
*
* @param array $groups Array of setting groups.
* @return array
*/
public function add_settings_group( $groups ) {
$groups[] = array(
'id' => 'wc_admin',
'label' => __( 'WooCommerce Admin', 'woocommerce' ),
'description' => __( 'Settings for WooCommerce admin reporting.', 'woocommerce' ),
);
return $groups;
}
/**
* Add WC Admin specific settings
*
* @param array $settings Array of settings in wc admin group.
* @return array
*/
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' ),
'type' => 'select',
'options' => array(
'date_created' => 'date_created',
'date_paid' => 'date_paid',
'date_completed' => 'date_completed',
),
);
return $settings;
}
/**
* Gets custom settings used for WC Admin.
*
* @param array $settings Array of settings to merge into.
* @return array
*/
private function get_custom_settings( $settings ) {
$wc_rest_settings_options_controller = new \WC_REST_Setting_Options_Controller();
$wc_admin_group_settings = $wc_rest_settings_options_controller->get_group_settings( 'wc_admin' );
$settings['wcAdminSettings'] = array();
foreach ( $wc_admin_group_settings as $setting ) {
if ( ! empty( $setting['id'] ) ) {
$settings['wcAdminSettings'][ $setting['id'] ] = $setting['value'];
}
}
return $settings;
}
}
Fatal error: Uncaught Error: Class "Automattic\WooCommerce\Internal\Admin\Settings" not found in /home/valigeria/public_html/wp-content/plugins/woocommerce/src/Internal/Admin/Loader.php:69
Stack trace:
#0 /home/valigeria/public_html/wp-content/plugins/woocommerce/src/Internal/Admin/Loader.php(55): Automattic\WooCommerce\Internal\Admin\Loader->__construct()
#1 /home/valigeria/public_html/wp-content/plugins/woocommerce/src/Internal/Admin/FeaturePlugin.php(192): Automattic\WooCommerce\Internal\Admin\Loader::get_instance()
#2 /home/valigeria/public_html/wp-content/plugins/woocommerce/src/Internal/Admin/FeaturePlugin.php(97): Automattic\WooCommerce\Internal\Admin\FeaturePlugin->hooks()
#3 /home/valigeria/public_html/wp-content/plugins/woocommerce/src/Internal/Admin/FeaturePlugin.php(81): Automattic\WooCommerce\Internal\Admin\FeaturePlugin->on_plugins_loaded()
#4 /home/valigeria/public_html/wp-content/plugins/woocommerce/src/Admin/Composer/Package.php(65): Automattic\WooCommerce\Internal\Admin\FeaturePlugin->init()
#5 [internal function]: Automattic\WooCommerce\Admin\Composer\Package::init()
#6 /home/valigeria/public_html/wp-content/plugins/woocommerce/src/Packages.php(128): call_user_func(Array)
#7 /home/valigeria/public_html/wp-content/plugins/woocommerce/src/Packages.php(64): Automattic\WooCommerce\Packages::initialize_packages()
#8 /home/valigeria/public_html/wp-includes/class-wp-hook.php(324): Automattic\WooCommerce\Packages::on_init('')
#9 /home/valigeria/public_html/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters(NULL, Array)
#10 /home/valigeria/public_html/wp-includes/plugin.php(517): WP_Hook->do_action(Array)
#11 /home/valigeria/public_html/wp-settings.php(550): do_action('plugins_loaded')
#12 /home/valigeria/public_html/wp-config.php(111): require_once('/home/valigeria...')
#13 /home/valigeria/public_html/wp-load.php(50): require_once('/home/valigeria...')
#14 /home/valigeria/public_html/wp-blog-header.php(13): require_once('/home/valigeria...')
#15 /home/valigeria/public_html/index.php(17): require('/home/valigeria...')
#16 {main}
thrown in /home/valigeria/public_html/wp-content/plugins/woocommerce/src/Internal/Admin/Loader.php on line 69