• Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!
  • Темы озаглавленные с маленькой буквы или капсом удаляются без предупреждения!

Вывод счетчика товаров в каталоге

Image CMS
#1
Здравствуйте! Установил плагин WooCommerce Advanced Product Quantities. Но когда добавляю товар из каталога, не переходя в карточку товара, пишет, что не могу добавить меньше определенного количества.
Пошел другим путем и вывел счетчик товаров в каталог (все хорошо работает), но при добавлении вот этого кода (ниже) вместо иконки "Корзины", заложенной в теме, выводит кнопку из карточки товара, а это смотрится ужасно. Вопроса два, какой решить проще:
Как наладить работу плагина WooCommerce Advanced Product Quantities без вывода счетчика в каталог?
Как оставить родную иконку "Корзина", но вывести счетчик?

// выбор количества при добавлении простых товаров в корзину с поддержкой AJAX на страницах категорий товаров
add_action('woocommerce_before_shop_loop', 'custom_woo_before_shop_link');
function custom_woo_before_shop_link() {
add_filter('woocommerce_loop_add_to_cart_link', 'custom_woo_loop_add_to_cart_link', 10, 2);
add_action('woocommerce_after_shop_loop', 'custom_woo_after_shop_loop');
}
// customise Add to Cart link/button for product loop
function custom_woo_loop_add_to_cart_link($button, $product) {
// not for variable, grouped or external products
if (!in_array($product->product_type, array('variable', 'grouped', 'external'))) {
// only if can be purchased
if ($product->is_purchasable()) {
// show qty +/- with button
ob_start();
woocommerce_simple_add_to_cart();
$button = ob_get_clean();
// modify button so that AJAX add-to-cart script finds it
$replacement = sprintf('data-product_id="%d" data-quantity="1" $1 ajax_add_to_cart add_to_cart_button product_type_simple ', $product->id);
$button = preg_replace('/(class="single_add_to_cart_button)/', $replacement, $button);
}
}
return $button;
}
// add the required JavaScript
function custom_woo_after_shop_loop() {
?>

<script>
jQuery(function($) {
<?php /* when product quantity changes, update quantity attribute on add-to-cart button */ ?>
$("form.cart").on("change", "input.qty", function() {
$(this.form).find("button[data-quantity]").data("quantity", this.value);
});
<?php /* remove old "view cart" text, only need latest one thanks! */ ?>
$(document.body).on("adding_to_cart", function() {
$("a.added_to_cart").remove();
});
});
</script>

<?php
}
 
Последнее редактирование:
#2
Нашел другой вариант, он все красиво выводит (счетчик), но не добавляет нужное количество товаров в корзину. Помогите, пожалуйста!

/**
* Добавляем поле количества на страницу архивов.
*/
function custom_quantity_field_archive() {
$product = wc_get_product( get_the_ID() );
if ( ! $product->is_sold_individually() && 'variable' != $product->product_type && $product->is_purchasable() ) {
woocommerce_quantity_input( array( 'min_value' => 1, 'max_value' => $product->backorders_allowed() ? '' : $product->get_stock_quantity() ) );
}
}
add_action( 'woocommerce_after_shop_loop_item', 'custom_quantity_field_archive', 0, 9 );
/**
* Добавляем необходимый JavaScript.
*/
function custom_add_to_cart_quantity_handler() {
wc_enqueue_js( '
jQuery( ".post-type-archive-product" ).on( "click", ".quantity input", function() {
return false;
});
jQuery( ".post-type-archive-product" ).on( "change input", ".quantity .qty", function() {
var add_to_cart_button = jQuery( this ).parents( ".product" ).find( ".add_to_cart_button" );
// Для работы добавления в корзину с помощью AJAX
add_to_cart_button.data( "quantity", jQuery( this ).val() );
// Для работы добавления в корзину БЕЗ AJAX
add_to_cart_button.attr( "href", "?add-to-cart=" + add_to_cart_button.attr( "data-product_id" ) + "&quantity=" + jQuery( this ).val() );
});
' );
}
add_action( 'init', 'custom_add_to_cart_quantity_handler' );
 

tuxfighter

Гуру
Местный
#3
скажите, вы риально не видите кнопки Вставить - код?
или это просто такой протест, брошенный всему миру?
 
#5
и как я понял (десяток сообщений нашел), что у всех с этими плагинами та же проблема, даже разработчики не по одному из 4! не дают ответ.
Ни одно решение, я перепробовал 8, не добавляет из каталога сразу в корзину, а открывает карточку товара с сообщением об ошибке
 
Сверху Снизу