当前位置: 首页 > 知识库问答 >
问题:

自定义数量字段在Woocommerce存档页上不起作用

夹谷志
2023-03-14

我已经添加了一个'数量'字段和'添加到购物车'按钮到商店页面和分类页面为每个产品使用自定义代码,并根据产品ID设置数量字段的最小数量,最大数量和步骤。这些产品是葡萄酒,对于其中一些产品,您可以购买最低6级,例如6, 12, 18, 24等,对于一些产品,您可以购买最低12级,例如12, 24, 36, 48等等。

这一切都显示得很好,但数量和价格不会传递到购物车页面。无论订购了多少,数量始终将自身设置为最小值,并且当从商店或类别页面订购产品时,价格仅在购物车页面上显示一个单位。

function wpse_quantity_input_default( $args, $product ) {

    $productID = $product->id;

    foreach( WC()->cart->get_cart() as $key => $item ){

            // MINIMUM / MAXIMUM
            if($productID == '566' || $productID == '562' || $productID == '1177' || $productID == '1181' || $productID == '1183' || $productID == '1185' || $productID == '1242' || $productID == '1250' || $productID == '1251' || $productID == '1252' || $productID == '1254') {

                    $args['input_value'] = 12;
                    $args['max_value']  = 240;  // Maximum value (variations)
                    $args['min_value']  = 12;   // Minimum value (variations)
                    $args['step']       = 12;    // Quantity steps

            } else {

                    $args['input_value'] = 6;
                    $args['max_value']  = 120;  // Maximum value (variations)
                    $args['min_value']  = 6;   // Minimum value (variations)
                    $args['step']       = 6;    // Quantity steps

            }

    } 

return $args;

}

add_filter( 'woocommerce_quantity_input_args', 'wpse_quantity_input_default', 1000, 2 );

共有1个答案

翟英达
2023-03-14

所描述的问题来自Ajax的“添加到购物车”按钮(及其数量字段),因此您应该在问题中提供所有相关代码。

现在,在您提供的代码中,您不需要使用foreach循环就可以使事情复杂化。使用in_array()函数可以更高效地简化代码,如下所示:

add_filter( 'woocommerce_quantity_input_args', 'custom_quantity_input_args', 1000, 2 );
function custom_quantity_input_args( $args, $product ) {
    $products_ids = array(562, 566, 1177, 1181, 1183, 1185, 1242, 1250, 1251, 1252, 1254);
    
    if( in_array( $product->get_id(), $products_ids ) ) {
        $args['input_value'] = 12;
        $args['max_value']  = 240;  // Maximum value (variations)
        $args['min_value']  = 12;   // Minimum value (variations)
        $args['step']       = 12;    // Quantity steps
    } else {
        $args['input_value'] = 6;
        $args['max_value']  = 120;  // Maximum value (variations)
        $args['min_value']  = 6;   // Minimum value (variations)
        $args['step']       = 6;    // Quantity steps
    }
    return $args;
}

代码functions.php活动子主题(或活动主题)的文件中。测试和工作。

 类似资料:
  • 我正在使用“在Woocommerce shop页面中显示数量框并启用了add to cart ajax”答案代码,成功地在类别页面上显示数量框到我的产品的ajax add to cart按钮。这允许客户为存档页面上的简单产品一次添加多个数量到购物车。 我的问题:我如何改变我的归档页面上涉及的钩子,以改变我的简单产品的自定义数量字段的位置? 如果你看一个简单的产品(不是可变的产品)在我的网站商店页面

  • 我创建了一个自定义超文本标记语言归档博客页面,我想在其中放置WordPress帖子。自定义页面有几个不同的布局,因此在帖子中循环只是重新生成我试图避免的整个页面。我想做的是循环通过每个帖子,然后将该帖子放在相关的档案中。 因此,第1列进入第1列第1列,第2列进入第2列第1列,第3列进入第2列第2列,第4列进入第2列第3列,以此类推。。。 如果这是不可能的,有没有一种方法,我可以有一个代码块,例如,

  • 我在使用一个定制的结帐字段时遇到了困难,该字段在第一次订购时可用,但在同一客户的连续订单中不会出现。 简而言之,我有一个自定义字段,它是一个卡号。在客户注册时,询问客户是否想要购买购物卡。如果客户标记该选项,则会将一个带有“y”的字段添加到user_meta表中。然后店主将通过电子邮件向客户发送卡号。 客户第一次下单时,在结账页面中会出现卡号自定义字段:客户必须添加商店获得的卡号。然后,订单与卡号

  • 我一直在编码一个WP插件,用于计算订单的平方英寸总体积,并通过自定义字段将其发送到Shipstation: 我通过SFTP上传到网站文件,它显示在WP上,但当我点击激活我得到一个致命的错误: 致命错误:未捕获错误:调用成员函数get_cart()在 /nas/content/live/sfmstaging/wp-content/plugins/boxCalc/boxCalc.php:10堆栈跟踪空

  • 基于“在购物车和订单项名称下显示伍兹商业产品自定义字段”回答我以前的一个问题,代码在产品编辑页面上显示自定义字段。当填写这些字段时,数据将显示在产品页面上。 下面是代码: 如何在“管理”面板的“编辑订单”页面上显示自定义字段?它应该在产品名称后显示这些字段。 更新 据我所知,woocommerce\u checkout\u create\u order\u line\u item对此负责。但我无法

  • WooCommerce自定义结账字段的插件有Custom Checkout Fields for WooCommerce等,如果你想要更多的自由,就用代码来解决吧。本文介绍一种用代码来自定义WooCommerce结账字段的方法。 WooCommerce自定义结账字段代码 代码单独保存一个文件引入,或直接放到子主题的functions.php中,第二种方式请将 defined('WPINC') or