哪个 Hook 可以改变 WooCommerce 购物车页面中的数量更新?
Which Hook to alter quantity update in WooCommerce cart page?
我试图在购物车中的产品数量发生变化时触发一个功能。
更具体地说,当客户修改购物车中的金额时,我想 运行 此功能。
我正在查找购物车中剩余的数量,然后拦截更新购物车事件
目前我正在使用:
add_action( 'woocommerce_remove_cart_item', 'my function');
当我按"update_cart"时,它似乎不起作用。
有什么建议吗?
谢谢!
也许这个钩子? do_action( 'woocommerce_after_cart_item_quantity_update', $cart_item_key, $quantity, $old_quantity );
http://hookr.io/actions/woocommerce_after_cart_item_quantity_update/
您应该使用 woocommerce_after_cart_item_quantity_update
action hook that has 4 arguments. But when quantity is changed to zero, woocommerce_before_cart_item_quantity_zero
action hook 需要使用 (并且有 2 个参数)。
下面是一个工作示例,它将更新的数量限制在一定数量并显示自定义通知:
add_action( 'woocommerce_after_cart_item_quantity_update', 'limit_cart_item_quantity', 20, 4 );
function limit_cart_item_quantity( $cart_item_key, $quantity, $old_quantity, $cart ){
if( ! is_cart() ) return; // Only on cart page
// Here the quantity limit
$limit = 5;
if( $quantity > $limit ){
// Change the quantity to the limit allowed
$cart->cart_contents[ $cart_item_key ]['quantity'] = $limit;
// Add a custom notice
wc_add_notice( __('Quantity limit reached for this item'), 'notice' );
}
}
此代码位于您的活动子主题(或主题)的 function.php 文件中。已测试并有效。
As this hook is located in WC_Cart
set_quantity()
method, is not possible to use that method inside the hook, as it will throw an error.
要在数量设置为零时触发某些操作,请使用:
add_action( 'woocommerce_before_cart_item_quantity_zero', 'action_before_cart_item_quantity_zero', 20, 4 );
function action_before_cart_item_quantity_zero( $cart_item_key, $cart ){
// Your code goes here
}
我试图在购物车中的产品数量发生变化时触发一个功能。 更具体地说,当客户修改购物车中的金额时,我想 运行 此功能。
我正在查找购物车中剩余的数量,然后拦截更新购物车事件
目前我正在使用:
add_action( 'woocommerce_remove_cart_item', 'my function');
当我按"update_cart"时,它似乎不起作用。 有什么建议吗? 谢谢!
也许这个钩子? do_action( 'woocommerce_after_cart_item_quantity_update', $cart_item_key, $quantity, $old_quantity );
http://hookr.io/actions/woocommerce_after_cart_item_quantity_update/
您应该使用 woocommerce_after_cart_item_quantity_update
action hook that has 4 arguments. But when quantity is changed to zero, woocommerce_before_cart_item_quantity_zero
action hook 需要使用 (并且有 2 个参数)。
下面是一个工作示例,它将更新的数量限制在一定数量并显示自定义通知:
add_action( 'woocommerce_after_cart_item_quantity_update', 'limit_cart_item_quantity', 20, 4 );
function limit_cart_item_quantity( $cart_item_key, $quantity, $old_quantity, $cart ){
if( ! is_cart() ) return; // Only on cart page
// Here the quantity limit
$limit = 5;
if( $quantity > $limit ){
// Change the quantity to the limit allowed
$cart->cart_contents[ $cart_item_key ]['quantity'] = $limit;
// Add a custom notice
wc_add_notice( __('Quantity limit reached for this item'), 'notice' );
}
}
此代码位于您的活动子主题(或主题)的 function.php 文件中。已测试并有效。
As this hook is located in
WC_Cart
set_quantity()
method, is not possible to use that method inside the hook, as it will throw an error.
要在数量设置为零时触发某些操作,请使用:
add_action( 'woocommerce_before_cart_item_quantity_zero', 'action_before_cart_item_quantity_zero', 20, 4 );
function action_before_cart_item_quantity_zero( $cart_item_key, $cart ){
// Your code goes here
}