You can hook into woocommerce_variable_price_html
and reformat the price to include or. This will replace the –
with or
on all products with multiple differing prices.
add_filter('woocommerce_variable_price_html', 'custom_variation_price_seperator', 10, 2);
function custom_variation_price_seperator( $price, $product ) {
$price="";
$prices = $product->get_variation_prices( true );
$min_price = current( $prices['price'] );
$max_price = end( $prices['price'] );
if ( !$product->min_variation_price || $product->min_variation_price !== $product->max_variation_price ) {
$price = $min_price !== $max_price ? sprintf( _x( '%1$s <span class="or">or</span> %2$s', 'Price range: from-to', 'woocommerce' ), wc_price( $min_price ), wc_price( $max_price ) ) : wc_price( $min_price );
}
return $price;
}