Automattic\WooCommerce\Internal\Caches
ProductVersionStringInvalidator::get_variation_parent_id
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() 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;
}