Automattic\WooCommerce\Internal\Admin

OrderMilestoneEasterEgg::get_svg_dataprivateWC 1.0

Loads and returns SVG assets as inline strings.

Only the variant SVGs listed in $variants are loaded; shared assets (confetti, stick, sprinkle) are always included.

Метод класса: OrderMilestoneEasterEgg{}

Хуков нет.

Возвращает

Массив<Строку,. string>

Использование

// private - только в коде основоного (родительского) класса
$result = $this->get_svg_data( $variants ): array;
$variants(string[])
Variant keys to load (e.g. ['llama', 'octo']).
По умолчанию: array()

Код OrderMilestoneEasterEgg::get_svg_data() WC 10.9.1

private function get_svg_data( array $variants = array() ): array {
	$svg_dir = WC_ABSPATH . 'assets/images/pinata/';

	if ( empty( $variants ) ) {
		$variants = array_keys( $this->get_variant_map() );
	}

	$svg_data    = array();
	$variant_map = $this->get_variant_map();

	// phpcs:disable WordPress.WP.AlternativeFunctions.file_get_contents_file_get_contents
	foreach ( $variants as $key ) {
		if ( isset( $variant_map[ $key ] ) ) {
			$svg_data[ $key ] = (string) file_get_contents( $svg_dir . $variant_map[ $key ] );
		}
	}

	$svg_data['confetti'] = (string) file_get_contents( $svg_dir . 'confetti.svg' );
	$svg_data['stick']    = (string) file_get_contents( $svg_dir . 'stick.svg' );
	$sprinkle_svg         = (string) file_get_contents( $svg_dir . 'sprinkle.svg' );
	// phpcs:enable WordPress.WP.AlternativeFunctions.file_get_contents_file_get_contents

	$sprinkle_svg = preg_replace( '/<defs>.*?<\/defs>/s', '', $sprinkle_svg ) ?? '';
	$sprinkle_svg = preg_replace( '/\s*clip-path="[^"]*"/', '', $sprinkle_svg ) ?? '';
	$sprinkle_svg = preg_replace( '/<rect[^>]+fill="white"[^>]*\/?>/', '', $sprinkle_svg ) ?? '';

	$svg_data['sprinkle'] = $sprinkle_svg;

	return $svg_data;
}