woocommerce 购物车中每件商品的自定义数量输入

问题描述 投票:0回答:1

我在 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,但它不起作用

php wordpress woocommerce custom-fields product-quantity
1个回答
0
投票

您当前的代码存在一些错误,请尝试以下操作:

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 文件中(或插件中)。应该可以。

© www.soinside.com 2019 - 2024. All rights reserved.