WooCommerce shipping options based on weight can be accomplished by creating a callback function for the woocommerce_cart_shipping_packages filter. The filter hook allows you to make a change to the cart package such as conditional shipping options based on shipping class, location, or weight.
To get the weight of all the products in the shopping cart you can use the cart_contents_weight method of the WooCommerce Cart class. The code below will allow only UPS shipping method if the weight is great than 4 pounds. If the weight is below 4 pounds USPS will be the only shipping options. The shipping options can be changed on lines 15 and 30. The weight condition can be changed on line 13.