Home » WooCommerce: “Split” Cart Table (A>Z Headings)

WooCommerce: “Split” Cart Table (A>Z Headings)

by Tutor Aspire

Because “split” might not be the correct term, let me explain this better.

Let’s imagine your WooCommerce cart table is sorted by A>Z (with my WooCommerce cart sorting snippet for example). If your business model and/or UX requires it, then you might need to “add a cart table row” to communicate the fact those items belong to that letter:

  • A
    • Item 1 Title: “AAA”
    • Item 2 Title: “ACC”
  • B
    • Item 3 Title: “BDD”
    • Item 4 Title: “BEE”

Once again, this might sound incomprehensible so you’d better look at the screenshot below. Enjoy!

Here’s the result: cart is sorted alphabetically, and each cart section is now delimited by the first cart item title letter.

PHP Snippet: Split Cart by A>Z (Display Letter Above Each Section)

Note: you also need to use https://businessbloomer.com/woocommerce-sort-cart-items-alphabetically-az/ in order to sort your cart alphabetically first.

/**
 * @snippet       Split Cart Table Alphabetically @ WooCommerce Cart
 * @how-to        Get tutoraspire.com FREE
 * @author        Tutor Aspire
 * @compatible    WooCommerce 3.7
 * @donate $9     https://www.tutoraspire.com
 */

add_action( 'wp_footer', 'tutoraspire_split_cart_by_az', 9999 );
  
function tutoraspire_split_cart_by_az(){
    if ( ! is_cart() ) return; 
if ( WC()->cart->is_empty() ) return;
$i = 0;
$split = array();
foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
$cart_item_title = $cart_item['data']->get_title();
$first_letter = substr( $cart_item_title, 0, 1 );
if ( 0 == $i || ( 0 

 

You may also like