Hi,
For item-post.php maybe you need use javascript.
The div of field price need be hidden by default, and when user choose the different option of donate, the div of price field need be visible. For other hand when user choose the donate option on your dropdown menu, the price field need be hidden.
For item.php you need use a condition with the parameters: osc_item_meta_name(), and osc_item_meta_value()
No need javascript with this, you need pass the parameter on the functions, the name and right value, maybe is needed.
The condition can be something like: if(osc_item_meta_value() != 'donation'){... price code ...}.
Maybe just the value maybe works, you need try the possibilities.
Or something like: if(osc_item_meta_name('name-of-dropdown-menu') && !osc_item_meta_value('donation'){... price code ...}. Maybe works.
Maybe this can help you for item-post.php
You need to know the class name you use for field price and hide the div with css, firstly.
Find all ID of options, of your dropdown menu and change it on javascript (#id_option).
Use an inspector browser and you find it.
<script type="text/javascript">
$(document).ready(
function() {
$("#id_option_sell").click(function() {
$(".price").show();
});
$("#id_option_buy").click(function() {
$(".price").show();
});
$("#id_option_swap").click(function() {
$(".price").show();
});
$("#id_option_rent").click(function() {
$(".price").show();
});
$("#id_option_service").click(function() {
$(".price").show();
});
$("#id_option_donation").click(function() {
$(".price").hide();
});
});
</script>
Or the function maybe can works like this, you need try
<script type="text/javascript">
$(document).ready(
function() {
$("#id_option_sell, #id_option_buy, #id_option_swap, #id_option_rent, #id_option_service").click(function() {
$(".price").show();
});
$("#id_option_donation").click(function() {
$(".price").hide();
});
});
</script>
Regards