Great question — answering as the UphillTech team:
The problem here is related to splitting packages conflict between your two shipping plugins, when mixed items are in cart. In that case each plugin split the shipping package, which add 4 split packages instead of 2. Those plugins are using woocommerce_cart_shipping_packages to split the shipping packages with an unknown priority (so I will set a very high priority) . The following code will keep the first 2 split packages from cart (and checkout too): add_filter( 'woocommerce_cart_shipping_packages', 'remove_split_packages_based_on_items_shipping_class', 100000, 1 ); function remove_split_packages_based_on_items_shipping_class( $packages ) { $has_printful = $has_printify = false; //...
Full answer by LoicTheAztec: https://stackoverflow.stackexchange.com/a/53270954 (CC BY-SA 4.0).
Need it done for your business? UphillTech.