Woocommerce - 价格相关的运输成本 - 有更好的方法吗?

时间:2014-10-16 16:28:02

标签: wordpress woocommerce e-commerce

我正在寻找一个免费的解决方案(来吧,Wordpress应该是开源的!),根据购物车价格,有一个运费选项。让我们说,如果购物车总金额为50美元及以上,我想免费发货,如果购物车总金额低于所需金额(即50美元),则需要收取4.99美元。

到目前为止我尝试了什么?

嗯,我能找到的最佳工作解决方案是为所有产品配置统一费率运费,如果金额大于X,则免费发货。问题在于这两个选项(免运费和统一运费) )当用户到达购物车时向用户显示。我不想要那个。

我只想告诉他们,如果他们的购物车金额低于50美元,则要支付4.99美元的运费等等。

到目前为止我尝试过的过滤器: woocommerce_package_rates无法正常工作。它甚至不会执行。

我认为为此找到解决方案会很棒,因为我找不到任何解决方案。无论如何,这应该是任何电子商务解决方案的基本特征。

3 个答案:

答案 0 :(得分:0)

正在搜索自己的插件。

看起来我找到了一个免费的插件: https://wordpress.org/plugins/woocommerce-table-rates/stats/

仅安装了它,但尚未测试它,因为我在DB中没有产品:P

答案 1 :(得分:0)

我正在寻找相同的选项,显然Woocommerce本身就涵盖了它: 关于functions.php的所有内容

WC 3.0 +的片段

/**
 * Hide shipping rates when free shipping is available.
 * Updated to support WooCommerce 2.6 Shipping Zones.
 *
 * @param array $rates Array of rates found for the package.
 * @return array
 */
function my_hide_shipping_when_free_is_available( $rates ) {
    $free = array();
    foreach ( $rates as $rate_id => $rate ) {
        if ( 'free_shipping' === $rate->method_id ) {
            $free[ $rate_id ] = $rate;
            break;
        }
    }
    return ! empty( $free ) ? $free : $rates;
}
add_filter( 'woocommerce_package_rates', 'my_hide_shipping_when_free_is_available', 100 );

WC 2.5的片段

/**
 * woocommerce_package_rates is a 2.1+ hook
 */
add_filter( 'woocommerce_package_rates', 'hide_shipping_when_free_is_available', 10, 2 );

/**
 * Hide shipping rates when free shipping is available
 *
 * @param array $rates Array of rates found for the package
 * @param array $package The package array/object being shipped
 * @return array of modified rates
 */
function hide_shipping_when_free_is_available( $rates, $package ) {

    // Only modify rates if free_shipping is present
    if ( isset( $rates['free_shipping'] ) ) {

        // To unset a single rate/method, do the following. This example unsets flat_rate shipping
        unset( $rates['flat_rate'] );

        // To unset all methods except for free_shipping, do the following
        $free_shipping          = $rates['free_shipping'];
        $rates                  = array();
        $rates['free_shipping'] = $free_shipping;
    }

    return $rates;
}

来源:https://docs.woocommerce.com/document/hide-other-shipping-methods-when-free-shipping-is-available/

我测试过并且工作正常,Woocommerce缓存擦除很重要,否则会一直显示所有选项。

答案 2 :(得分:-2)

Woocommerce有一个内置的"免费送货"运输方法,可以选择指定最小金额。应该是你的情况。