add_filter( 'woocommerce_ajax_variation_threshold', 'increase_variation_threshold_kadence', 100 );
function increase_variation_threshold_kadence() {
return 150; // Set this higher than your max number of variations
}
add_filter( 'woocommerce_variation_is_visible', 'kadence_no_object_stock_check', 999, 4 );
function kadence_no_object_stock_check( $is_visible, $variation_id, $product_id, $variation ) {
// 1. If ID is missing, exit immediately
if ( ! $variation_id ) {
return $is_visible;
}
// 2. Direct database check: Get stock status without using the product object
$stock_status = get_post_meta( $variation_id, '_stock_status', true );
// 3. If the status is 'outofstock', hide it
if ( 'outofstock' === $stock_status ) {
return false;
}
return $is_visible;
}