WooCommerce: tabla de carrito "dividida" (encabezados A>Z)
Debido a que " dividir " podría no ser el término correcto, déjame explicarlo mejor.
Imaginemos que la tabla del carrito de WooCommerce está ordenada por A>Z (con mi fragmento de clasificación del carrito de WooCommerce , por ejemplo). Si su modelo de negocio y/o UX lo requieren, es posible que deba "agregar una fila de tabla de carrito" para comunicar el hecho de que esos artículos pertenecen a esa carta:
- A
- Ítem 1 Título: “AAA”
- Ítem 2 Título: “ACC”
- B
- Ítem 3 Título: “BDD”
- Ítem 4 Título: “ABEJA”
Una vez más, esto puede sonar incomprensible, así que será mejor que mires la captura de pantalla a continuación. ¡Disfrutar!

Fragmento de PHP: Dividir carro por A>Z (Mostrar letra arriba de cada sección)
Nota: también debe usar https://businessbloomer.com/woocommerce-sort-cart-items-alphabetically-az/ para ordenar su carrito alfabéticamente primero.
/** * @snippet Split Cart Table Alphabetically @ WooCommerce Cart * @how-to Get CustomizeWoo.com FREE * @author Rodolfo Melogli * @compatible WooCommerce 3.7 * @donate $9 https://businessbloomer.com/bloomer-armada/ */ add_action( 'wp_footer' , 'bbloomer_split_cart_by_az' , 9999 ); function bbloomer_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 < $i && ! in_array( $first_letter , $split ) ) ) { $split [ $i ] = $first_letter ; } $i ++; } ?> <script type= "text/javascript" > jQuery(document).ready( function ($){ var indx = $( '.woocommerce-cart-form__contents tbody tr' ).length; var rows = <?php echo json_encode( $split ); ?>; $.each(rows, function (key,value){ var newRow = $( '<tr><td colspan="6">' +value+ '</td></tr>' ); newRow.insertBefore($( '.woocommerce-cart-form__contents tbody tr.woocommerce-cart-form__cart-item:nth(' +key+ ')' )); }); }); </script> <?php } |
Subir
Deja una respuesta