【问题标题】:Display quantity on product loop adding in the cart在加入购物车的产品循环上显示数量
【发布时间】:2021-11-08 17:20:21
【问题描述】:

在woo commerce中,如何在产品列表页面上显示数量?假设我在购物车中添加了数量为 3 的产品 x 和数量为 5y。然后在产品列表页面中应该显示为x添加了3个数量,为y添加了5个。

add_filter( 'woocommerce_loop_add_to_cart_link', 'quantity_inputs_for_woocommerce_loop_add_to_cart_link', 10, 2 );
function quantity_inputs_for_woocommerce_loop_add_to_cart_link( $html, $product ) {
    if ( $product && $product->is_type( 'simple' ) && $product->is_purchasable() && $product->is_in_stock() && ! $product->is_sold_individually() ) {
        $html = '<form action="' . esc_url( $product->add_to_cart_url() ) . '" class="cart" method="post" enctype="multipart/form-data">';
        $html .= woocommerce_quantity_input( array(), $product, false );
        $html .= '<button type="submit" class="button alt">' . esc_html( $product->add_to_cart_text() ) . '</button>';
        $html .= '</form>';
    }
    return $html;
}

【问题讨论】:

    标签: wordpress woocommerce customization hook-woocommerce


    【解决方案1】:

    你几乎明白了。您需要访问购物车项目并检查数量。我已经使用 Storefront 主题的最新 WP 5.8.1 和最新 Woo 5.6.0 进行了测试。

    add_filter( 'woocommerce_loop_add_to_cart_link', 'quantity_inputs_for_woocommerce_loop_add_to_cart_link', 10, 2 );
    function quantity_inputs_for_woocommerce_loop_add_to_cart_link( $html, $product ) {
        if ( $product && $product->is_type( 'simple' ) && $product->is_purchasable() && $product->is_in_stock() && ! $product->is_sold_individually() ) {
            $html = '<form action="' . esc_url( $product->add_to_cart_url() ) . '" class="cart" method="post" enctype="multipart/form-data">';
            // Access the cart items
            foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
                $product_id = $cart_item['product_id'];
                $quantity = $cart_item['quantity'];
            }
            // If we have match update quantity
            if($product_id == $product->get_ID()) {
                $html .= woocommerce_quantity_input( array('input_value' => $quantity), $product, false );
            } else {
                $html .= woocommerce_quantity_input( array(), $product, false );
            }
            $html .= '<button type="submit" class="button alt">' . esc_html( $product->add_to_cart_text() ) . '</button>';
            $html .= '</form>';
        }
        return $html;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-02
      • 1970-01-01
      • 1970-01-01
      • 2016-02-28
      • 1970-01-01
      • 2014-12-10
      • 1970-01-01
      • 2016-08-17
      相关资源
      最近更新 更多