22/**
33 * Wishlist for WooCommerce - Wishlist Item.
44 *
5- * @version 1.9.2
5+ * @version 3.1.8
66 * @since 1.0.0
77 * @author WPFactory
88 */
@@ -84,7 +84,7 @@ public static function add_item_to_wish_list( $item_id, $user_id = null, $use_id
8484 /**
8585 * Add metas to wishlist item.
8686 *
87- * @version 3.0 .8
87+ * @version 3.1 .8
8888 * @since 1.2.6
8989 *
9090 * @param $item_id
@@ -161,6 +161,17 @@ public static function update_wish_list_item_metas( $item_id, $meta_key, $meta_v
161161 if ( $ tab_id > 0 ) {
162162 $ new_user_meta_multiple [ $ tab_id ] = $ new_user_meta ;
163163
164+ if ( $ old_user_meta_multiple ) {
165+ foreach ( [ $ old_user_meta_multiple , $ new_user_meta_multiple ] as $ array ) {
166+ foreach ( $ array as $ key => $ subArray ) {
167+ foreach ( $ subArray as $ subKey => $ value ) {
168+ $ result [ $ key ][ $ subKey ] = $ value ;
169+ }
170+ }
171+ }
172+ $ new_user_meta_multiple = $ result ;
173+ }
174+
164175 if ( is_int ( $ user_id ) && $ user_id > 0 ) {
165176
166177 // update only multiple wishlist items
@@ -186,7 +197,7 @@ public static function update_wish_list_item_metas( $item_id, $meta_key, $meta_v
186197 /**
187198 * Remove item from wishlist user.
188199 *
189- * @version 3.1.6
200+ * @version 3.1.8
190201 * @since 1.0.0
191202 *
192203 * @param $item_id
@@ -199,6 +210,19 @@ public static function update_wish_list_item_metas( $item_id, $meta_key, $meta_v
199210 public static function remove_item_from_wish_list ( $ item_id , $ user_id = null , $ use_id_from_unlogged_user = false ) {
200211 if ( ! $ use_id_from_unlogged_user ) {
201212 $ response = delete_user_meta ( $ user_id , Alg_WC_Wish_List_User_Metas::WISH_LIST_ITEM , $ item_id , false );
213+ if ( 'yes ' === get_option ( 'alg_wc_wl_multiple_wishlist_enabled ' , 'no ' ) ) {
214+ $ arrange_arr = get_user_meta ( $ user_id , Alg_WC_Wish_List_User_Metas::WISH_LIST_ITEM_MULTIPLE , true );
215+ if ( is_array ( $ arrange_arr ) && ! empty ( $ arrange_arr ) ) {
216+ foreach ( $ arrange_arr as $ k => $ arr ) {
217+ if ( is_array ( $ arr ) ) {
218+ if ( ( $ key = array_search ( $ item_id , $ arr ) ) !== false ) {
219+ unset( $ arrange_arr [ $ k ][ $ key ] );
220+ }
221+ }
222+ }
223+ }
224+ $ response = update_user_meta ( $ user_id , Alg_WC_Wish_List_User_Metas::WISH_LIST_ITEM_MULTIPLE , $ arrange_arr );
225+ }
202226 } else {
203227 if ( ! $ user_id ) {
204228 $ user_id = Alg_WC_Wish_List_Unlogged_User::get_unlogged_user_id ();
@@ -215,7 +239,24 @@ public static function remove_item_from_wish_list( $item_id, $user_id = null, $u
215239 }
216240
217241 $ response = set_transient ( "{$ transient }{$ user_id }" , $ wish_list , 1 * MONTH_IN_SECONDS );
242+
243+ if ( 'yes ' === get_option ( 'alg_wc_wl_multiple_wishlist_enabled ' , 'no ' ) ) {
244+ $ wish_list_tab = Alg_WC_Wish_List::get_multiple_wishlists_with_all_item ( $ user_id , true );
245+ if ( is_array ( $ wish_list_tab ) && ! empty ( $ wish_list_tab ) ) {
246+ foreach ( $ wish_list_tab as $ k => $ val ) {
247+ if ( isset ( $ val ) && is_array ( $ val )){
248+ $ key = array_search ( $ item_id , $ val );
249+ if ( ( $ key = array_search ( $ item_id , $ val ) ) !== false ) {
250+ unset( $ wish_list_tab [ $ k ][ $ key ] );
251+ }
252+ }
253+ }
254+ }
255+ $ transient = Alg_WC_Wish_List_Transients::WISH_LIST_MULTIPLE_STORE ;
256+ $ response = set_transient ( "{$ transient }{$ user_id }" , $ wish_list_tab , 1 * MONTH_IN_SECONDS );
257+ }
218258 }
259+
219260 self ::handle_wishlist_counting ( array (
220261 'item_id ' => $ item_id ,
221262 'logged_user ' => ! $ use_id_from_unlogged_user ,
0 commit comments