如果用户在WooCommerce中添加更多内容,请将最大可用产品数量设置为添加到购物车

时间:2017-11-30 08:17:56

标签: php wordpress woocommerce cart product-quantity

我在woocommerce中发布了大量产品。 如果用户输入的数量超过产品的剩余数量,我想将总数量添加到购物车。

我为此尝试了很多不同的代码段,但都是徒劳的。

请提供任何帮助。

1 个答案:

答案 0 :(得分:2)

您应该尝试使用 woocommerce_add_to_cart 附加的自定义功能,当客户添加的产品数量超过剩余的可用产品数量时,这将设置购物车中的最大可用产品数量:

add_action('woocommerce_add_to_cart', 'add_to_cart_qty', 10, 6 );
function add_to_cart_qty( $cart_item_key, $product_id, $quantity, $variation_id, $variation, $cart_item_data ){

    $real_product_id = $variation_id > 0 ? $variation_id : $product_id;

    $product = wc_get_product($real_product_id);
    $product_stock = $product->get_stock_quantity();

    // Zero or negative stock (remove the product)
    if( $product_stock <= 0 && $product->get_manage_stock() ){
        WC()->cart->remove_cart_item( $cart_item_key );
        return;
    }

    if( $quantity > $product_stock && $product->get_manage_stock() ){
        WC()->cart->set_quantity( $cart_item_key, $product_stock );
    }
}

代码放在活动子主题(或活动主题)的function.php文件中或任何插件文件中。

此代码经过测试,即使对于产品变体也适用。