Automattic\WooCommerce\Internal\Caches

ProductVersionStringInvalidator::get_variation_parent_idprivateWC 1.0

Get the parent product ID for a variation.

The result is cached in the object cache to avoid repeated lookups.

Method of the class: ProductVersionStringInvalidator{}

No Hooks.

Returns

Int|null. The parent product ID, or null if not found.

Usage

// private - for code of main (parent) class only
$result = $this->get_variation_parent_id( $variation_id ): ?int;
$variation_id(int) (required)
The variation ID.

ProductVersionStringInvalidator::get_variation_parent_id() code WC 10.7.0

private function get_variation_parent_id( int $variation_id ): ?int {
	$cache_key = "wc_variation_parent_{$variation_id}";
	$cached    = wp_cache_get( $cache_key, 'woocommerce' );

	if ( false !== $cached ) {
		return $cached ? $cached : null;
	}

	if ( $this->is_using_cpt_data_store() ) {
		$parent_id = wp_get_post_parent_id( $variation_id );
		$parent_id = $parent_id ? (int) $parent_id : null;
	} else {
		$variation = wc_get_product( $variation_id );
		$parent_id = $variation ? (int) $variation->get_parent_id() : null;
		$parent_id = $parent_id ? $parent_id : null;
	}

	// Cache the result (store 0 for null to distinguish from cache miss).
	wp_cache_set( $cache_key, $parent_id ?? 0, 'woocommerce', HOUR_IN_SECONDS );

	return $parent_id;
}