WC_Cart::generate_cart_id( int $product_id, int $variation_id, array $variation = array(), array $cart_item_data = array() )

Generate a unique ID for the cart item being added.


Description Description


Parameters Parameters

$product_id

(Required) - id of the product the key is being generated for.

$variation_id

(Required) of the product the key is being generated for.

$variation

(Optional) data for the cart item.

Default value: array()

$cart_item_data

(Optional) other cart item data passed which affects this items uniqueness in the cart.

Default value: array()


Top ↑

Return Return

(string) cart item key


Top ↑

Source Source

File: includes/class-wc-cart.php

	public function generate_cart_id( $product_id, $variation_id = 0, $variation = array(), $cart_item_data = array() ) {
		$id_parts = array( $product_id );

		if ( $variation_id && 0 !== $variation_id ) {
			$id_parts[] = $variation_id;
		}

		if ( is_array( $variation ) && ! empty( $variation ) ) {
			$variation_key = '';
			foreach ( $variation as $key => $value ) {
				$variation_key .= trim( $key ) . trim( $value );
			}
			$id_parts[] = $variation_key;
		}

		if ( is_array( $cart_item_data ) && ! empty( $cart_item_data ) ) {
			$cart_item_data_key = '';
			foreach ( $cart_item_data as $key => $value ) {
				if ( is_array( $value ) || is_object( $value ) ) {
					$value = http_build_query( $value );
				}
				$cart_item_data_key .= trim( $key ) . trim( $value );

			}
			$id_parts[] = $cart_item_data_key;
		}

		return apply_filters( 'woocommerce_cart_id', md5( implode( '_', $id_parts ) ), $product_id, $variation_id, $variation, $cart_item_data );
	}


Top ↑

User Contributed Notes User Contributed Notes

You must log in before being able to contribute a note or feedback.