Когда я помещаю этот код в functions.php, он отображает количество продуктов рядом со значком корзины. Это работает хорошо, когда в functions.php
Но поскольку я использую плагин для кэширования, я не могу включить код в functions.php или должен каким-то образом исключить выполнение кода из кеша.
Я думаю, что лучше всего было бы с Ajax jQuery. Есть ли лучший способ ??
Это код ниже, который я сейчас помещаю в файл cartbubble.php, это так:
<?
function my_wc_cart_count()
{
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 } ?>
</a>
<?php
}
}
add_action('woo_header_inside', 'my_wc_cart_count');
function my_header_add_to_cart_fragment($fragments)
{
ob_start();
if ($count >= 0)
{ ?>
<span class="cart-contents-count"><?php echo WC()->cart->cart_contents_count(); ?></span>
<?php
} ?>
<?php
$fragments['span.cart-contents-count'] = ob_get_clean();
return $fragments;
}
add_filter('woocommerce_add_to_cart_fragments', 'my_header_add_to_cart_fragment');
Вот что я использовал в header.php для вызова через ajax jquery:
<script type="text/javascript">
jQuery(document).ready(function() {
jQuery.ajax({
url: '/wp-content/themes/canvas-child/cartbubble.php',
type: 'POST',
success: function(result) {
console.log(result);.
},
error: function() {
console.log('error');
}
});
});
</script>
Почему не выполняется функция так же, как в functions.php ??
Заранее спасибо