我在 php 代码片段中使用 woocommerce_quantity_input_args 挂钩,我在每个产品的元数据中保存了一个数字,我想将该元数据应用于购物车中每个数量步骤的 $args['step'] ,因为它们不是都一样。
代码:
add_filter( 'woocommerce_quantity_input_args', 'woocommerceQuantityInputArgs', 10, 2);
function woocommerceQuantityInputArgs( $args, $product ) {
if ( ! is_cart() ) {
$cart = WC()->cart->get_cart();
foreach( $cart as $cart_item_key => $cart_item ){
$product = $cart_item['data'];
$args['step'] = $product->get_meta('_quantity_product_in_package');
}
}
}
我尝试将所有元数据保存在单独的数组中,然后循环遍历它并将其应用到 $args,但它不起作用
您当前的代码存在一些错误,请尝试以下操作:
add_filter( 'woocommerce_quantity_input_args', 'cart_item_quantity_input_step', 100, 2);
function cart_item_quantity_input_step( $input_args, $product ) {
$input_args['step'] = $product->get_meta('_quantity_product_in_package');
return $input_args;
}
要限制仅在购物车页面上,请使用:
add_filter( 'woocommerce_quantity_input_args', 'cart_item_quantity_input_step', 100, 2);
function cart_item_quantity_input_step( $input_args, $product ) {
if ( is_cart() ) {
$input_args['step'] = $product->get_meta('_quantity_product_in_package');
}
return $input_args;
}
代码位于子主题的functions.php 文件中(或插件中)。应该可以。