Posted by mgladding on September 10, 2009 at 11:35pm
Jump to:
| Project: | Ubercart Fee |
| Version: | 6.x-1.0-beta1 |
| Component: | User interface |
| Category: | feature request |
| Priority: | normal |
| Assigned: | Unassigned |
| Status: | active |
Issue Summary
I only have 1 product that has a handling fee, yet I have to visit each individual product to override the global fee settings. This is extremely time consuming! I suggest that the fee is not enabled by default and has to be turned on like an attribute in a product.
Thanks.
Comments
#1
I'm absolutely with you on this one. I've got a LOT of products to go through right now to override the default (to exclude the fee). I have a condition saying to only apply the fee to a certain product class. It'd be awesome if it took this into consideration in the add-to-cart form too, so that the user doesn't see a fee when one isn't going to be applied. Other than that, it's an A+ module :)
#2
$("body.node-type-event .add-to-cart div.form-item:contains('Handling Charges')").hide();This is a bit of jQuery code I've used to hide the fee information for products of type "event" if the fee div contains the string "Handling Charges". I already have a condition on the fee to not apply the fee to products of type "event" but this code makes it easy for me to hide the fee description in the add-to-cart form of all of the event products. This beats having to manually override the fee for each event product. (note that this is js, so users *could* see the div, but the conditions won't allow it to be applied anyways.
I could have used straight CSS (display: none) for this div if the div was classed... If it's too hard to modify the module to not show when the fee isn't going to be applied, perhaps the module's author/maintainer could give each fee "form-item" div an additional class containing the name of the fee... in my case, it would be div class="form-item fee-handling-charges". That way, I could just use this code in my css:
body.node-type-event .add-to-cart .fee-handling-charges{display: none;
}
Maybe I'll take this task on and submit a patch... it probably should have the additional class regardless of any future solutions to the problem at hand.
#3
You don't need a condition to only apply the fee to a particular product class - you can override the defaults at the product class and/or product level. So, assuming you had a product class called "event", you could visit /admin/store/products/classes/event/fees and override the defaults for that particular class. So, in your case, you could disable the fee on all product classes except events.