How to adding shipping fee for free user plan?

  • Open
  • gagandeep
    Participant
    November 11, 2019 at 11:21 am #4136
    gagandeep

    Hi,

    i am using  Paid Memberships Pro free plugin.

    On the web site we have 2 plans (a free plan and a paid plan):

    Free users can buy 1 item each month,
    Paid users can buy 4 items each months.
    Now I don’t know how to simply calculate shipping on checkout page with code like:

    if (pmpro_hasMembershipLevel('2')) { // Paid plan
    
    //free shipping (0$)
    
    } else {
    
    //add shipping 4$ to checkout
    
    }

    No shipping class, No region zone is affect shipping price.

    I have tried to set Shipping options, but I can’t get rid of it.

    How can I achieve this?

    Thanks.

  1. Santosh Kumar
    Keymaster
    Posts: 45
    November 11, 2019 at 11:28 am #4138
    Santosh Kumar

    Hi Gagandeep,

    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.

    Thanks