2
私は2つの追加の属性を私のWoocommerceカートに持っています。最初の読み込みでは正常に動作しますが、更新されたカートのdivを更新する必要があります。カートの更新でカートの追加属性を更新するにはどうすればよいですか?
更新のために関数をどのように呼び出す必要がありますか?私はこの方法を試しました:add_filter('woocommerce_update_cart_action_cart_updated', 'myprefix_cart_extra_info', 10);
それは間違いです。助けてください!以下
My機能:
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'));
}
});
},
しかし、私はどのようにわかりません。助けてください!