$regular_price

PHP
global $post, $product;

if ($product->is_on_sale()) :


	// Dans le cas où le produit est "variable" (plusieurs variations de produits existantes)
	if ($product->get_type() == 'variable') :

		$available_variations = $product->get_available_variations();
		$max_percentage = 0;

		// On passe au crible toutes les variations et calcule le pourcentage de réduction de chacune.
		// Si ce pourcentage de réduction est le maximum, on le garde en mémoire dans $max_percentage
		for ($i = 0; $i < count($available_variations); ++$i) {
			$variation_id = $available_variations[$i]['variation_id'];
			$variable_product1 = new WC_Product_Variation($variation_id);
			$regular_price = $variable_product1->get_regular_price();
			$sales_price = $variable_product1->get_sale_price();
			$percentage = round(((($regular_price - $sales_price) / $regular_price) * 100), 1);

			if ($percentage > $max_percentage) {
				$max_percentage = $percentage;
			}
		}
		echo apply_filters( 'woocommerce_sale_flash', '<span class="onsale">-' . round($max_percentage) . '%</span>', $post, $product );


	// Si le produit n'est pas "variable" mais simple, nous n'avons qu'un prix normal et un prix promo... fastoche !
	elseif ($product->get_type() == 'simple') :

		$percentage = round( ( ( $product->get_regular_price() - $product->get_sale_price() ) / $product->get_regular_price() ) * 100 );
		echo apply_filters( 'woocommerce_sale_flash', '<span class="onsale">-' . round($percentage) . '%</span>', $post, $product );

	endif;

endif; 	
Source

Also in PHP: