伍商务 |在购物车中显示适用于国家/地区的运输区域/方法,以及适用于邮政编码的结帐区域/方法



我们有一种情况,我们想在购物车和结账时显示两种运输方式。不仅仅是细化到最适用的。

我们有一个基于国家/地区的区域,采用一种方法 - 免费取件。 和。 我们设置了不同的邮政编码特定区域,具有统一费率和免费送货方式。

我们的目标

如果用户已将国家/地区字段设置为适用的国家/地区,则免费取件将始终显示。 和。 统一费率或免费送货将根据用户邮政编码是否可用而显示(默认情况下(

所以简单来说。保持所有内容相同,但始终显示我们的国家/地区方法,只要用户输入了国家/地区。

迄今

目前,我们正在考虑通过功能calculate_shipping_for_package()上的过滤器手动添加woocommerce_package_rates拾取方法。

我们真正想做的是在会话集方法处拦截并添加我们的拾取方法。但这就是我们陷入困境的地方。确定会话的速率设置的确切位置。

事实证明,我们走在正确的轨道上。

当时增加额外混乱的是,我们还考虑了WooCommerce多供应商插件,该插件在添加费率方面有一个额外的步骤。

解决方案是挂钩到woocommerce_package_rates,并通过创建一个具有WC_Shipping_Rate类的新对象,根据特定于拾取和拾取方法的可用区域构建新速率。

通过在堆栈中的这一点添加它,我们能够将基于国家的方法与基于区域的方法放在一起。

相关内容

最新更新