@@ -17,9 +17,11 @@ class Alg_WC_Wish_List_Ajax {
17
17
const ACTION_GET_WISH_LIST = 'alg_wc_wl_get_wish_list ' ;
18
18
const ACTION_REMOVE_ALL_FROM_WISH_LIST = 'alg_wc_wl_remove_all_from_wish_list ' ;
19
19
const ACTION_GET_MULTIPLE_WISHLIST = 'alg_wc_wl_get_multiple_wish_list ' ;
20
+ const ACTION_GET_CLEAR_WISHLIST_ADMIN = 'alg_wc_wl_clear_wish_list_admin ' ;
20
21
const ACTION_SAVE_MULTIPLE_WISHLIST = 'alg_wc_wl_save_multiple_wish_list ' ;
21
22
const ACTION_DELETE_MULTIPLE_WISHLIST = 'alg_wc_wl_delete_multiple_wish_list ' ;
22
23
const ACTION_SAVE_WISHLIST = 'alg_wc_wl_save_to_multiple_wish_list ' ;
24
+ const ACTION_DUPLICATE_WISHLIST = 'alg_wc_wl_save_duplicate_wish_list ' ;
23
25
const ACTION_GET_WISH_LIST_SHORTCODE = 'alg_wc_wl_pro_get_wish_list_sc ' ;
24
26
25
27
@@ -144,6 +146,7 @@ public static function localize_script( $script ) {
144
146
'is_multiple_wishlist_enabled ' => get_option ( 'alg_wc_wl_multiple_wishlist_enabled ' , 'no ' ),
145
147
'is_current_page_wishlist ' => self ::is_current_page_wishlist (),
146
148
'action_save_wishlist ' => self ::ACTION_SAVE_WISHLIST ,
149
+ 'action_duplicate_wishlist ' => self ::ACTION_DUPLICATE_WISHLIST ,
147
150
'ajax_action ' => self ::ACTION_GET_WISH_LIST ,
148
151
'nonce ' => wp_create_nonce ( 'alg_wc_wl ' ),
149
152
'toggle_nonce ' => wp_create_nonce ( 'alg_wc_wl_toggle_item ' ),
@@ -307,7 +310,7 @@ public static function get_wishlist_via_ajax( $handle ) {
307
310
/**
308
311
* Ajax method for save new wishlist.
309
312
*
310
- * @version 2 .0.5
313
+ * @version 3 .0.8
311
314
* @since 2.0.5
312
315
*/
313
316
public static function save_to_multiple_wishlist () {
@@ -332,7 +335,12 @@ public static function save_to_multiple_wishlist() {
332
335
$ wishlist_list = array ();
333
336
}
334
337
array_push ( $ wishlist_list , $ value );
335
- set_transient ( "{$ transient }{$ user_id }" , $ wishlist_list , 1 * MONTH_IN_SECONDS );
338
+
339
+ if ( is_int ( $ user_id ) && $ user_id > 0 ) {
340
+ update_user_meta ( $ user_id , Alg_WC_Wish_List_User_Metas::WISH_LIST_ITEM_MULTIPLE_NAME , $ wishlist_list );
341
+ } else {
342
+ set_transient ( "{$ transient }{$ user_id }" , $ wishlist_list , 1 * MONTH_IN_SECONDS );
343
+ }
336
344
337
345
$ response = array ( 'wishlist_list ' => ! is_array ( $ wishlist_list ) ? array () : $ wishlist_list );
338
346
@@ -343,7 +351,7 @@ public static function save_to_multiple_wishlist() {
343
351
/**
344
352
* Ajax method for delete multiple wishlist item.
345
353
*
346
- * @version 3.0.4
354
+ * @version 3.0.8
347
355
* @since 2.0.5
348
356
*/
349
357
public static function delete_multiple_wishlist_item ($ item_id , $ tab_id ) {
@@ -365,8 +373,16 @@ public static function delete_multiple_wishlist_item($item_id, $tab_id) {
365
373
}
366
374
}
367
375
368
- $ transient = Alg_WC_Wish_List_Transients::WISH_LIST_MULTIPLE_STORE ;
369
- set_transient ( "{$ transient }{$ user_id }" , $ wishlist_list_items , 1 * MONTH_IN_SECONDS );
376
+ if ( is_int ( $ user_id ) && $ user_id > 0 ) {
377
+
378
+ // remove only multiple wishlist items
379
+ update_user_meta ( $ user_id , Alg_WC_Wish_List_User_Metas::WISH_LIST_ITEM_MULTIPLE , $ wishlist_list_items );
380
+ } else {
381
+
382
+ $ transient = Alg_WC_Wish_List_Transients::WISH_LIST_MULTIPLE_STORE ;
383
+ set_transient ( "{$ transient }{$ user_id }" , $ wishlist_list_items , 1 * MONTH_IN_SECONDS );
384
+
385
+ }
370
386
371
387
$ product = wc_get_product ( $ item_id );
372
388
@@ -404,7 +420,7 @@ public static function delete_multiple_wishlist_item($item_id, $tab_id) {
404
420
/**
405
421
* Ajax method for delete multiple wishlist.
406
422
*
407
- * @version 2 .0.5
423
+ * @version 3 .0.8
408
424
* @since 2.0.5
409
425
*/
410
426
public static function delete_multiple_wishlist () {
@@ -434,11 +450,22 @@ public static function delete_multiple_wishlist() {
434
450
unset( $ wishlist_list_items [$ index ] );
435
451
}
436
452
437
- $ transient = Alg_WC_Wish_List_Transients::WISH_LIST_MULTIPLE ;
438
- set_transient ( "{$ transient }{$ user_id }" , $ wishlist_list , 1 * MONTH_IN_SECONDS );
453
+ if ( is_int ( $ user_id ) && $ user_id > 0 ) {
454
+
455
+ // save only multiple wishlist name
456
+ update_user_meta ( $ user_id , Alg_WC_Wish_List_User_Metas::WISH_LIST_ITEM_MULTIPLE_NAME , $ wishlist_list );
457
+
458
+ // save only multiple wishlist items
459
+ update_user_meta ( $ user_id , Alg_WC_Wish_List_User_Metas::WISH_LIST_ITEM_MULTIPLE , $ wishlist_list_items );
460
+
461
+ } else {
439
462
440
- $ transient = Alg_WC_Wish_List_Transients::WISH_LIST_MULTIPLE_STORE ;
441
- set_transient ( "{$ transient }{$ user_id }" , $ wishlist_list_items , 1 * MONTH_IN_SECONDS );
463
+ $ transient = Alg_WC_Wish_List_Transients::WISH_LIST_MULTIPLE ;
464
+ set_transient ( "{$ transient }{$ user_id }" , $ wishlist_list , 1 * MONTH_IN_SECONDS );
465
+
466
+ $ transient = Alg_WC_Wish_List_Transients::WISH_LIST_MULTIPLE_STORE ;
467
+ set_transient ( "{$ transient }{$ user_id }" , $ wishlist_list_items , 1 * MONTH_IN_SECONDS );
468
+ }
442
469
443
470
}
444
471
@@ -468,15 +495,21 @@ public static function delete_multiple_wishlist() {
468
495
/**
469
496
* Ajax method for save to new multiple wishlist.
470
497
*
471
- * @version 2 .0.5
498
+ * @version 3 .0.8
472
499
* @since 2.0.5
473
500
*/
474
501
public static function save_multiple_wishlist () {
475
502
$ args = wp_parse_args ( $ _POST , array (
476
503
'ignore_excluded_items ' => false ,
504
+ 'value ' => array (),
477
505
) );
478
506
479
- $ value = $ args ['value ' ];
507
+ if ( isset ($ args ['value ' ]) ) {
508
+ $ value = $ args ['value ' ];
509
+ } else {
510
+ $ value = array ();
511
+ }
512
+
480
513
$ item_id = $ args ['item_id ' ];
481
514
482
515
if ( is_user_logged_in () ) {
@@ -496,10 +529,18 @@ public static function save_multiple_wishlist() {
496
529
}
497
530
}
498
531
532
+ if ( is_int ( $ user_id ) && $ user_id > 0 ) {
533
+
534
+ // get only multiple wishlist items
535
+ $ arrange_arr = get_user_meta ( $ user_id , Alg_WC_Wish_List_User_Metas::WISH_LIST_ITEM_MULTIPLE , true );
536
+
537
+ } else {
499
538
539
+ $ transient = Alg_WC_Wish_List_Transients::WISH_LIST_MULTIPLE_STORE ;
540
+ $ arrange_arr = get_transient ( "{$ transient }{$ user_id }" );
541
+
542
+ }
500
543
501
- $ transient = Alg_WC_Wish_List_Transients::WISH_LIST_MULTIPLE_STORE ;
502
- $ arrange_arr = get_transient ( "{$ transient }{$ user_id }" );
503
544
if ( ! $ arrange_arr ) {
504
545
$ arrange_arr = array ();
505
546
}
@@ -531,7 +572,15 @@ public static function save_multiple_wishlist() {
531
572
}
532
573
}
533
574
534
- set_transient ( "{$ transient }{$ user_id }" , $ arrange_arr , 1 * MONTH_IN_SECONDS );
575
+ if ( is_int ( $ user_id ) && $ user_id > 0 ) {
576
+
577
+ // save only multiple wishlist items
578
+ update_user_meta ( $ user_id , Alg_WC_Wish_List_User_Metas::WISH_LIST_ITEM_MULTIPLE , $ arrange_arr );
579
+
580
+ } else {
581
+
582
+ set_transient ( "{$ transient }{$ user_id }" , $ arrange_arr , 1 * MONTH_IN_SECONDS );
583
+ }
535
584
536
585
537
586
$ product = wc_get_product ( $ item_id );
@@ -542,6 +591,7 @@ public static function save_multiple_wishlist() {
542
591
543
592
$ params = apply_filters ( 'alg_wc_wl_toggle_item_texts ' , array (
544
593
'added ' => __ ( '%s was successfully added to wishlist. ' , 'wish-list-for-woocommerce ' ),
594
+ 'saved ' => __ ( 'Wishlist successfully saved. ' , 'wish-list-for-woocommerce ' ),
545
595
'removed ' => __ ( '%s was successfully removed from wishlist ' , 'wish-list-for-woocommerce ' ),
546
596
'see_wish_list ' => __ ( 'See your wishlist ' , 'wish-list-for-woocommerce ' ),
547
597
'error ' => apply_filters ( 'alg_wc_wl_error_text ' , __ ( 'Sorry, Some error occurred. Please, try again later. ' , 'wish-list-for-woocommerce ' ) ),
@@ -551,22 +601,44 @@ public static function save_multiple_wishlist() {
551
601
$ wish_list_page_id = Alg_WC_Wish_List_Page::get_wish_list_page_id ();
552
602
$ wish_list_permalink = get_permalink ( $ wish_list_page_id );
553
603
$ see_your_wishlist_message = $ params ['see_wish_list ' ];
554
- $ added_message = sprintf (
555
- $ params ['added ' ],
556
- '<b> ' . $ product -> get_name () . ' </b> '
604
+ $ saved_message = sprintf (
605
+ $ params ['saved ' ],
606
+ ''
557
607
);
558
-
559
- $ message = "{$ added_message }<br /> <a class='alg-wc-wl-notification-link' href=' {$ wish_list_permalink }'> {$ see_your_wishlist_message }</a> " ;
608
+
609
+ $ added_or_removed = 'removed ' ;
610
+
611
+ if ( Alg_WC_Wish_List_Item::is_item_in_wish_list ( $ item_id , $ user_id ) ) {
612
+ $ added_or_removed = 'added ' ;
613
+ }
614
+
615
+ $ message = "{$ saved_message }<br /> <a class='alg-wc-wl-notification-link' href=' {$ wish_list_permalink }'> {$ see_your_wishlist_message }</a> " ;
560
616
$ response = array (
561
617
'ok ' => true ,
562
618
'message ' => $ message ,
563
619
'action ' => $ action ,
564
- 'icon ' => $ icon
620
+ 'icon ' => $ icon ,
621
+ 'added_or_removed ' => $ added_or_removed
565
622
);
566
623
567
624
wp_send_json_success ( $ response );
568
625
}
569
626
627
+ /**
628
+ * wishlist_multi_array_search
629
+ *
630
+ * @version 3.0.8
631
+ * @since 3.0.8
632
+ */
633
+ public static function wishlist_multi_array_search ($ search_for , $ search_in ) {
634
+ foreach ($ search_in as $ element ) {
635
+ if ( ($ element === $ search_for ) || (is_array ($ element ) && self ::wishlist_multi_array_search ($ search_for , $ element )) ){
636
+ return true ;
637
+ }
638
+ }
639
+ return false ;
640
+ }
641
+
570
642
/**
571
643
* Ajax method for get wish list shortcode
572
644
*
@@ -609,7 +681,7 @@ public static function add_variable_product_data_to_response_text( $texts ) {
609
681
/**
610
682
* Ajax method for get from new multiple wishlist.
611
683
*
612
- * @version 2 .0.5
684
+ * @version 3 .0.8
613
685
* @since 2.0.5
614
686
*/
615
687
public static function get_multiple_wishlist () {
@@ -628,8 +700,15 @@ public static function get_multiple_wishlist() {
628
700
629
701
$ wishlist_list = Alg_WC_Wish_List::get_multiple_wishlists ( $ user_id );
630
702
631
- $ transient_store = Alg_WC_Wish_List_Transients::WISH_LIST_MULTIPLE_STORE ;
632
- $ arrange_arr = get_transient ( "{$ transient_store }{$ user_id }" );
703
+ if ( is_int ( $ user_id ) && $ user_id > 0 ) {
704
+
705
+ // get only multiple wishlist items
706
+ $ arrange_arr = get_user_meta ( $ user_id , Alg_WC_Wish_List_User_Metas::WISH_LIST_ITEM_MULTIPLE , true );
707
+ } else {
708
+
709
+ $ transient_store = Alg_WC_Wish_List_Transients::WISH_LIST_MULTIPLE_STORE ;
710
+ $ arrange_arr = get_transient ( "{$ transient_store }{$ user_id }" );
711
+ }
633
712
if ( ! $ arrange_arr ) {
634
713
$ arrange_arr = array ();
635
714
}
@@ -691,6 +770,97 @@ public static function get_multiple_wishlist() {
691
770
692
771
wp_send_json_success ( $ response );
693
772
}
773
+
774
+ /**
775
+ * Ajax method for get from new multiple wishlist.
776
+ *
777
+ * @version 3.0.8
778
+ * @since 3.0.8
779
+ */
780
+ public static function admin_clear_wishlist () {
781
+ $ args = wp_parse_args ( $ _GET , array (
782
+ 'user_id ' => 0 ,
783
+ ) );
784
+ if ( $ args ['user_id ' ] > 0 ) {
785
+ $ user_id = $ args ['user_id ' ];
786
+ delete_user_meta ( $ user_id , Alg_WC_Wish_List_User_Metas::WISH_LIST_ITEM );
787
+ delete_user_meta ( $ user_id , Alg_WC_Wish_List_User_Metas::WISH_LIST_ITEM_METAS );
788
+ delete_user_meta ( $ user_id , Alg_WC_Wish_List_User_Metas::WISH_LIST_ITEM_MULTIPLE );
789
+ delete_user_meta ( $ user_id , Alg_WC_Wish_List_User_Metas::WISH_LIST_ITEM_METAS_MULTIPLE );
790
+ delete_user_meta ( $ user_id , Alg_WC_Wish_List_User_Metas::WISH_LIST_ITEM_MULTIPLE_NAME );
791
+ delete_user_meta ( $ user_id , Alg_WC_Wish_List_User_Metas::WISH_LIST_ITEM_METAS_MULTIPLE_NAME );
792
+ }
793
+ $ ref_url = add_query_arg ('cleared ' , '1 ' , wp_get_referer ());
794
+ wp_safe_redirect ( $ ref_url );
795
+ exit ;
796
+ }
797
+
798
+ /**
799
+ * Ajax method for copy wishlist.
800
+ *
801
+ * @version 3.0.8
802
+ * @since 3.0.8
803
+ */
804
+ public static function save_duplicate_wishlist () {
805
+
806
+ $ args = wp_parse_args ( $ _POST , array (
807
+ 'value_tab_id ' => '' ,
808
+ 'value ' => '' ,
809
+ ) );
810
+
811
+ $ value = $ args ['value ' ];
812
+ $ value_tab_id = $ args ['value_tab_id ' ];
813
+
814
+ if ( $ value_tab_id !== '' ) {
815
+ $ value_tab_id = (int ) $ value_tab_id ;
816
+ } else {
817
+ $ value_tab_id = 'd ' ;
818
+ }
819
+
820
+ $ wishlisted_items = array ();
821
+
822
+ $ user_id = get_current_user_id ();
823
+ $ use_id_from_unlogged_user = false ;
824
+ $ ignore_excluded_items = false ;
825
+
826
+
827
+
828
+ // save wishlist name
829
+ $ wishlist_list = Alg_WC_Wish_List::get_multiple_wishlists ( $ user_id );
830
+ if ( ! $ wishlist_list ) {
831
+ $ wishlist_list = array ();
832
+ }
833
+ array_push ( $ wishlist_list , $ value );
834
+
835
+ if ( is_int ( $ user_id ) && $ user_id > 0 ) {
836
+ update_user_meta ( $ user_id , Alg_WC_Wish_List_User_Metas::WISH_LIST_ITEM_MULTIPLE_NAME , $ wishlist_list );
837
+ }
838
+
839
+ if ( is_int ( $ value_tab_id ) ) {
840
+ $ wishlisted_items = Alg_WC_Wish_List::get_multiple_wishlist_items ( $ user_id , $ use_id_from_unlogged_user , $ ignore_excluded_items , $ value_tab_id );
841
+ } else if ( $ value_tab_id == 'd ' ) {
842
+ $ wishlisted_items = Alg_WC_Wish_List::get_wish_list ( $ user_id , $ use_id_from_unlogged_user , $ ignore_excluded_items );
843
+ }
844
+
845
+ if ( is_int ( $ user_id ) && $ user_id > 0 ) {
846
+
847
+ // get only multiple wishlist items
848
+ $ arrange_arr = get_user_meta ( $ user_id , Alg_WC_Wish_List_User_Metas::WISH_LIST_ITEM_MULTIPLE , true );
849
+
850
+ if ( empty ($ arrange_arr ) ) {
851
+ $ arrange_arr = array ();
852
+ }
853
+
854
+ $ arrange_arr [] = $ wishlisted_items ;
855
+ // save only multiple wishlist items
856
+ update_user_meta ( $ user_id , Alg_WC_Wish_List_User_Metas::WISH_LIST_ITEM_MULTIPLE , $ arrange_arr );
857
+
858
+ }
859
+
860
+
861
+ $ response = array ('ok ' => true );
862
+ wp_send_json_success ( $ response );
863
+ }
694
864
695
865
}
696
866
0 commit comments