我正在尝试用woocommerce销售自建的旅行套餐。因此,访问者会选择一些他们喜欢的酒店,活动和交通工具,然后将它们添加到购物车中。
我面临的问题是商品(旅游产品)按照添加的顺序添加到购物车中。
但是,我需要这样的功能:管理员或访客将能够重新安排这些项目出现在购物车中的位置(序列)。也许像AJAX拖放功能会很棒。
有办法吗?
聚苯乙烯。我没有提到更改目录中出现的订单产品,插件很容易。
请给我一些指示。谢谢。
答案 0 :(得分:0)
我曾经考虑过从我的插件中重新订购购物车中的商品,但最终认为它对我来说不值得。这就是我要使用的内容:
add_action( 'woocommerce_cart_loaded_from_session', 'so_26640996_reorder_cart_keys' );
/**
* Re-order the cart keys to keep container/bundled items from being separated in case of force-sells
* @param object $cart - the WC_Cart class
* @return void
*/
function so_26640996_reorder_cart_keys( $cart ){
if( $cart->cart_contents ) {
$new = array();
$contents = $cart->cart_contents;
// loop through the cart's contents
foreach( $cart->cart_contents as $cart_key => $cart_item ){
// add the item back into a new array of cart contents
$new[$cart_key]=$cart_item;
// if the cart item meets some condition re-arrange its position
if( isset( $cart_item['mnm_contents'] ) && is_array( $cart_item['mnm_contents'] ) ){
foreach($cart_item['mnm_contents'] as $key){
if( isset( $contents[$key] ) ){
$new[$key] = $contents[$key];
unset($contents[$key]);
}
}
}
}
$cart->cart_contents = $new;
}
}
它并不完全适合你的问题(而且也很晚)但也许它可以帮助有同样问题的人。