Automattic\WooCommerce\Internal\VariationGallery

LegacyVariationGalleryCompatibility::maybe_read_legacy_gallery_image_idspublicWC 1.0

Use legacy variation gallery meta when the core gallery is empty and the variation has not been marked as core-managed.

Method of the class: LegacyVariationGalleryCompatibility{}

No Hooks.

Returns

Array.

Usage

$LegacyVariationGalleryCompatibility = new LegacyVariationGalleryCompatibility();
$LegacyVariationGalleryCompatibility->maybe_read_legacy_gallery_image_ids( $gallery_image_ids, $variation ): array;
$gallery_image_ids(array) (required)
Gallery image IDs already resolved by core.
$variation(WC_Product_Variation) (required)
Variation instance.

LegacyVariationGalleryCompatibility::maybe_read_legacy_gallery_image_ids() code WC 10.9.1

public function maybe_read_legacy_gallery_image_ids( $gallery_image_ids, WC_Product_Variation $variation ): array {
	// Core has variation images, just normalize.
	if ( ! empty( $gallery_image_ids ) ) {
		return array_values( wp_parse_id_list( $gallery_image_ids ) );
	}

	// Sentinel set: respect the explicit "no images" choice; legacy meta remains for BC.
	if ( self::is_variation_id_core_managed( $variation->get_id() ) ) {
		return array();
	}

	$legacy_gallery_image_ids = get_post_meta( $variation->get_id(), self::LEGACY_META_KEY, true );

	// Nothing to fall back to.
	if ( empty( $legacy_gallery_image_ids ) ) {
		return array();
	}

	// Pre-migration variation: fall back to the legacy extension's meta.
	return array_values( wp_parse_id_list( $legacy_gallery_image_ids ) );
}