2013-05-02 1 views
2

장바구니 소계, 장바구니 합계, 장바구니 품목 및 배송 총계가 잘 표시되는 woocommerce 위젯을 개발 중이지만 배송을 업데이트하는 것이 좋습니다. 아약스를 사용하여 배송 방법을 전환 할 때마다 총 카트 수를 표시합니다. 현재 페이지 재로드 후에 만 ​​자동으로 업데이트됩니다. 이 목적을 위해 갈고리가 있습니까?woocommerce에서 ajax를 사용하여 페이지를로드하지 않고 장바구니의 세부 정보를 업데이트하십시오.

답변

3

add_to_cart_fragments 필터로이 작업을 수행 할 수 있습니다.

내 구현은 AJAX로 표시된 항목 수만 업데이트하지만 합계 등을 업데이트하는데도 사용할 수 있습니다. - 내가 기억

// Update items in cart via AJAX 
add_filter('add_to_cart_fragments', 'woo_add_to_cart_ajax'); 
function woo_add_to_cart_ajax($fragments) { 
    global $woocommerce; 
    ob_start(); 
    ?> 
     <a class="cart-contents" href="<?php echo $woocommerce->cart->get_cart_url(); ?>">(<?php echo sprintf(_n('%d item', '%d items', $woocommerce->cart->cart_contents_count, 'woothemes'), $woocommerce->cart->cart_contents_count); ?>)</a> 
    <?php 
    $fragments['a.cart-contents'] = ob_get_clean(); 
    return $fragments; 
} 

가 확실히 아웃이에 대한 몇 가지 자료/문서가 있습니다

<a class="cart-contents" href="<?php echo $woocommerce->cart->get_cart_url(); ?>"> 
(<?php echo sprintf(_n('%d item', '%d items', $woocommerce->cart->cart_contents_count, 'woothemes'), $woocommerce->cart->cart_contents_count); ?>)</a> 

functions.php에서 추가 한 필터는 다음과 같습니다이 카트의 세부 사항을 표시 템플릿의 일반 코드 이 코드를 작성할 때 참조 용으로 일부를 사용하지만 Google 용으로 약간 힘듭니다.

0

궁금한 점이 있으시면 WooThemes 사이트 HERE에 대한 공식 문서가 있습니다. 코멘트에 이것을 게시 할 수없는 것에 대한 사과, 나는 충분한 평판 포인트가 없다.

코드가 업데이트 된 것으로 보입니다. 그들은 지금 cart_contents_count 대신 get_cart_contents_count()을 사용합니다.

사람 :

여기에 (당신은 분명 당신이 원하는대로 카트 정보를 표시하는 코드를 편집 할 수 있지만 둘 다 조각에서 같은 편집 할 확인 가능)로 WooThemes 문서에서 직접 복사 한 새로운 코드 조각이다 같은 템플릿을 사용 뭔가 장바구니 내용과 총 표시 : 항목이 (아약스를 통해) 추가 때 업데이트 있도록

<a class="cart-contents" href="<?php echo WC()->cart->get_cart_url(); ?>" title="<?php _e('View your shopping cart'); ?>"><?php echo sprintf (_n('%d item', '%d items', WC()->cart->get_cart_contents_count()), WC()->cart->get_cart_contents_count()); ?> - <?php echo WC()->cart->get_cart_total(); ?></a> 

이 장바구니 뷰어를 ajaxify를 사용하여 다음을

<?php 
// Ensure cart contents update when products are added to the cart via AJAX (place the following in functions.php) 
add_filter('woocommerce_add_to_cart_fragments', 'woocommerce_header_add_to_cart_fragment'); 
function woocommerce_header_add_to_cart_fragment($fragments) { 
    ob_start(); 
    ?> 
    <a class="cart-contents" href="<?php echo WC()->cart->get_cart_url(); ?>" title="<?php _e('View your shopping cart'); ?>"><?php echo sprintf (_n('%d item', '%d items', WC()->cart->get_cart_contents_count()), WC()->cart->get_cart_contents_count()); ?> - <?php echo WC()->cart->get_cart_total(); ?></a> 
    <?php 

    $fragments['a.cart-contents'] = ob_get_clean(); 

    return $fragments; 
} 
관련 문제