Cómo mostrar el precio de venta de woocommerce o el precio regular si no hay precio de venta

Estoy usando un complemento de complementos de productos de woocommerce en el que me gustaría mostrar el precio de un producto en la sección desplegable de los complementos. Actualmente el código que tengo es este

 <p class="form-row form-row-wide addon-wrap-"> <select class="addon addon-select" name="addon-">    <!---->   $option ) : $loop ++; $price = apply_filters( 'woocommerce_product_addons_option_price', $option['price'] > 0 ? ' + ' . wc_price( get_product_addon_price_for_display( $option['price'] ) ) . '' : '', $option, $i, 'select' ); ?> <option data-raw-price="" data-price="" value="" >get_price_html()) . $price ?>)   

Estoy usando este eco

 $product->get_price_html() 

lo que esto hace es mostrar el “precio de venta” $ “precio” pero solo quiero mostrar el precio de venta o solo el precio del producto si no hay precio de venta. Mirando el código de abajo, ¿cómo lograría esto?

Bastante simple. Escribiremos una función personalizada que primero estará segura de que si el producto está en oferta o no. Luego devolverá el precio regular o de venta según la condición de venta que definió anteriormente. Así que la función será

 /** * Returns product price based on sales. * * @return string */ function the_dtwigtist_price_show() { global $product; if( $product->is_on_sale() ) { return $product->get_sale_price(); } return $product->get_regular_price(); } 

Ahora llame a esta función the_dtwigtist_price_show() lugar de $product->get_price_html() . Obtendrá el precio basado en si está en venta o no sin el símbolo de moneda.

Espero que ayude.

Este artículo funcionó para mí. También puedes probar este.

Si desea obtener el precio regular o el precio de venta de un producto de woocommerce y no obtiene nada, necesita saber lo siguiente:

Si el producto no tiene variaciones, puede obtener el precio regular y el precio de venta así:

Consiga el precio de un simple producto.

 < ?php #the product must be instantiated above like $product = new WC_Product(); echo $product->regular_price; echo $product->sale_price; ?> 

Si el producto tiene variaciones, no obtendrá nada si utilizará el código anterior.

Usted necesita obtener los precios de los productos de variación.

Consiga el precio de un producto con variaciones.

 #1 Get product variations $product_variations = $product->get_available_variations(); #2 Get one variation id of a product $variation_product_id = $product_variations [0]['variation_id']; #3 Create the product object $variation_product = new WC_Product_Variation( $variation_product_id ); #4 Use the variation product object to get the variation prices echo $variation_product ->regular_price; echo $variation_product ->sale_price; 

Eso debería ser todo.

Disfrutar.

Fuente: http://www.w3bdeveloper.com/how-to/how-to-get-regular-price-of-a-product-in-wordpress-woocommerce/

Eso es lo que me funciona con WordPress 5.1 y WooCommerce 3.5.5:

  $price = get_post_meta( get_the_ID(), '_regular_price', true); $price_sale = get_post_meta( get_the_ID(), '_sale_price', true); if ($price_sale !== "") { echo $price_sale; } else { echo $price; }