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 8 posts - 1 through 8 (of 8 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

    #601739

    Luke Nielsen
    Keymaster

    Hello,

    Sorry for the delay.

    It seems you sent the URL of the page via the tool for the URLs, unfortunately, that short URL is not working, may you send me the default URL?

    Thank you for your time.

    Kind Regards

    #601782

    av_admin_1984
    Participant

    Hi

    your support forum dos not support UTF8 url’s

    Check private box

    #602045

    Luke Nielsen
    Keymaster

    Hello,

    We see the problem, but this problem was caused by custom code that is only intended for simple products.

    I await your response.

    Kind Regards

    #602074

    av_admin_1984
    Participant

    Hello

    Do you have any suggestion or soulution?
    I need that code to change the order of price for simple product

    and I also sent you the code that we compiled to work with variation product but did not work at all

    do you have custom code for both of theme?

    #602139

    Luke Nielsen
    Keymaster

    Hello,

    Sorry but the 3rd party customization, including developing or modifying custom code, is not included in our support services.

    For more advanced customizations like this, I would recommend consulting a WooCommerce developer who can assist in tailoring the code to meet your needs.

    If you have any questions regarding the WoodMart theme features, feel free to reach out. We’re happy to help within the scope of our support.

    Kind Regards

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