I'm working on a site requirement where products in Ubercart with a 0 price show a text message instead of an 'add to cart' form.
The product list is being generated by views and presented in table layout. Some of the products selected by the view have a price (view is using 'sell price'), some do not.
The current code works for the 'form_alter' for non-0 price. The current code works for replacing the form with text. *It does not work in determining which products (rows) in the table are 0 price.*
I have not been able to nail down whether the issue is the reference to the 'price' field in the view record or if it is my comparison value (is it already formatted for display at this point).
Any suggestions welcomed an appreciated.
Here is my current code:
<?php // $Id$
/**
- Implementation of hook_form_alter().
*/ function clientname_cart_form_alter(&$form, $form_state, $form_id) { //only 'add to cart forms' if(substr($form_id, 0, 28) == 'uc_product_add_to_cart_form_') { if($node->sell_price == 0) { // if 0.00 price, show 'call for quote' text $form['qty'] = array( '#type' => 'markup', '#value' => '<div>Call for Quote</div>', ); $form['submit'] = array( '#type' => 'markup', '#value' => '', ); } else { // if>0.00 price alter the form $form['qty'] = array( '#type' => 'textfield', '#default_value' => '1', '#description' => '', '#size' => '1', '#maxlength' => 4, ); } } }
Ron D.