function custom_get_increase_bid_value( $metadata, $object_id, $meta_key, $single ) { if ( isset( $meta_key ) && '_auction_bid_increment' === $meta_key ) { $product = wc_get_product( $object_id ); if( (! $product) || $product->get_type() != 'auction' ){ return $metadata; } $bid_value = $product->get_curent_bid(); switch ( $bid_value ) { case $bid_value <= 25: $auction_bid_increment = 2; break; case ( $bid_value > 25 && $bid_value <= 80 ): $auction_bid_increment = 5; break; case ( $bid_value > 80 && $bid_value <= 230 ): $auction_bid_increment = 10; break; case ( $bid_value > 230 && $bid_value <= 750 ): $auction_bid_increment = 20; break; case ( $bid_value > 750 && $bid_value <= 2000 ): $auction_bid_increment = 40; break; case ( $bid_value > 20000 && $bid_value <= 6000 ): $auction_bid_increment = 80; break; case ( $bid_value > 6000 && $bid_value <= 20000 ): $auction_bid_increment = 200; break; case ( $bid_value > 20000 && $bid_value <= 50000 ): $auction_bid_increment = 500; break; case ( $bid_value > 50000 ): $auction_bid_increment = 10000; break; } return $auction_bid_increment; } // Return original if the check does not pass return $metadata; } add_filter( 'get_post_metadata', 'custom_get_increase_bid_value', 100, 4 );