WooCommerce迷你购物车的数量选择器/输入

时间:2019-01-26 00:53:29

标签: woocommerce

我正在尝试在WooCommerce迷你购物车中显示每种产品的数量选择器,并且我设法将这段代码放在一起(不起作用,没有任何显示)。

我使用了错误的钩子或其他东西吗? 这是代码:

add_filter( 'woocommerce_widget_cart_item_quantity', 'quantity_inputs_for_woocommerce_minicart', 10, 2 );
function quantity_inputs_for_woocommerce_minicart( $html, $product ) {
        $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;
}

我要去哪里错了?

1 个答案:

答案 0 :(得分:0)

您要问的是一个真正的发展,对于stackOverFlow来说太宽泛了。由于许多原因,您无法使其像实际上那样工作:

  • 您的代码中有一些关于hook参数变量的错误...
  • 每个数量输入字段都没有提交按钮,每个购物车项目也没有<form>:如果在购物车页面中查找,只有一个按钮可以更新所有数量通过ajax (并且所有购物车商品只有一种形式)进行更改。
  • 更新数量:所有购物车项目都需要一个更新按钮,或者需要在输入更改时更新每个数量的行为。
  • 需要Ajax 来更新数量和刷新购物车片段,所以这很复杂,需要jQuery,Wordpress Ajax ...

现在要获取显示的数量字段,您可以使用以下(在CSS规则中进行一些更改-样式)

add_filter( 'woocommerce_widget_cart_item_quantity', 'add_minicart_quantity_fields', 10, 3 );
function add_minicart_quantity_fields( $html, $cart_item, $cart_item_key ) {
    $product_price = apply_filters( 'woocommerce_cart_item_price', WC()->cart->get_product_price( $cart_item['data'] ), $cart_item, $cart_item_key );

    return woocommerce_quantity_input( array('input_value' => $cart_item['quantity']), $cart_item['data'], false ) . $product_price;
}

代码进入您的活动子主题(或活动主题)的function.php文件中。经过测试,仅用于显示。

您将需要更多的代码和更改才能使它正常工作。您可以尝试使用WooCommerce Better Usability插件。

  

请参阅:Woocommerce Mini Cart Widget Change Quantity