I am using WooCommerce and with Paid Memberships Pro free plugin.
On the web site we have 2 plans (a free plan and a paid plan):
Since WooCommerce 2.6+, shipping has been remodeled, and is quite complicated to customize it as you would like, without a plugin… Instead you do, is adding a fee based on your user levels and other conditions if needed.
Here is my code:
function add_shipping_fee( ) {
// Set here your shipping fee amount
$fee = 4;
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
if ( pmpro_hasMembershipLevel('2') == false)
WC()->cart->add_fee( __('Shipping Fee:', 'your_theme_slug'), $fee, false );
}
add_action( 'woocommerce_cart_calculate_fees','add_shipping_fee' );
This goes naturally in function.php file of your active child theme (or theme) or also in any plugin file.
This code is tested and working.
References: