Выбор количества / Ввод для WooCommerce Mini Cart - PullRequest
0 голосов
/ 26 января 2019

Я пытаюсь отобразить селектор количества для каждого продукта в мини-корзине 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 голосов
/ 26 января 2019

То, что вы спрашиваете, является реальной разработкой, слишком широкой для stackOverFlow.Вы не можете заставить его работать так, как оно есть на самом деле по многим причинам:

  • В вашем коде есть некоторые ошибки, касающиеся переменных аргументов хука ...
  • Вы не можете иметькнопка отправки для каждого поля количества количества, и вы не можете иметь также <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 Изменение количества

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...