获取项目的产品ID如果用户在WooCommerce购物车中将数量更改为0

时间:2017-12-06 13:18:06

标签: php wordpress woocommerce hook-woocommerce

我正在尝试找出一种方法来获取购物车页面中数量减少到0的商品ID。

我挂钩到woocommerce_after_cart_item_quantity_update之后,如果用户将数量更改为任何内容,则会触发但是:0。(

function action_woocommerce_after_cart_item_quantity_update( $cart_item_key, $quantity, $old_quantity ) {
    var_error_log([$cart_item_key, $quantity, $old_quantity]);
};

add_action( 'woocommerce_after_cart_item_quantity_update', 'action_woocommerce_after_cart_item_quantity_update', 10, 3 );


function var_error_log( $object=null ){
    ob_start();                    // start buffer capture
    var_dump( $object );           // dump the values
    $contents = ob_get_contents(); // put the buffer into a variable
    ob_end_clean();                // end capture
    error_log( $contents );        // log contents of the result of var_dump( $object )
}

还有其他办法吗?

编辑:

此外,woocommerce_cart_item_removed挂钩不合适,因为它仅在用户点击删除按钮时运行,而不是在该项目的数量更改为0时运行。

woocommerce_cart_item_removed挂钩的发生方式与woocommerce_cart_item_removed挂钩类似。

2 个答案:

答案 0 :(得分:2)

这种情况有一个单独的钩子:

  

woocommerce_before_cart_item_quantity_zero

function woocommerce_before_cart_item_quantity_zero_vvvrbg45kt45($cart_item_key) {
    global $woocommerce;
    $cart_item = $woocommerce->cart->get_cart_item( $cart_item_key );
    $product_id = $cart_item['product_id'];
}
add_action( 'woocommerce_before_cart_item_quantity_zero', 'woocommerce_before_cart_item_quantity_zero_vvvrbg45kt45' );

答案 1 :(得分:0)

试试这个钩子,

add_action( 'woocommerce_cart_item_removed', 'after_remove_product_from_cart', 10, 2 );
function after_remove_product_from_cart($removed_cart_item_key, $instance) {
    $line_item = $instance->removed_cart_contents[ $removed_cart_item_key ];
    $product_id = $line_item[ 'product_id' ];
}

当从购物车中移除商品时会触发此消息。 有关更多信息,

希望这会对你有所帮助。