#php #wordpress #woocommerce #hook-woocommerce #custom-wordpress-pages
Вопрос:
Я обновил страницу списка/архива woocommerce пользовательским шаблоном, чтобы показать варианты продуктов в строке таблицы. у каждого варианта есть своя кнопка «Добавить в корзину». что-то похожее на это: https://ps.w.org/product-variant-table-for-woocommerce/assets/screenshot-4.png?rev=2485475
Я создал функцию, чтобы показать, есть ли эта вариация в корзине, а затем показать количество.
function product_cart_count( $variation_id ) {
$cat_count = 0;
// Iterating through each cart item
foreach(WC()->cart->get_cart() as $cart_item){
$product_in_cart = $cart_item['variation_id'];
if ( $product_in_cart == $product_id ) {
$cart_count = $cart_item['quantity'];
return $cart_count;
break;
}
}}
На странице шаблона
<span class="cart-count"> <?php product_cart_count( $v_id ) ?> </span>
Это отлично работает с ajax добавить в корзину
Я хочу знать, как я могу запустить эту product_cart_count()
функцию после добавления продукта и обновить количество. Я пробовал woocommerce_add_to_cart_fragments
, но это работает неправильно, так как мне нужно отправить идентификатор продукта в параметре.
Комментарии:
1. Вы можете использовать woocommerce_add_to_cart_validation. Вы можете прочитать об этом подробнее — hookr.io/filters/woocommerce_add_to_cart_validation
2. спасибо, Мартин, теперь это работает.
3. Нет проблем, вы, возможно, захотите проверить и это, я забыл упомянуть об этом woocommerce_update_cart_validation, но он сразу не принимает variation_id. Возможно, вам потребуется зациклить товары в корзине. Этот фильтр запускается, например, при обновлении количества на странице корзины