I love your cow image
Thanks – It took a long time to gel my hair like that 😉
A few general comments if I may: Usually, one would like as few shipping options as possible. In other words, where possible, items should be grouped in boxes/parcels/methods to reduce the overhead/time in organizing shipping.
In each instance, you mention the following:
will show the shipping charge on the product page
Since we don’t know the address / location of the user when they’re visiting your product page, it’s impossible to say that the shipping costs will be “x” – these are only calculated AFTER they’ve added their address.
Products with free shipping
That’s fine – WooCommerce already make allowance for this by configuring a “Free Shipping” method. More information at https://docs.woocommerce.com/document/free-shipping/.
Products with individual shipping charges
Out of the box, WooCommerce doesn’t have a per product shipping option – this means that you’ll need to look into using https://www.woocommerce.com/products/per-product-shipping/
These shipping costs will usually be added on top of any shipping methods you have already configured.
Products with per order shipping charges
This depends a great deal on whether there’s a sliding scale of costs involved or whether it’s a single flat rate. In the event that it’s a sliding scale, you’ll need to looking into using https://www.woocommerce.com/products/table-rate-shipping/.
If, however, it’s a single flat rate, then the default WooCommerce plugin already caters for this. For more information, have a look at the following guide: https://docs.woocommerce.com/document/flat-rate-shipping/
The main issue comes in when a customer orders a “Free Shipping” item AND a “Per Order Shipping” item – which one takes priority? If you need to filter the shipping methods presented to the customer in such a scenario, then you’ll need to look into using https://www.woocommerce.com/products/woocommerce-conditional-shipping-and-payments/ 🙂
Hope it helps.