Display POA in Ubercart 3 / D7 for products of zero dollars I'm building an ecommerce site where some products are price negotiable and want a way to add POA instead of a listing a price when a product is displayed.

I'm kinda surprised at how hard this is to do.. I have a snippet that works for Ubercart 1 in Drupal 5, but it looks like the hooks have changed in Ubercart 3 and I can't find a pricing hook: 

    &lt;?php
function zen_uc_product_display_price($price) {
  $output = '&lt;div class="display_price"&gt;';
    if ($price!=0) {
      $output .= uc_currency_format($price);
    } else {
      $output .= t('P.O.A');
    }
  $output .= '&lt;/div&gt;';
  return $output;
}
function

zen_uc_product_sell_price($price, $teaser) {
  if ($teaser) {
    $output = '&lt;span class="sell_price"&gt;';
        if ($price!=0) {
            $output .= uc_currency_format($price);
        } else {
            $output .= t('P.O.A');
        }
    $output .= '&lt;/span&gt;';
  }
  else {
    $output = '&lt;div class="sell_price"&gt;';
        if ($price!=0) {
            $output .= t('Price: !price', array('!price' =&gt; uc_currency_format($price)));
        } else {
            $output .= t('Price: P.O.A');
        }
    $output .= '&lt;/div&gt;';
  }
  return $output;
}
?&gt;


I've managed to hook the add to cart function and direct it to a webform with the following snippet:

&lt;?php

function fmc_uc_product_add_to_cart( $variables ) {
$sell_price = $variables['form']['node']['#value']-&gt;price;
if ($sell_price &lt;= 0) { 
return '&lt;form action="http://www.example.com/" method="post"&gt;&lt;input type="hidden" name="product" value="' . drupal_get_title() . '" /&gt;&lt;input type="submit" class="form-submit" value="' . t('POA') . '" /&gt;&lt;/form&gt;';
}
else {
return fmc_uc_product_add_to_cart($variables);
}
}


But I'm having no luck with the pricing function, if anyones got a code snippet I can run in my template.php file that'd be the ideal solution, but any ideas / advice is hugely appreciated. Is there a way this can be broken out inside a node--product.tpl.php file maybe?
I have not tried this out but I would think you could override theme_uc_price() in your template.php something like this:

function THEMENAME_uc_price($variables) {
  if ($variables['price']) {
    $output = '&lt;span class="uc-price"&gt;' . uc_currency_format($variables['price']) . '&lt;/span&gt;';
    if (!empty($variables['suffixes'])) {
      $output .= '&lt;span class="price-suffixes"&gt;' . implode(' ', $variables['suffixes']) . '&lt;/span&gt;';
    }
  }
  else {
    $output = t('P.O.A');
  }
  return $output;
}