У меня есть два дополнительных атрибута в моей корзине Woocommerce. При первой загрузке он работает хорошо, но мне нужно обновить div на тележке.Как обновить дополнительные атрибуты в корзине при обновлении корзины?
Как я могу назвать свою функцию для обновления? Я пробовал так: add_filter('woocommerce_update_cart_action_cart_updated', 'myprefix_cart_extra_info', 10);
, но это неправильно. Помоги пожалуйста!
Моя функция ниже:
add_action('woocommerce_cart_collaterals', 'myprefix_cart_extra_info');
function myprefix_cart_extra_info() {
$ves = 0;
$packmax = 0;
// Iterating though each item in cart
$cart_items = WC()->cart->get_cart();
foreach($cart_items as $cart_item){
$item_id = $cart_item['product_id'];
$terms = get_the_terms($item_id , 'pa_ves-g');
foreach($terms as $key => $term)
if(!empty($term->name)) $ves += $term->name * $cart_item["quantity"];
$termspack = get_the_terms($item_id , 'pa_obem-vlozheniya');
if(!empty($termspack))
foreach($termspack as $termpack)
if(!empty($termpack->name)) $packmax += $termpack->name * $cart_item["quantity"];
}
if ($ves > $packmax)
echo '<p class="overloaded">Слишком много наполнения!</p>';
echo '<div class="cart-extra-info">';
echo '<p class="total-weight">' . __('Общий вес наполнения:', 'woocommerce');
echo ' ' . $ves . ' ' . ' г';
echo '</p>';
echo '<p class="total-pack_max">' . __('Максимальный вес вложения:', 'woocommerce');
echo ' ' . $packmax . ' ' . ' г';
echo '</p>';
echo '</div>';
}
UPDATE Я уверен, что это может быть сделано в cart.js файле. Здесь возможно:
update_cart: function() {
var $form = $('.shop_table.cart').closest('form');
block($form);
block($('div.cart_totals'));
// Make call to actual form post URL.
$.ajax({
type: $form.attr('method'),
url: $form.attr('action'),
data: $form.serialize(),
dataType: 'html',
success: function(response) {
update_wc_div(response);
},
complete: function() {
unblock($form);
unblock($('div.cart_totals'));
}
});
},
Но я не знаю как. Помоги пожалуйста!