-
-
Save maxrice/6541634 to your computer and use it in GitHub Desktop.
<?php | |
add_action( 'woocommerce_cart_loaded_from_session', function() { | |
global $woocommerce; | |
$products_in_cart = array(); | |
foreach ( $woocommerce->cart->cart_contents as $key => $item ) { | |
$products_in_cart[ $key ] = $item['data']->get_title(); | |
} | |
natsort( $products_in_cart ); | |
$cart_contents = array(); | |
foreach ( $products_in_cart as $cart_key => $product_title ) { | |
$cart_contents[ $cart_key ] = $woocommerce->cart->cart_contents[ $cart_key ]; | |
} | |
$woocommerce->cart->cart_contents = $cart_contents; | |
}, 100 ); |
This works perfectly. Thanks for sharing!
Is there a way to sort it by the product order #?
Thanks,
Adam
hi
i want reorder by price low to hight
i replace get_title>get_price and product_title>product_price
add_action( 'woocommerce_cart_loaded_from_session', function() { global $woocommerce; $products_in_cart = array(); foreach ( $woocommerce->cart->cart_contents as $key => $item ) { $products_in_cart[ $key ] = $item['data']->**get_price**(); } natsort( $products_in_cart ); $cart_contents = array(); foreach ( $products_in_cart as $cart_key => $**product_price**) { $cart_contents[ $cart_key ] = $woocommerce->cart->cart_contents[ $cart_key ]; } $woocommerce->cart->cart_contents = $cart_contents; }, 100 );
work ok
if i want reorder price high to low - how rewrite code?
thanks
Hi @pasharadio,
Did you resolve this by any chance?
Cheers
Clemens
@pasharadio,
Replace:
$woocommerce->cart->cart_contents = $cart_contents;
to:
$woocommerce->cart->cart_contents = array_reverse($cart_contents);
Is there a way to add all sort of ordering methods to cart page?
Checkout Sort WooCommerce Products on Cart and Order plugin.
https://kartechify.com/product/sort-woocommerce-products-in-cart-and-order/
what if I want to sort by product taxonomy? can we do that?