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

WooCommerce迷你购物车的数量选择器/输入,woocommerce,Woocommerce,我试图为WooCommerce迷你购物车中的每个产品显示一个数量选择器,并且我已经设法将此代码整合在一起(这不起作用,没有显示任何内容) 我用错钩子了吗? 代码如下: add_filter( 'woocommerce_widget_cart_item_quantity', 'quantity_inputs_for_woocommerce_minicart', 10, 2 ); function quantity_inputs_for_woocommerce_minicart( $html, $p

我试图为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;
}
add_filter('woocommerce_widget_cart_item_quantity','quantity_inputs_for_woocommerce_minicart',10,2);
功能数量\u输入\u用于小型购物车($html,$product){
$html='';
$html.=woocommerce\u quantity\u输入(数组(),$product,false);
$html.=''.esc_html($product->add_to_cart_text())。';
$html.='';
返回$html;
}

我哪里做错了?

你要问的是一个真正的发展,一个对stackOverFlow来说过于宽泛的东西。由于许多原因,您无法让它像实际一样工作:

  • 关于钩子参数变量,代码中有一些错误
  • 您不能为每个数量输入字段设置提交按钮,也不能为每个购物车项目设置
    :如果您查看购物车页面,只有一个按钮可以通过ajax更新所有数量更改(所有购物车项目只有一个表单)
  • 更新数量:所有购物车项目都需要一个更新按钮,或者一个在输入更改时更新每个数量的行为
  • 需要Ajax来更新数量和刷新购物车片段,因此需要jQuery、Wordpress Ajax
现在,要获得显示的数量字段,可以使用以下内容(对CSS规则-样式进行一些更改):

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

您需要更多的代码和更改才能使其正常工作。有一个插件,你可以尝试

见:

做这个要花多少钱(估计)?你能做到吗?
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;
}