Woocommerce 订阅:为购物车中的每个项目分配不同的 subscrption_id

时间:2021-05-21 07:49:13

标签: php wordpress woocommerce woocommerce-subscriptions

我正在将 Woocommerce 与 Woocommerce 订阅插件一起使用,并且我正在尝试为购物车中的每个项目分配不同的 subscription_id。到目前为止,我已经使用以下功能在数量 > 1 时拆分购物车项目,正如您从我附加的图像中看到的那样,但它们都在相同的订阅 ID 下。任何建议将不胜感激。

功能1:

function split_products( $cart_item_data, $product_id ){
  $unique_cart_item_key = uniqid();
  $cart_item_data['unique_key'] = $unique_cart_item_key;
  return $cart_item_data;
}    
add_filter( 'woocommerce_add_cart_item_data', 'split_products', 10, 2 );

功能2:

 add_action( 'woocommerce_add_to_cart', 'split_products_to_separate_cart_items', 10, 6 );

function split_products_to_separate_cart_items( $cart_item_key, $product_id, $quantity, $variation_id, $variation, $cart_item_data ) {    
    if ( $quantity > 1 ) {
        WC()->cart->set_quantity( $cart_item_key, 1 );
        for ( $i = 1; $i <= $quantity -1; $i++ ) {
            $cart_item_data['unique_key'] = md5( microtime() . rand() . "Hi Mom!" );
            WC()->cart->add_to_cart( $product_id, 1, $variation_id, $variation, $cart_item_data );    
        }
    }    
}

通过上面的这两个功能,我设法将购物车项目分开,如下图所示:

separated cart items

但不幸的是,它们被解释为一个具有通用订阅 ID (2544) 的订阅,如下图所示:

common subscription id

0 个答案:

没有答案