添加一个钩子以移除wooccommerce购物车中的项目


Adding a hook to Remove item in a woocommerce cart

在wooccommerce购物车中,当用户按下购物车上的REMOVE ITEM按钮时,我正试图从购物车中的项目中检索一些帖子元。类似于:

$removed_stock = get_post_meta( $product_id, 'more_info_data', 'x' );

为此,我添加了一个操作:

function ss_cart_updated( $item_id ) {
    print "<pre>";
    print_r (WC()->cart->get_cart());
    print "</pre>";
    exit;
};
// add the action
add_action( 'woocommerce_cart_item_removed', 'ss_cart_updated' );

不幸的是,这只列出了购物车中尚未删除的所有产品。尚未删除的项目不再列出。

我试过"woocomerce_get_remove_url"answers"woocommerce_cart_item_remove_link",它们似乎对我没有任何帮助。

非常感谢!

我认为您需要使用woocommerce_remove_cart_item,它在项目从cart内容数组中实际取消设置之前运行。woocommerce_cart_item_removed发生在项目被移除之后,因此您已经发现无法获取有关产品的任何信息。未测试,但试试这个:

function ss_cart_updated( $cart_item_key, $cart ) {
    print "<pre>";
    $product_id = $cart->cart_contents[ $cart_item_key ]['product_id']; 
    print_r(get_post_meta( $product_id, 'more_info_data', true ));
    print "</pre>";
    exit;
};
add_action( 'woocommerce_remove_cart_item', 'ss_cart_updated', 10, 2 );