2
2
/**
3
3
* Wishlist for WooCommerce - Wishlist Item.
4
4
*
5
- * @version 1.9.2
5
+ * @version 3.1.8
6
6
* @since 1.0.0
7
7
* @author WPFactory
8
8
*/
@@ -84,7 +84,7 @@ public static function add_item_to_wish_list( $item_id, $user_id = null, $use_id
84
84
/**
85
85
* Add metas to wishlist item.
86
86
*
87
- * @version 3.0 .8
87
+ * @version 3.1 .8
88
88
* @since 1.2.6
89
89
*
90
90
* @param $item_id
@@ -161,6 +161,17 @@ public static function update_wish_list_item_metas( $item_id, $meta_key, $meta_v
161
161
if ( $ tab_id > 0 ) {
162
162
$ new_user_meta_multiple [ $ tab_id ] = $ new_user_meta ;
163
163
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
+
164
175
if ( is_int ( $ user_id ) && $ user_id > 0 ) {
165
176
166
177
// update only multiple wishlist items
@@ -186,7 +197,7 @@ public static function update_wish_list_item_metas( $item_id, $meta_key, $meta_v
186
197
/**
187
198
* Remove item from wishlist user.
188
199
*
189
- * @version 3.1.6
200
+ * @version 3.1.8
190
201
* @since 1.0.0
191
202
*
192
203
* @param $item_id
@@ -199,6 +210,19 @@ public static function update_wish_list_item_metas( $item_id, $meta_key, $meta_v
199
210
public static function remove_item_from_wish_list ( $ item_id , $ user_id = null , $ use_id_from_unlogged_user = false ) {
200
211
if ( ! $ use_id_from_unlogged_user ) {
201
212
$ 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
+ }
202
226
} else {
203
227
if ( ! $ user_id ) {
204
228
$ 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
215
239
}
216
240
217
241
$ 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
+ }
218
258
}
259
+
219
260
self ::handle_wishlist_counting ( array (
220
261
'item_id ' => $ item_id ,
221
262
'logged_user ' => ! $ use_id_from_unlogged_user ,
0 commit comments