WooCommerce - 重复订单的不同配送方式

8 浏览
0 Comments

WooCommerce - 重复订单的不同配送方式

我正在开发一个网站,使用以下插件:

  • WooCommerce
  • WooCommerce订阅
  • Pakkelabels.dk for WooCommerce

"Pakkelabels.dk"是丹麦的承运商包装标签插件。此插件使用标准的WooCommerce过滤器和钩子添加额外的配送方式。

我正在使用混合结账。购物车总计目前如下所示:

enter image description here

这是我想要做的事情

对于重复订单,我只想限制配送方式为“DAO Pakkeshop”和“本地自取”(对不起,图中是丹麦语)。

当购物车中有特定产品ID(订阅产品)时,我已将以下内容添加到functions.php中,以删除我不想要的配送方式:

add_filter( 'woocommerce_package_rates', 'hide_shipping_methods_woo_sg', 10, 2 );
function hide_shipping_methods_woo_sg( $rates, $package ) {
    $product_id = get_field('product_auto_cart', 'option');
    if($product_id){
        $product_cart_id = WC()->cart->generate_cart_id( $product_id );
        $in_cart = WC()->cart->find_product_in_cart( $product_cart_id );
        if($in_cart) {
            unset( $rates['pakkelabels_shipping_dao_direct'] );
            unset( $rates['pakkelabels_shipping_gls_private'] );
            unset( $rates['pakkelabels_shipping_gls_business'] );
            unset( $rates['pakkelabels_shipping_gls'] );
            unset( $rates['pakkelabels_shipping_pdk'] );
            unset( $rates['pakkelabels_shipping_postnord_private'] );
            unset( $rates['pakkelabels_shipping_postnord_business'] );
            // unset( $rates['local_pickup:19'] );
        }
        return $rates;
    }
}

我的问题是,这会同时删除订单和重复订单的配送方式,如图所示。

我需要一种条件,以便只能针对重复订单的配送方式并取消设置它们。

我该如何实现这一点?

0