启用Woo Commerce上的特定物品免费送货服务[关闭]


8

我想知道是否只有在购物车中包含某些物品(或某些类别/运输类别的物品)的情况下,才可以通过Woo Commerce启用免费送货服务。

“免费送货”选项仅根据购物车价值或通过优惠券代码激活,因此我调查了“固定费用”送货,并发现它优先考虑最便宜的送货类别和最便宜的送货类别。这意味着我创建的免费送货类别不会覆盖默认费用。

我了解这背后的逻辑,但这与我需要的相反,因为其想法是通过消除订单中包含的运费来激励购买更高利润率的产品。

我不知道Woo Commerce是否根本无法实现我想要实现的目标。仅适用于某些产品/类别的优惠券似乎是我可以获得的最接近的优惠券,但我不想强迫用户在结帐时输入代码。

有人知道是否有更简单的方法可以使购买某些产品的用户免运费?


3
如何在地球上做这个WordPress的插件相关的问题,upvoted 8倍和收藏最多3次由WordPress的开发者得到封闭,“题外话”乌

@Ben,因为它是WooCommerce插件,而不是WordPress特定问题(如帮助中心所述
Alexander Holsgrove

Answers:


1

也许这还不能完全回答您的问题,但是表格费率发送插件确实为您提供了为特定费率设置优先级的选项。此外,该讨论为您在哪里寻找解决方案提供了很多提示


谢谢。查看Table Rate Shipping的文档,它似乎可以满足我的需要。如果我的雇主申请了许可证,我将更新其使用情况。
詹姆斯·奥尼尔

请不要发布指向外部资源的链接。而是在这里召唤他们,并使用其顶部的链接。如果链接消失了,答案就没用了,我们正在努力防止链接腐烂。-1
kaiser

5

有人知道是否有更简单的方法可以使购买某些产品的用户免运费?

实际上,在创建产品时,您可以直接在产品编辑器中将其标记为虚拟产品,这将完全排除该产品的运输。


1
这适用于简单产品,但不适用于其他类型的产品-例如,变量。不错的尝试。这可能对某些人有用。
亚历山大·李·威廉姆斯

为什么这不适用于可变产品?您可以将每个变体标记为virtual
BFTrick 2013年

我同意@BFTrick
弥敦道

1
这也很糟糕,因为系统无法访问客户的SHIPPING地址,这很重要;)
Kane

2

这是一些Gist摘录的片段,该片段摘自@Ewout在另一个答案中链接的GitHub问题讨论。我添加了var_dump(),因此您可以取消注释并检查要删除的内容。

$available_methods是以下项目array之一:

$available_methods as $method_id => $method

$method_id如果需要更具体的检查,请与之进行比较。

// Hide standard shipping option when free shipping is available
add_filter( 'woocommerce_available_shipping_methods', 'wpse90835_hide_standard_shipping_when_free_is_available' );
/**
 *  Hide Standard Shipping option when free shipping is available
 * 
 * @param array $available_methods
 */
function wpse90835_hide_standard_shipping_when_free_is_available( $available_methods )
{
    // Developers!: Dump this to see what you can unset
    # var_dump( $available_methods );

    // remove standard shipping option
    if ( 
        isset( $available_methods['free_shipping'] ) 
        AND isset( $available_methods['flat_rate'] )
    )
        unset( $available_methods['flat_rate'] );


    return $available_methods;
}

2

我创建了一个WooCommerce插件,该插件允许用户配置高级设置以免费送货。在插件中,可以选择某些产品进行免费送货。

您可以在wordpress.org上免费找到名为WooCommerce Advanced Free Shipping的插件。

希望这可以帮助。


0

基于kaiser的代码(上述),我创建了以下代码:

    /**
 *  Hide free shipping option when Standard Shipping is available
 * 
 * @param array $available_methods
 */
function mwe_hide_free_shipping_when_standard_shipping_is_available($available_methods) {

    // remove standard shipping option
    if (isset($available_methods['free_shipping']) AND isset( $available_methods['flat_rate'])) {
        unset($available_methods['free_shipping']);
    }

    return $available_methods;
}
add_filter('woocommerce_available_shipping_methods', 'mwe_hide_free_shipping_when_standard_shipping_is_available');

在设置WooCommerce时,我在Woo Shipping Options中同时启用了Free Shipping和Flat Rate。然后,我只是设置了一个运费类别,在“固定费率”选项页面中指定了运费(例如7.95英镑),然后将该运费类别添加到我要为7.95英镑p&p收费的产品中。


0

“虚拟”选项将删除所有运送费用,但也会删除运送到与客户帐单邮寄地址不同的地址的选项。如果客户也购买其他非虚拟产品,这不是问题,但是如果这是他们唯一购买的产品。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.