skip to Main Content

I have an online shop with WooCommerce. I want to show a custom price Suffix only on the Product List Page (like Shop Page), where all products are listed.

I have the following code:

add_filter( 'woocommerce_get_price_html', 'custom_price_suffix', 100, 2 );

function custom_price_suffix( $price, $product ){
    $price = $price . ' Suffix '; 
    return apply_filters( 'woocommerce_get_price', $price );
}

But with this code, the suffix is display in the Product list Page and on single Products. Can anyone help me?

2

Answers


  1. As mentioned in the comments you can use the is_shop() function to check if you are on the shop page like this:

    add_filter( 'woocommerce_get_price_html', 'custom_price_suffix', 100, 2 );
    function custom_price_suffix( $price, $product ) {
        if ( is_shop() ) $price .= ' ' . __('Suffix');
        return $price;
    }
    
    Login or Signup to reply.
  2. The following will show an additional custom price suffix on all product listings (except on single products):

    add_filter( 'woocommerce_get_price_suffix', 'additional_price_suffix', 999, 4 );
    function additional_price_suffix( $html, $product, $price, $qty ){
        global $woocommerce_loop;
    
        // Not on single products
        if ( ( is_product() && isset($woocommerce_loop['name']) && ! empty($woocommerce_loop['name']) ) || ! is_product() ) {
            $html .= ' ' . __('Suffix');
        }
        return $html;
    }
    

    Or you can also use:

    add_filter( 'woocommerce_get_price_html', 'additional_price_suffix', 100, 2 );
    function additional_price_suffix( $price, $product ){
        global $woocommerce_loop;
    
        // Not on single products
        if ( ( is_product() && isset($woocommerce_loop['name']) && ! empty($woocommerce_loop['name']) ) || ! is_product() ) {
            $price .= ' ' . __('Suffix');
        }
        return $price;
    }
    

    Code goes in functions.php file of your active child theme (or active theme). Tested and works.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search