Hoy os traigo un código muy sencillo para poder añadir el carrito de tu tienda con el importe del total en el menú de tu web (exactamente igual que el que aparece en esta web cuando añades un tema al carrito).
El código verifica si está activado WooCommerce y añade el icono y el total al final del menú principal.
En este ejemplo, para el icono se utiliza la librería de Ionicons, que puede añadirse mediante la siguiente línea en el archivo functions.php:
wp_enqueue_style( 'ionicons', '//code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css', array(), CHILD_THEME_VERSION );
Sin embargo, si tu web ya utiliza otra librería de iconos, es mejor que busques el correspondiente y no cargues innecesariamente tu web con otra llamada externa, o que utilices la de Dashicons que incorpora WordPress
add_filter('wp_nav_menu_items','carrito_en_menu', 10, 2);
function carrito_en_menu($menu, $args) {
if ( !in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) || 'primary' !== $args->theme_location ) return $menu;
ob_start();
global $woocommerce;
$viewing_cart = __('Ver tu carrito', 'your-theme-slug');
$start_shopping = __('Empezar a comprar', 'your-theme-slug');
$cart_url = $woocommerce->cart->get_cart_url();
$shop_page_url = get_permalink( woocommerce_get_page_id( 'shop' ) );
$cart_contents_count = $woocommerce->cart->cart_contents_count;
$cart_contents = sprintf(_n('%d item', '%d items', $cart_contents_count, 'your-theme-slug'), $cart_contents_count);
$cart_total = $woocommerce->cart->get_cart_total();
$menu_item="";
if ( $cart_contents_count > 0 ) {
if ($cart_contents_count == 0) {
$menu_item = '<ul><li class="right"><a class="wcmenucart-contents" title="'. $start_shopping .'" href="'. $shop_page_url .'">';
} else {
$menu_item = '</a></li><li class="right"><a class="wcmenucart-contents" title="'. $viewing_cart .'" href="'. $cart_url .'">';
}
$menu_item .= '<i class="icon ion-android-cart"></i> '; // Podriamos utilizar la de Dashicons:<i class="dashicons dashicons-cart"></i>
$menu_item .= $cart_contents.' - '. $cart_total;
$menu_item .= '</a></li></ul>';
}
echo $menu_item;
$social = ob_get_clean();
return $menu . $social;
}
Por último, en cuanto a los estilos, el nuevo elemento del menú utilizará el css genérico del menú, pero puedes añadir estilos especiales mediante la clase .wcmenucart-contents.
*ACTUALIZACIÓN PARA WOOCOMMERCE 3.0: la woocommerce_get_page_id ya no está soportada en la última versión, deberás utilizar wc_get_page_id en su lugar.
¿Eres implementador o desarrollador WordPress?
En la Zona DPW encontrarás más recursos, tutoriales, plantillas, y una biblioteca de snippets para poder utilizar en tu día a día y ganar tiempo en tu trabajo:
ACCEDER AHORA