Thank you, tcindie for the great work. Your implementation works.
Could we extend it just one step further?
I have one print in different sizes, which have different prices for each size, I created class of the product with attributes/ options which shows different price for each option. I do not need to show standard field -> sale price which never updated and confuses customers.
On the Admin->Store admin->products I enabled power tools for this class + used Hide Sell Price field & Use default value below radio button.
During creation of the product of this class sale price is hidden.
When I looked at the result of the creation. The sale price was not hidden.
Could you help in this matter?

CommentFileSizeAuthor
#2 PowerToolUseExample.jpg62.2 KBLightFromArt
Support from Acquia helps fund testing for Drupal Acquia logo

Comments

willvincent’s picture

The module does not currently support attributes, so only the base product would be affected.

I'll take a closer look at the issue when my time frees up a bit over the next couple of weeks.

LightFromArt’s picture

FileSize
62.2 KB

Thank you. Yes, I need to hide sale price on the base product only. The attributes are working fine.
I am attaching a picture to see the resulting page. You could see from the image, that if the sale price on the base product will be hidden, then everything will be perfect. Customer will see only right price from the options.

willvincent’s picture

Status: Active » Postponed (maintainer needs more info)

Ahh.. I see what you're talking about. I could have sworn there was a way to hide the base price on a product node that has attributes, but not on other nodes.. can't seem to remember where such a setting might live though. But, the bottom line is that this issue really isn't really a power tools module issue at all.

This module hides things in the node edit form, It has no affect over the rendered product display page, that's more of a theming issue.

I won't outright deny the request at the moment, but it's not something I think will be added soon, as it really seems like an unrelated issue.

SocialNicheGuru’s picture

can i hide the price all together.

I am using this with an event. for a specific event type I allow a user to add price to a field and use paypal.

I would like to hide the product price field for this event type.

I need to use ubercart for signup on this type of event.

Thanks,
Chris

willvincent’s picture

The best solution for this -- at least for the time being -- would be to turn off the display of prices in the ubercart settings, then create a node-product.tpl.php file in your theme directory that displays it... Then for product classes you don't want it displayed for, create node templates for those and hide it again.

This really is more of a theming issue than anything

stephthegeek’s picture

Status: Postponed (maintainer needs more info) » Active

I would put a vote in for having this module also adjust the display of fields per product class. This would be very handy for sites with both physical and virtual goods where fields like dimensions, weight, etc are irrelevant for some classes. Yes you can have different sets of tpl files per product class if you know how to bust out all the fields, but while we're in there setting up these lovely form tweaks for the edit pages, disabling them on the view pages would be awesome too :)

willvincent’s picture

That's a good point Steph.. I'll take a look into this when I've got time to start working on some of the feature requests

willvincent’s picture

Component: Code » User interface
Status: Active » Postponed
akolahi’s picture

MaxC-1’s picture

OK, I have managed to get rid of the "List price:" field (in Drupal 7) - just for everyone who comes here wanting an answer.

To get rid of any field, go to the function
theme_uc_product_price($variables) in yoursite/sites/all/modules/ubercart/uc_product.module .

Under the line of code:

$label = isset($element['#title']) ? $element['#title'] : '';

add an if statement that returns

$output = ' ';

if the $label == whatever the name of the label is that you're trying to get rid of.

For example, to stop the "List price:" label from showing, type:

if($label == "List price:")
  {
  	$output = ' ';
	return $output;	
  }

Hope this helps!