duanpa5237 2016-08-31 16:03
浏览 41
已采纳

WooCommerce - 为免费用户计划添加运费

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条回答 默认 最新

  • dsijovl015728613 2016-08-31 16:13
    关注

    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:

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥30 关于用python写支付宝扫码付异步通知收不到的问题
  • ¥50 vue组件中无法正确接收并处理axios请求
  • ¥15 隐藏系统界面pdf的打印、下载按钮
  • ¥15 MATLAB联合adams仿真卡死如何解决(代码模型无问题)
  • ¥15 基于pso参数优化的LightGBM分类模型
  • ¥15 安装Paddleocr时报错无法解决
  • ¥15 python中transformers可以正常下载,但是没有办法使用pipeline
  • ¥50 分布式追踪trace异常问题
  • ¥15 人在外地出差,速帮一点点
  • ¥15 如何使用canvas在图片上进行如下的标注,以下代码不起作用,如何修改