Обновление пользовательской мини-корзины WooCommerce при изменении содержимого корзины - PullRequest
0 голосов
/ 11 июня 2019

У меня есть симпатичная маленькая корзина WooCommerce, работающая в заголовке моей темы (код ниже).Однако ... когда клиент находится на странице корзины и изменяет количество заказанных товаров или удаляет товар из корзины - количество товаров в корзине и цена не обновляются до тех пор, пока страница не перезагрузится ... Есть лиспособ перезагрузки AJAX, который происходит при обновлении таблицы корзины, а также обновление пользовательской мини-корзины в заголовке моей пользовательской темы?

<span class="shoppingSummaryBar_Total">
<!-- render value -->
<?php global $woocommerce; ?>
<?php echo $woocommerce->cart->get_cart_total(); ?>
</span>
<span class="shoppingSummaryBar_Items">
<!-- render no of items -->
<?php if ( in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ) {

$count = WC()->cart->cart_contents_count;
?><a class="cart-contents" href="<?php echo WC()->cart->get_cart_url(); ?>" title="<?php _e( 'View your shopping cart' ); ?>"><?php 
if ( $count > 0 ) {
    ?>
    <span class="cart-contents-count"><?php echo esc_html( $count ); ?></span>
    <?php
}
    ?>
    Items
    </a>

<?php } ?>
</span>

Ответы [ 2 ]

0 голосов
/ 11 июня 2019

ОК - это сработало:

add_filter( 'woocommerce_add_to_cart_fragments', 'iconic_cart_count_fragments', 10, 1 );

function iconic_cart_count_fragments( $fragments ) {

$fragments['span.shoppingSummaryBar_Total'] = '<span class="shoppingSummaryBar_Total">' . WC()->cart->get_cart_total() . '</div>';
$fragments['span.cart-contents-count'] = '<span class="cart-contents-count">' . WC()->cart->get_cart_contents_count() . '</div>';

return $fragments;

}
0 голосов
/ 11 июня 2019

Попробуйте этот код внутри файла функций:

add_filter( 'woocommerce_add_to_cart_fragments', 'woocommerce_header_add_to_cart_fragment' );

function woocommerce_header_add_to_cart_fragment( $fragments ) {
    global $woocommerce;
    ob_start();
    ?>

    <span class="cart-contents-count"><?php echo $woocommerce->cart->cart_contents_count; ?></span>

    <?php
    $fragments['span.cart-contents-count'] = ob_get_clean();
    return $fragments;
}

Также через $woocommerce->cart у вас есть $woocommerce->cart->get_cart_total(); и многие другие данные.Отметьте здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...