WooCommerce - Adding shipping fee for free user plan

会有一股神秘感。 提交于 2019-12-02 04:29:00

问题


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):

  • 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:


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:

  • WooCommerce - Make a set of coupons adding a fixed fee to an order
  • WooCommerce class - WC_Cart - add_fee() method


来源:https://stackoverflow.com/questions/39254267/woocommerce-adding-shipping-fee-for-free-user-plan

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!