В корзине woocommerce, когда пользователь нажимает кнопку 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' );
К сожалению, это только список всех продуктов в тележке, которые не были удалены. Элемент, который не был удален, больше не указан.
Я попробовал «woocommerce_get_remove_url» и «woocommerce_cart_item_remove_link», они, похоже, ничего не делают для меня.
Спасибо!
Я думаю, вам нужно использовать woocommerce_remove_cart_item
который запускается непосредственно перед тем, как элемент будет реально удален из массива содержимого корзины. 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 );