array( WC_ADMIN_APP => 'app', 'wc-csv' => 'csv-export', 'wc-store-data' => 'data', ); $translated_scripts = array( 'wc-currency', 'wc-date', 'wc-components', 'wc-customer-effort-score', WC_ADMIN_APP, ); foreach ( $scripts as $script ) { $script_path_name = isset( $scripts_map[ $script ] ) ? $scripts_map[ $script ] : str_replace( 'wc-', '', $script ); try { $script_assets_filename = self::get_script_asset_filename( $script_path_name, 'index' ); $script_assets = require WC_ADMIN_ABSPATH . WC_ADMIN_DIST_JS_FOLDER . $script_path_name . '/' . $script_assets_filename; wp_register_script( $script, self::get_url( $script_path_name . '/index', 'js' ), $script_assets ['dependencies'], $js_file_version, true ); if ( in_array( $script, $translated_scripts, true ) ) { wp_set_script_translations( $script, 'woocommerce' ); } } catch ( \Exception $e ) { // Avoid crashing WordPress if an asset file could not be loaded. wc_caught_exception( $e, __CLASS__ . '::' . __FUNCTION__, $script_path_name ); } } wp_register_style( 'wc-components', self::get_url( 'components/style', 'css' ), array(), $css_file_version ); wp_style_add_data( 'wc-components', 'rtl', 'replace' ); wp_register_style( 'wc-customer-effort-score', self::get_url( 'customer-effort-score/style', 'css' ), array(), $css_file_version ); wp_style_add_data( 'wc-customer-effort-score', 'rtl', 'replace' ); wp_register_style( 'wc-experimental', self::get_url( 'experimental/style', 'css' ), array(), $css_file_version ); wp_style_add_data( 'wc-experimental', 'rtl', 'replace' ); wp_localize_script( WC_ADMIN_APP, 'wcAdminAssets', array( 'path' => plugins_url( self::get_path( 'js' ), WC_ADMIN_PLUGIN_FILE ), 'version' => $js_file_version, ) ); wp_register_style( WC_ADMIN_APP, self::get_url( 'app/style', 'css' ), array( 'wc-components', 'wc-customer-effort-score', 'wp-components', 'wc-experimental' ), $css_file_version ); wp_style_add_data( WC_ADMIN_APP, 'rtl', 'replace' ); wp_register_style( 'wc-onboarding', self::get_url( 'onboarding/style', 'css' ), array(), $css_file_version ); wp_style_add_data( 'wc-onboarding', 'rtl', 'replace' ); } /** * Injects wp-shared-settings as a dependency if it's present. */ public function inject_wc_settings_dependencies() { if ( wp_script_is( 'wc-settings', 'registered' ) ) { $handles_for_injection = [ 'wc-csv', 'wc-currency', 'wc-customer-effort-score', 'wc-navigation', // NOTE: This should be removed when Gutenberg is updated and // the notices package is removed from WooCommerce Admin. 'wc-notices', 'wc-number', 'wc-date', 'wc-components', 'wc-tracks', ]; foreach ( $handles_for_injection as $handle ) { $script = wp_scripts()->query( $handle, 'registered' ); if ( $script instanceof _WP_Dependency ) { $script->deps[] = 'wc-settings'; } } } } }