You are on the right track -
Instead of only removing the code find the items you wish to remove display for and change to hidden input fields as follows;
find -
// hidden fields not changeable on products page
in (collect_info.php) and add this replacement code here.
Code:
echo zen_draw_hidden_field ('products_virtual', $pInfo->products_virtual == 1 );
Then Find this corresponding code and remove
Code:
<tr>
<td class="main"><?php echo TEXT_PRODUCTS_VIRTUAL; ?></td>
<td class="main"><?php echo zen_draw_separator('pixel_trans.gif', '24', '15') . ' ' . zen_draw_radio_field('products_virtual', '1', $is_virtual) . ' ' . TEXT_PRODUCT_IS_VIRTUAL . ' ' . zen_draw_radio_field('products_virtual', '0', $not_virtual) . ' ' . TEXT_PRODUCT_NOT_VIRTUAL . ' ' . ($pInfo->products_virtual == 1 ? '<br /><span class="errorText">' . TEXT_VIRTUAL_EDIT . '</span>' : ''); ?></td>
</tr>
Now that you have the hang of what we did you can go and make similar changes for each item you want to hide from displaying in the product editing form.
The concept here is that you can't just remove code when dealing with forms, input fields. Instead we set the input to hidden while still delivering the data for processing.