Automattic\WooCommerce\Internal\LegacyAssets
LegacySelect2UsageTracker::get_usage_event
Get a legacy Select2 usage event for the current script registry.
Method of the class: LegacySelect2UsageTracker{}
No Hooks.
Returns
array<string, string>.
Usage
$LegacySelect2UsageTracker = new LegacySelect2UsageTracker(); $LegacySelect2UsageTracker->get_usage_event( $context ): array;
- $context(string) (required)
- The request context.
LegacySelect2UsageTracker::get_usage_event() LegacySelect2UsageTracker::get usage event code WC 11.2.1
public function get_usage_event( string $context ): array {
$wp_scripts = wp_scripts();
if ( ! $wp_scripts instanceof WP_Scripts ) {
return array();
}
// `done` includes dependencies that WordPress printed while resolving the queue.
// Keep only queued handles so dependents identify scripts explicitly enqueued for the page.
$printed_queued_scripts = array_intersect( $wp_scripts->queue, $wp_scripts->done );
$handles = array();
$dependents = array();
$dependents_sources = array();
$plugins_path = wp_parse_url( plugins_url( '/' ), PHP_URL_PATH );
foreach ( $printed_queued_scripts as $handle ) {
$legacy_handles = $this->get_legacy_handles( $wp_scripts, $handle );
if ( empty( $legacy_handles ) ) {
continue;
}
$handles += array_fill_keys( $legacy_handles, true );
$dependents[ $handle ] = true;
$source = isset( $wp_scripts->registered[ $handle ] ) ? $wp_scripts->registered[ $handle ]->src : '';
$source = self::get_plugin_relative_source( $source, $plugins_path );
if ( '' !== $source ) {
$dependents_sources[] = $source;
}
}
if ( empty( $handles ) ) {
return array();
}
$handles = array_keys( $handles );
$dependents = array_keys( $dependents );
$dependents_sources = array_unique( $dependents_sources );
$handles_sources = array();
foreach ( $handles as $handle ) {
$source = self::get_legacy_handle_source( $wp_scripts, $handle );
$source = self::get_plugin_relative_source( $source, $plugins_path );
if ( '' !== $source ) {
$handles_sources[] = $source;
}
}
$handles_sources = array_unique( $handles_sources );
sort( $handles );
sort( $dependents );
sort( $dependents_sources );
sort( $handles_sources );
return array(
'context' => $context,
'page_type' => $this->get_current_page_type( $context ),
'handles' => implode( ',', $handles ),
'dependents' => implode( ',', $dependents ),
'dependents_sources' => implode( ',', $dependents_sources ),
'handles_sources' => implode( ',', $handles_sources ),
);
}