首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在不使用区域或统一费率的情况下,向Woocommerce船运类别加收费用

在不使用区域或统一费率的情况下,向Woocommerce船运类别加收费用
EN

Stack Overflow用户
提问于 2019-02-22 19:25:25
回答 1查看 571关注 0票数 2

我很难找到我需要的东西,所以我求助于这里的大师!

我正在使用Woocommerce和一个名为Table航运加(按工时)的插件为我们简单的非营利漫画书店。我们使用重量为基础的航运作为标准,在瑞典,所以统一的费率制度不是我们的商店的选择。

我已经创建了一个“笨重”的船运类,我需要它,在选择该类别的产品时,自动向购物车(只有一次,没有堆叠)添加一小笔费用,而不使用woocommerce的船运区和统一费率系统。

我似乎在任何地方都找不到做这种简单操作的东西,而且我不太懂php,不足以自己为functions.php编写函数或过滤器。

有人能给我指明正确的方向吗?我一直盯着自己看不见..。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-22 21:11:44

如果我给您这段代码以放入functions.php中,您会理解如何定制它吗?还是我应该为你把它变成一个简单的插件?

提供了它在本地WP测试环境下工作的可视化。

安装到functions.php

向下滚动到实际代码开始的地方,然后复制并粘贴整个块,然后直接粘贴到主题文件夹functions.php的最底部。只是一个简单的拷贝和粘贴。

使用说明.

步骤1.在WooComerce设置>发送>发送类中创建您的传送类。例如,在我的测试站点上,我在wooComerce设置中创建了“笨重”和“轻型”传送类。记住你为第二步设置的子弹。

步骤2.在EX1中,我将包装在'‘中的WooCommerce运输类的区分大小写的段塞。在EX2,我将描述您希望在结帐时显示在“”内的费用。最后,在EX3,您只需放置费用的数字值,这不属于'‘。

代码语言:javascript
复制
//Example:
$shippingClasses['EX1'] = ['description' => 'EX2', 'fee' => EX3];

//How it will look:
$shippingClasses['bulky'] = ['description' => 'Bulky Fee', 'fee' => 7];
$shippingClasses['light'] = ['description' => 'Light Fee', 'fee' => 4];

就这样!这就是你所要做的。

代码语言:javascript
复制
function fees_fees_fees() {

    $shippingClasses['bulky'] = ['description' => 'Bulky Fee', 'fee' => 5];
    $shippingClasses['light'] = ['description' => 'Light Fee', 'fee' => 7];

    foreach ( WC()->cart->get_cart() as $cart_item_key => $values ) {
    $shipping_class = get_the_terms( $values['product_id'], 'product_shipping_class' );

        foreach($shippingClasses as $key => $val) {
        if ( isset( $shipping_class[0]->slug ) && in_array( $shipping_class[0]->slug, [$key] ) ) {
              WC()->cart->add_fee( __($val['description'], 'woocommerce'), $val['fee'] ); }
        }
    }
}
add_action( 'woocommerce_cart_calculate_fees', 'fees_fees_fees' );
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54833854

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档