Home Forums WoodMart support forum Resolving Price Display Issues for Variable Products in WooCommerce: Fixing Sale

Resolving Price Display Issues for Variable Products in WooCommerce: Fixing Sale

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
    Posts
  • #601114

    av_admin_1984
    Participant

    Hi

    We are using a code on our website that you previously developed to swap the display of the sale price and the regular price of a product. The issue with this code is that for variable products, it merges the regular price and the sale price into one. With this code, both output prices are the same, meaning the sale price and the regular price are identical. The code is as follows:

    function custom_pric_sale_price_html( $price, $product ) {
        if ( $product->is_on_sale() ) {
            $regular_price = wc_get_price_to_display( $product, array( 'price' => $product->get_regular_price() ) );
            $sale_price = wc_get_price_to_display( $product, array( 'price' => $product->get_sale_price() ) );
            $price = '<del>' . wc_price( $regular_price ) . '</del> <br> <ins>' . wc_price( $sale_price ) . '</ins>';
        }
        return $price;
    }
    add_filter( 'woocommerce_get_price_html', 'custom_pric_sale_price_html', 10, 2 );

    I also found these codes but they don’t work

    function custom_pric_sale_price_html( $price, $product ) {
        if ( $product->is_on_sale() ) {
            $regular_price = $product->get_regular_price();
            $sale_price = $product->get_sale_price();
    
            $regular_price_display = wc_get_price_to_display( $product, array( 'price' => $regular_price ) );
            $sale_price_display = wc_get_price_to_display( $product, array( 'price' => $sale_price ) );
    
            $price = '<del>' . wc_price( $regular_price_display ) . '</del> <br> <ins>' . wc_price( $sale_price_display ) . '</ins>';
        } else {
            $regular_price_display = wc_get_price_to_display( $product, array( 'price' => $product->get_regular_price() ) );
            $price = wc_price( $regular_price_display );
        }
    
        return $price;
    }
    add_filter( 'woocommerce_get_price_html', 'custom_pric_sale_price_html', 10, 2 );
    

    or

    function custom_pric_sale_price_html( $price, $product ) {
        if ( $product->is_on_sale() ) {
            $regular_price = $product->get_regular_price();
            $sale_price = $product->get_sale_price();
    
            $regular_price_display = wc_get_price_to_display( $product, array( 'price' => $regular_price ) );
            $sale_price_display = wc_get_price_to_display( $product, array( 'price' => $sale_price ) );
    
            $price = '<del>' . wc_price( $regular_price_display ) . '</del> <br> <ins>' . wc_price( $sale_price_display ) . '</ins>';
        } else {
            $regular_price_display = wc_get_price_to_display( $product, array( 'price' => $product->get_regular_price() ) );
            $price = wc_price( $regular_price_display );
        }
        return $price;
    }
    add_filter( 'woocommerce_get_price_html', 'custom_pric_sale_price_html', 10, 2 );
    

    or

    function custom_pric_sale_price_html( $price, $product ) {
        if ( $product->is_on_sale() ) {
            $regular_price = $product->get_regular_price();
            $sale_price = $product->get_sale_price();
            
            $regular_price_display = wc_get_price_to_display( $product, array( 'price' => $regular_price ) );
            $sale_price_display = wc_get_price_to_display( $product, array( 'price' => $sale_price ) );
            
            $price = '<del>' . wc_price( $regular_price_display ) . '</del> <br> <ins>' . wc_price( $sale_price_display ) . '</ins>';
        }
        return $price;
    }
    add_filter( 'woocommerce_get_price_html', 'custom_pric_sale_price_html', 10, 2 );
    

    or

    function custom_pric_sale_price_html( $price, $product ) {
        if ( $product->is_on_sale() && $product->is_type('variable') ) {
            // Get the variation prices
            $regular_price = $product->get_regular_price();
            $sale_price = $product->get_sale_price();
            
            // Check if sale price and regular price are not the same
            if ( $regular_price !== $sale_price ) {
                $regular_price_display = wc_get_price_to_display( $product, array( 'price' => $regular_price ) );
                $sale_price_display = wc_get_price_to_display( $product, array( 'price' => $sale_price ) );
                $price = '<del>' . wc_price( $regular_price_display ) . '</del> <br> <ins>' . wc_price( $sale_price_display ) . '</ins>';
            } else {
                // If they are the same
    

    or

    function custom_pric_sale_price_html( $price, $product ) {
        if ( $product->is_on_sale() && $product->is_type('variable') ) {
            $regular_price = $product->get_regular_price();
            $sale_price = $product->get_sale_price();
            
            if ( $regular_price !== $sale_price ) {
                $regular_price_display = wc_get_price_to_display( $product, array( 'price' => $regular_price ) );
                $sale_price_display = wc_get_price_to_display( $product, array( 'price' => $sale_price ) );
                $price = '<del>' . wc_price( $regular_price_display ) . '</del> <br> <ins>' . wc_price( $sale_price_display ) . '</ins>';
            } else {
                $price = wc_price( wc_get_price_to_display( $product, array( 'price' => $regular_price ) ) );
            }
        }
        return $price;
    }
    add_filter( 'woocommerce_get_price_html', 'custom_pric_sale_price_html', 10, 2 );
    

    How can I resolve this issue?

    #601424

    Luke Nielsen
    Keymaster

    Hello,

    Please send me the URL page where it merges the regular price and the sale price into one. Also, provide the admin access to that website so I can investigate it.

    Kind Regards

    #601462

    av_admin_1984
    Participant

    Hi

    Please don’t change anything in this site,
    Please don’t share anything here

    Just put image in wordpress gallery and tell me

    Thanks

Viewing 3 posts - 1 through 3 (of 3 total)