function custom_price_shortcode_callback( $atts ) { $atts = shortcode_atts( array( 'id' => null, ), $atts, 'product_price' ); $html = ''; if( intval( $atts['id'] ) > 0 && function_exists( 'wc_get_product' ) ){ // Get an instance of the WC_Product object $product = wc_get_product( intval( $atts['id'] ) ); // Get the product prices $price = wc_get_price_to_display( $product, array( 'price' => $product->get_price() ) ); // Get the active price $regular_price = wc_get_price_to_display( $product, array( 'price' => $product->get_regular_price() ) ); // Get the regular price $sale_price = wc_get_price_to_display( $product, array( 'price' => $product->get_sale_price() ) ); // Get the sale price // Your price CSS styles $style1 = 'style="font-size:40px;color:#e79a99;font-weight:bold;"'; $style2 = 'style="font-size:25px;color:#e79a99"'; // Formatting price settings (for the wc_price() function) $args = array( 'ex_tax_label' => false, 'currency' => 'EUR', 'decimal_separator' => '.', 'thousand_separator' => ' ', 'decimals' => 2, 'price_format' => '%2$s %1$s', ); // Formatting html output if( ! empty( $sale_price ) && $sale_price != 0 && $sale_price < $regular_price ) $html = "<del $style2>" . wc_price( $regular_price, $args ) . "</del> <ins $style1>" . wc_price( $sale_price, $args ) . "</ins>"; // Sale price is set else $html = "<ins $style1>" . wc_price( $price, $args ) . "</ins>"; // No sale price set } return $html; } add_shortcode( 'product_price', 'custom_price_shortcode_callback' );
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter