( $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