我在PHP代码片段中使用woocommerce_quantity_input_args钩子,我在元数据中 for each 产品保存了一个数字,我想将该元数据应用到购物车中的每个数量步骤的$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');
        }
    }
}

我曾try 将所有元数据保存在单独的数组中,并循环遍历它,然后将其应用于$args,但不起作用

推荐答案

您当前的代码中存在一些错误,请try 执行以下操作:

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;
}

代码位于您的子主题的unctions.php文件中(或在插件中).应该能行得通.

Php相关问答推荐

根据用户组或登录状态显示或隐藏定价后添加的文本

过滤WooCommerce管理员订单列表(+HPOS)中包含其作者产品的订单

使用.htaccess将任何路由重定向到文件

WooCommerce在store 页面上显示兼容多语言的产品属性

使用列入黑名单的单词和自定义业务逻辑的组合将特定的子字符串包装在HTML标记中

在WooCommerce中的本地收件发货方式下添加一个 Select 字段

如何保存基于用户 Select 的复选框 Select 模式

使用PHP编码的字符串与使用OpenSSL编写的shell 代码之间的差异

如何在Laravel Model中自定义多个日期属性的日期格式?

在 PHP 中将字符串分解为数组(字符串类似于 WP 短代码)

根据页面以及是否在促销,向 WooCommerce 中显示的价格添加前缀

从 XAMPP 运行 shell 脚本时,意外标记(附近出现语法错误

PHP Laravel 迁移文件不创建关系

主机中未检索用户表数据

PHP 解析 XML 以获取多个深度的所有字符串值

将产品数量、名称和结帐链接添加到 WooCommerce 添加到购物车消息

在 mysql 上的 PDO 中启用自动提交并将自动提交设置为关闭

正则表达式请帮我从内容中找到这个词

PHP preg_replace括号和方括号内的所有逗号

为什么非贪婪匹配会消耗整个模式,即使后面跟着另一个非贪婪匹配