在Woocommerce中使用add_to_cart方法时获取购物车商品密钥

时间:2018-08-27 13:33:34

标签: php wordpress woocommerce cart product

因此,我正在使用WooCommerce开发电子商务,我通过add_to_cart函数手动添加了产品。我得到add_to_cart的返回值(order_item_id),并将其与其他一些值一起存储在自定义表中。

问题是,在支付网关中,我试图添加逻辑,并且需要从数据库中获取这些信息,我试图获取WC()-> cart-> cart_contents,进行foreach和使用该键在我的自定义表中进行选择,但是此键是一个哈希,而add_to_cart函数返回的值是一个整数。

有人可以帮我吗?

2 个答案:

答案 0 :(得分:0)

WooCommerce add_to_cart将返回“哈希键”,而不是整数。像这样检查。

global $woocommerce;

$addkey = $woocommerce->cart->add_to_cart('product ID', 'quantity');

foreach ( $woocommerce->cart->cart_contents as $cart_item_key => $cart_item ) {
    $cartkey = $cart_item['key'];
}

您可以看到$addkey$cartkey都返回相同的值。

答案 1 :(得分:0)

  

通常,如果您查看WC_Cart add_to_cart()方法的源代码,则在成功添加到购物车中时,会返回所需的右侧购物车商品密钥,例如:

$cart_item_key = add_to_cart( $product_id ); 

现在,您可以使用钩在woocommerce_add_to_cart中的自定义函数来获取必要的 cart_item_key 并将所有必要的相关信息存储在自定义数据库中。

此挂钩函数中有所有必需的参数可供您使用:

add_action( 'woocommerce_add_to_cart', 'custom_action_add_to_cart', 20, 6 );
function custom_action_add_to_cart( $cart_item_key, $product_id, $quantity, $variation_id, $variation, $cart_item_data ){
    // HERE come your code
}

每次使用add_to_cart()函数时都会触发此挂钩。