-
-
Notifications
You must be signed in to change notification settings - Fork 5
/
changelog.txt
3987 lines (3422 loc) · 273 KB
/
changelog.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
(newer changes: see readme.txt)
= 2.4.22 (2023/12/30) =
* Fix #_CONTACT and #_AUTHOR event placeholders if no EME person is linked to that wp id
* Sumup and Mollie API updates
* Prevent some loops when using shortcodes/filters together with other bad-behaving plugins
= 2.4.21 (2023/12/22) =
* Fix/improve usage of WP profile for membership (and others)
= 2.4.20 (2023/12/15) =
* Avoid being able to create an identical person (same name/email) in the backend
* More verifications done when checking for people integrity
* Better person image representation in the backend
* Make frontend member editing also work for dynamic data
* Upgrade dompdf to fix a small security issue
* Mollie update to 2.63
* Convert filter dropdowns to better select
= 2.4.19 (2023/12/12) =
* Added a new recurrence period "specific months", so you can choose on which months something transpires and repeat per year
* Avoid php warnings if an image for an event/person/location/... no longer exists
* Avoid possible XSS via shortcode eme_events and the format option
= 2.4.18 (2023/12/10) =
* Fix a php warning
* Fix registering members from frontend again
= 2.4.17 (2023/12/07) =
* Documented #_YOUNGPENDINGSEATS and #_YOUNGPENDINGSEATS{xx}
* Added #_EVENTLINK (or #_EVENTURL) to just get a link to the event (needs to be made clickable by yourself)
* When updating a recurrence, existing events with bookings will not get removed even if they no longer match the recurrence
* More granular permissions for mail sending/viewing
* event scope "0000-MM" will now show events for the specified month in the future (not necessarily the current year)
* Added event scope "0000-MM--relative+Xm" to show events from a specified month in the future till X months later
* Add new shortcode eme_edit_member_form, which (for logged in user with the needed permissions) allows to edit a member from the frontend (not personal info nor membership info, but only member-entered info concerning the membership which are in fact just custom fields)
* Fix contact pending emails for user-confirmed bookings
= 2.4.16 (2023/11/23) =
* Add scope and always_header_footer param to eme_bookings and eme_attendees shortcodes
* Add #_FREESPACES and #_FREESEATS as aliases for #_AVAILABLESPACES
* When clicking on a location in the location list generated beneath a map, jump to the map
* eme_cat_filter now also supports the category name/slug as param value
= 2.4.15 (2023/11/10) =
* Fix a php warning when sending email, due to newer wp phpmailer version
= 2.4.14 (2023/11/03) =
* Fix dynamic group editing
* Allow adding of dynamic groups of type people or members, and make it more clear which type of group we're editing
* Fix eme_ipn_member_action hook (need to use $member, not $booking)
= 2.4.13 (2023/10/24) =
* Fix for case where bookings are already made and then event switches from single to multiprice
= 2.4.12 (2023/10/24) =
* Add a setting to allow people signing up for tasks to be assigned to groups too
* Take into account case where bookings are already made and then event switches from single to multiprice
= 2.4.11 (2023/10/12) =
* Fix an error when saving an event
= 2.4.10 (2023/10/11) =
* The CSV output generated by the CSV button in the admin backend (when showing tables) now uses the EME generic setting for the CSV seperator
* Allow all people-placeholders in the task signup form (ADDRESS1, ... too) and also #_GDPR
* The waitinglist is now checked when updating an event too
= 2.4.9 (2023/09/19) =
* The CSV output generated by the shortcode eme_bookings_report_link now uses the EME generic setting for the CSV seperator
* Fix a typo causing a php warning for membership dynamic fields and the captcha
* Show a hint that mail recipients will be recalculated at send time
= 2.4.8 (2023/09/07) =
* Fix some php warnings when the option to use the client clock for the calendar was set
= 2.4.7 (2023/08/21) =
* quick small fix for 2.4.6
= 2.4.6 (2023/08/21) =
* Fix php warning when adding/updating a member via the admin backend with empty end-date
* Remove many unused variables and cleaned up some typing errors
= 2.4.5 (2023/08/03) =
* Fix 3 php warnings
* Mollie update to 2.60
* Don't show all event custom field answers for every booking in the list of bookings
= 2.4.4 (2023/07/30) =
* Fix showing a single event from the calendar
= 2.4.3 (2023/07/28) =
* Fix placeholder #_IS_LAST_RECURRENCE
* New events scope option: format being: YYYY-MM-DD HH:MM:SS--YYYY-MM-DD HH:MM:SS, so eme_get_events function can search for events in that range (not just days, but taking hour/min/sec into account too);
* Added location capacity, which limits the number of people present at a location. This will be checked for each overlapping event/booking at a location
* Mollie update to 2.59
* Mercadopago update to 2.5.5
* Leaflet update to 1.9.4
= 2.4.2 (2023/07/15) =
* Event list widget was showing urlencoded text (due to the new php-8 function call method, urlencode was no longer needed but forgot to remove it)
= 2.4.1 (2023/07/14) =
* Widget fix that caused php error
= 2.4.0 (2023/07/14) =
* PHP 8 is now the minimal requirement
* Move to named arguments, cleaner code
* Fix creating WP user after creating member/booking (if so configured for the membership/event)
= 2.3.72 (2023/07/08) =
* Make sure no newsletter is sent even due to empty number of entries after conditional placeholders
* When setting max usage count to 0 for a membership (if it was non-zero before), check that it is 0 when doing RSVP too
(a member could have a usage count >0 beforehand and that would cause booking failures in certain cases)
= 2.3.70 (2023/06/22) =
* A new option is added to a EME person to delete the linked WP user when the user gets trashed
This option is on by default if EME created the WP user, but a WP admin will never be deleted.
* You can now require in the RSVP settings that a logged in user must be member of a EME group or membership in order to be able to book.
This avoids the need of using eme_if or the #_ADDBOOKINGFORM_IF_USER_IN_GROUP and #_ADDBOOKINGFORM_IF_USER_IS_MEMBER_OF (which still work btw)
Thanks to this, a new option can be added to members (see below: 'max usage'), so we can now use a turns-based membership
* New generic placeholder #_ALLCATEGORYIDS and allow eme_for to use this as list-value, so people can loop over categories
* New option for memberships: max usage. If set to something bigger than 0, this will indicate the maximum times a member can RSVP to an event that requires this membership.
= 2.3.69 (2023/06/03) =
* Allow to use captcha only for logged out users
* Show price description in printable booking report
* No longer show the unique payment number in printable booking reports (only usefull in Belgium and for wired transfers anyway)
* Fixed showing the discount name in the printable booking report
* Fixed some php warnings
= 2.3.68 (2023/05/27) =
* List of bookings was empty due to new function being used, fixed now
= 2.3.67 (2023/05/27) =
* Always allow style, span and meta html-tags in formats
* Remove confusing nl2br option for templates
* Reuse mailing for event mails now fills out all mail options too
* Added action hook eme_delete_member_action (executed just before the member gets deleted). 1 param: $member (array)
* Added action hook eme_status_change_action (executed after the member status changes). 2 parasm: $member_id and status
* Action hook eme_ipn_member_action fires for members after payment arrives through a payment gateway (like eme_ipn_action for bookings)
* Placeholders for events can now all start with #_EVENT or #_EVENT_
* Placeholders for locations can now all start with #_LOCATION or #_LOCATION_
* Placeholders for memberships can now all start with #_MEMBERSHIP or #_MEMBERSHIP_
* Placeholders for people can now all start with #_PERSON or #_PERSON_
* Placeholders for members can now all start with #_MEMBER or #_MEMBER_
* Placeholders for bookings can now all start with #_BOOKING or #_BOOKING_
= 2.3.66 (2023/05/10) =
* Add order option for eme_bookings shortcode. The default order is 'people.lastname ASC, people.firstname ASC, bookings.booking_id ASC'.
* Added new placeholder #_IS_INVITE_URL so you can check if an event is being booked for via an invite url
* New option for discounts, so you can chose if a certain discount is only valid for invitation-followed urls
* Invite urls can be sent for any event, not just those marked 'invite only'
= 2.3.65 (2023/04/22) =
* Added actions eme_events_daily_action, eme_members_daily_action and eme_daily_action, which all 3 run on a daily basis without arguments
Since all 3 run on a daily basis, you could decice to put everything in eme_daily_action, but the distinction might be usefull.
* Fix member dynamic group search (typo resulted in wrong members being returned)
* improve on #_WPUSERDATA{xx} and #_WPUSERMETA{xx}: if field doesn't exist, empty string is returned, if result is an array, all values are concatenated with ", "
= 2.3.64 (2023/04/10) =
* Add action hook eme_frontend_cancel_booking_action, so you can execute an action before the booking gets cancelled by a user (like e.g. refund)
* Add placeholder #_HAS_USER_REGISTERED{xx} (with 'xx' being one or more event ids, seperated by comma) returns 1 if the current logged in user is registered for one of the mentioned events
* Add new function eme_get_bookings_by_person_id (see the code for arguments)
* Mollie update
= 2.3.63 (2023/03/31) =
* Fix THUMB-placeholders (again)
= 2.3.62 (2023/03/30) =
* Fix some sql statements when searching for custom fields (could impact the number of results found in dynamics groups for example)
* Fix THUMB-placeholders
= 2.3.61 (2023/03/29) =
* Really fix the conditional placeholders #_IS_USER_IN_*
* Mollie update
* Fix thumb showing for people
* Add simplistic membership stats
= 2.3.60 (2023/03/26) =
* Fix the conditional placeholders #_IS_USER_IN_*
= 2.3.59 (2023/03/25) =
* Improvement: French translation updated, thanks to Frédéric M
* Add #_REMEMBERME and #_PHONE as possible placeholers to task signup form too
* Add generic placeholders #_WPUSERDATA{xx} and #_WPUSERMETA{xx}
* Reply-to also set to forced-from if the email from-sender is forced everywhere (in the EME settings)
* Fix discounts without end-date for memberships
= 2.3.58 (2023/03/15) =
* Fix searching for empty strings for custom fields
= 2.3.57 (2023/03/15) =
* Add "-a" option to cli_mail.php, to allow people to bypasspass the massmail setting for certain mailgroups
* Allow to search on empty values for custom fields in members and people overview
* Update Mollie API to 2.51.0
* Add "Remember me" functionality for forms, has a #_REMEMBERME placeholder and a setting that needs to be activated.
#_REMEMBERME can have an optional lable (#_REMEMBERME{xx}) otherwise "Remember me?" will be used as label
* A comment can be added to task signups (generic comment, will be added to each signup). For this #_COMMENT can be used in the form and emails
* Improvement: German language updates, thanks to Joerg Knoerchen
* Allow to choose wether or not to send mails when approving/deleting task signups
* Fix: tasks for hidden events were not being rendered on public pages when specifying the event id
= 2.3.56 (2023/03/01) =
* Fix an ajax pagination bug
= 2.3.55 (2023/02/26) =
* Resolve two php notices
* Resolve a mailing php notice
* Also exclude mailings to members already subscribed for an event (if the option to do is chosen)
= 2.3.54 (2023/02/21) =
* Fix editing countries
* Fix captcha in forms
= 2.3.53 (2023/02/20) =
* Allow file upload for custom fields for events/locations and memberships too. This allows uploads per event that don't clutter the wp media anymore
* The placeholder #_FIELDVALUE will return the url of the uploaded file (only for single-file uploads), while #_FIELD will return a clickable url-list
= 2.3.52 (2023/02/16) =
* Don't escape the event name too much
* Don't include trashed events in some searches
* Correctly detect offline payment gateway to show the info
= 2.3.51 (2023/02/10) =
* Fix group mailing
= 2.3.50 (2023/02/07) =
* Remove polylang language from the special events page if set, so the language choosen is taken for that page
* Translate full name if it contains language tags
* Interpret language tags in template as early as possible, to avoid nested tags once placeholders get expanded
* Fix #_IS_USER_IN_GROUP{xx,xx,xx}
* Upgrade dompdf to 2.0.3
= 2.3.49 (2023/02/05) =
* "groups" is a reserved keyword in some mysql versions, so avoid using that as a table alias
* Fix 'from'-sender being set incorrectly to blog admin
= 2.3.48 (2023/02/02) =
* Fix an undefined var
* Translate cancel-not-allowed string for multi-language sites
* Upgrade dompdf to 2.0.2
* Due to a bug in php-cs (that 'fixed' code the wrong way), editing an event would cause all task signups to be lost
= 2.3.47 (2023/01/30) =
* Fix attendance scan and also allow people with "Manage attendees" capability to scan and insert attendance records
= 2.3.46 (2023/01/30) =
* Fix people mailing list subscribe
* Fix attendance count after qrcode scan
* Also include booking_id for attendance count, since payment id alone can count for multiple bookings
* Translate the subject for email subscriptions too, not just the mail body
* Fix editing a member's dynamic data if no mail template was defined in the membership for updating a member
= 2.3.44 (2023/01/27) =
* Show task info in event admin overview (identical to RSVP info)
* Implement simple task approval. Approval requirement can be set globally or per event (not per task, allthough in the future this might be)
* Make action eme_trash_person_action work again
* Better user confirmation logic for free events where no further approval is required
= 2.3.43 (2023/01/24) =
* Fix the new placeholders #_MEMBERPAYMENTDATE and #_MEMBERPAYMENTTIME (usage of an not-needed variable caused these not to work)
* Send the "update member" mail also when updating a single member in the backend, not just for the mass action "mark unpaid"
* Try to treat all payment methods the same way, will be easier to add others in the future in a dynamic manner
* Make sure only logged-in users with correct permissions can see the mailings (it was already nonce-protected, but better be safe than sorry)
* If payment is done via payconiq, refund might be possible (payconiq restrictions apply). But: a button will appear in the "payment gw" column, allowing you to get the IBAN number to refund to if done manually
* Fix adding categories to events via the mass-action
= 2.3.42 (2023/01/19) =
* Added #_MULTIBOOKING_TOTALPRICE_NO_VAT and #_MULTIBOOKING_TOTALPRICE_VAT_ONLY
* Added member placeholders #_MEMBERPAYMENTDATE and #_MEMBERPAYMENTTIME that return the payment date and/or time formatted based on your wp preferences
* Added member placeholders #_MEMBERPAYMENTDATE{xx} and #_MEMBERPAYMENTTIME{xx} so you can format the layout to your liking ('xx' being the date/time format in php date notation)
* Add the "Skip payment option" to memberships (identical as for event bookings)
* Family memberships now have a setting that defines the max number of family members allowed per main member (default 10)
* Allow paymentid to be given as param to wp-admin/admin.php?page=eme-registration-approval and wp-admin/admin.php?page=eme-registration-seats
so you can create a link to bookings just related to that payment. Example:
wp-admin/admin.php?page=eme-registration-seats&paymentid=#_PAYMENTID
* Add "Mark paid" button in the table for approved bookings too, similar to the "Mark paid and approve" button in the table for pending bookings
* Fix categories include/exclude in #_EVENTCATEGORIES placeholders (typo in php)
= 2.3.41 (2023/01/15) =
* Add an action to (retry to) resend all failed mails in a mailing
* Fix wrongfull captcha check if captcha was disabled for an event
* Decrease use of globals as much as possible, "define" is more than enough (and available during plugin install, while globals are not)
= 2.3.38 (2023/01/14) =
* Captcha also for gdpr-related forms (request/change personal info)
* Fix a warning during plugin activation
* Fix showing event title and booking comment in booking printable report
= 2.3.37 (2023/01/11) =
* Fix hCaptcha and Cloudflare Turnstile captcha verification
* Fix memberships going past grace period (upon which they daily received the stopped-member mail but the status was not set to stopped)
= 2.3.36 (2023/01/11) =
* Payment gateway updates for Mollie, Mercadopago and Stripe
* Fix updating a person personal info (due to double nonce-checking people received "access denied")
* Fix hCaptcha and Cloudflare Turnstile captcha verification
= 2.3.35 (2023/01/07) =
* Fix options title on some options
* Fix GDPR settings (typo prevented the page from rendering)
* Add a default member form format if none is provided (and alert in the list of memberships if done)
= 2.3.34 (2023/01/06) =
* Fix Google reCaptcha
= 2.3.33 (2023/01/05) =
* Fix multiprice/multiseat events
= 2.3.32 (2023/01/05) =
* Fix deleting custom fields
* Add Cloudflare Turnstile as captcha method for forms
= 2.3.31 (2023/01/01) =
* No changes, but release to make sure new updates come in fine
= 2.3.30 (2023/01/01) =
* Fix plugin update checker to actually use the released zip (of course that will only really work from this release onwards :-) )
* Use short php array notation, and updated lang files
= 2.3.29 (2022/12/30) =
* Update cron schedules to prefix them with "eme_".
After update, verify your EME Email setting "Send out queued mails in batches of" (if mail queuing is activated) and the Newsletter setting in the menu "Scheduled actions"
(the Newsletter setting will probably need to be set again)
* Fix autocomplete people
= 2.3.28 (2022/12/28) =
* Fix several sql statements (prepare statement only works with arrays as argument if that is the only one ...)
= 2.3.27 (2022/12/28) =
* Fix sending mail
= 2.3.26 (2022/12/27) =
* SQL code rewriting (not vulnerable, but more in line with what is expected by wp, not 100% done)
= 2.3.20 (2022/12/23) =
* Second github-based release
= 2.3.19 (2022/12/23) =
* First github-based release
= 2.3.17 (2022/12/22) =
* First PhpSniffer pass fixes
= 2.3.16 (2022/12/20) =
* More code sanitizing to improve security
* JS definition via plugin input is no longer allowed, so options in EME will no longer allow js under any circumstances either
= 2.3.15 (2022/12/19) =
* jquery-timepicker update to 1.14.0
* GDPR mail for change personal info was not send in html (if wanted to do so)
* Added extra security checks on certain ajax calls to make sure no SQL injection of any kind can take place
= 2.3.14 (2022/12/14) =
* Fix a discount list php error in some cases
= 2.3.13 (2022/12/07) =
* Fix a typo introduced in 2.3.12 to check for the sender email address
= 2.3.12 (2022/12/06) =
* Added distance option to eme_events shortcode, if that option and the location_id option are present, you can show "nearby events" with distance in meters
If using this inside a single event layout format, you can use #_LOCATIONID to get the location id of the current event
* Fix the replyto-sender for emails
= 2.3.11 (2022/11/30) =
* When people paid via a payment gateway, they didn't receive a payment confirmation mail
= 2.3.10 (2022/11/26) =
* Mail blacklisting implemented (see EME mail options)
= 2.3.9 (2022/11/18) =
* Fix booking done from the backend (the current logged in user was used, not the user info set in the rsvp form)
* Fix setting person initial phone when the option to create a wp user was set (due to a wp hook race condition, the EME phone field was emptied)
* Fix contact person email for events
= 2.3.8 (2022/11/18) =
* Holidays now can be specified using a range too, and an optional link, so these are now possible:
2022-12-25,Christmas
2022-12-20--2023-01-02,Christmas holidays
2022-12-25,Christmas,my_extra_css_class
2022-12-25,Christmas,my_extra_css_class,link_to_the_holiday_info
* Fix deleting a booking (the related payment was not deleted due to a typo)
* Change the email functions (eme_send_email, eme_queue_mail, ...) to also have from-name and email as an extra optional argument (if not present, the reply_to will be taken as usual)
* Add an extra option in the email configuration to use the default sender as "forced" sender/email (by default true if anything is entered for existing setups)
* If "forced" sender is not active, you can now change the "from" for generic emails
= 2.3.7 (2022/11/11) =
* Fix a bug introduced in 2.3.6 for events that had a multi-price setting without multi-seat (which is possible, e.g. to just have children pay less)
= 2.3.6 (2022/11/11) =
* Update dompdf to 2.0.1
* Allow CSV payment imports for bookings, three fields need to be present: payment_date, amount and one of the following 3: payment_id, payment_randomid or unique_nbr
* Allow #_TRANSFER_NBR_BE97 (deprecated) or #_UNIQUE_NBR for both booking and member placeholders
* Allow to show the unique nbr for members in the admin interface
* Make sure the correct discount value is taken into account upon update of a booking
* When editing a booking where a seat field is hidden (using eme_if), that seat was set to 0. This is now fixed by taking the current seat value for missing seats
* payment div id changed to avoid double ids: the id eme-payment-formtext is now eme-payment-formtext-header (or eme-payment-formtext-footer where relevant)
* payment database table change to have less double info (member id was stored in the payment table, the payment id was stored in the members table which is double info)
= 2.3.5 (2022/10/25) =
* Enqueue for forgotten shortcodes
= 2.3.4 (2022/10/23) =
* Keep payment info, even for trashed (cancelled bookings), this allows to return an "already cancelled" message when someone tries to cancel two times
* Fix a membership page check if dripped content option was used
* Only enqueue scripts and styles if needed
= 2.3.3 (2022/10/18) =
* Don't show signup checkbox for tasks past their end date
* Allow the start/end date of all tasks to be changed at once (usefull if you have a lot of tasks for an event and you copy the event to a new date)
* Fix mass action setting new recurrence start date if end date is empty
* For file uploads with dynamic data and multiple upload fields: only show the uploads relevant for each field (and not all)
* Dynamic data improvement when editing a booking in the backend (changing the seats or comment was not taken into account)
= 2.3.2 (2022/10/15) =
* Fix people update php warning
* New field type (multiple files upload) to allow to upload multiple files in one go
* Show uploaded files instead of the upload formfield when appropriate (and not a list of uploaded files at the top)
= 2.3.1 (2022/10/08) =
* For generic mails, the option to send to all people is no longer selected by default. This causes less mistakes
* Fix Stripe checkout for newer api keys
* Fix discount import when discount groups are used as well
* Update Stripe API to 9.6.0
* Update Mollie API to 2.46.0
= 2.3.0 (2022/10/02) =
* Improve the people cleanup function (take task signups into account as well)
* When editing a person in the backend, check the mail address validity too
* Improve the initials returned by #_INITIALS
* Fix dynamic data based on dropdown fields where the field tags are different than the field values
* For eme_attendees and eme_bookings: if the id-option is not given and inside a single event view, then the id of that event is taken
= 2.2.99 (2022/09/25) =
* Also allow #_FAMILYCOUNT and #_FAMILYMEMBERS for people placeholders
* Add multiprice_template_id to shortcode eme_add_multibooking_form (used as template in the list of events in a multibooking form if the event is multiprice and the value is not 0, the default is 0 in which caste template_id is used as usual). This allows mixing multiprice and regular price events in one multibooking form.
* Fix sending event mails to groups
= 2.2.98 (2022/09/16) =
* Small fix for custom fields of type person and RSVP form
* Add "eventStatus" to list of fields for google event headers
* Make sure event description is not empty in list of fields for google event headers
* Performer google event header is added if a custom field with name "performer" and purpose "event" exists and has a non-empty value for the event
= 2.2.97 (2022/09/08) =
* Add rsvp placeholder #_IS_USERPENDING
* Allow members, member groups and membership selection for event related emails too
* Take multibooking into account for bookings needing user confirmation
* Add option "Pause between mails"
* Fix placeholders #_TASKSTARTDATE and #_TASKENDDATE
= 2.2.96 (2022/08/17) =
* Forgot to update the dompdf path for templates, this fixes it
= 2.2.95 (2022/08/16) =
* Fix creating tables (the previous version used a new method to detect the table prefix more dynamically but that caused troubles for new installations)
* Correctly detect that #_EMAIL and #_LASTNAME are present in the RSVP form (also handle the usecase #_EMAIL{xx} and #_LASTNAME{xx})
* New event status "Unlisted", causing an event to be public but not to appear in the list of events (so less restrictive than private events)
* Make #_IS_USER_IN_GROUP{xx} also work for dynamic groups
* Typo fix for ignore_pending events and free space check upon payment
* Update dompdf to 2.0.0
* Update Mollie API to 2.45.0
* Update Braintree API to 6.9.0
* Update Mercadopago API to 2.4.9
* Update Stripe API to 9.1.0
* Update Instamojo API to 1.0
* Making a template copy is now possible
* Added filter eme_offline_payment_gateways (returns a list of gateways that can only be paid offline) and eme_configured_payment_gateways (returns a list of actual configured gateways, not all available). Both filters are usefull for creating custom payment gateways in the future
* Added placeholder #_MEMBERSHIPS, returning a comma-separated list of memberships a person is in
* Upgrade Leaflet to 1.8.0 . Support Ukraine!!!
= 2.2.94 (2022/08/07) =
* Fix order for #_ALLEVENTS, #_PASTEVENTS and #_NEXTEVENTS
* The order param for eme_people now can order on custom fields too, you'll need to know the field id and then as example to order on field with id 4 use FIELD_4:
[eme_people order="FIELD_4 ASC, LASTNAME, FIRSTNAME"]
* Multisite data sharing support, allowing subsites to use the data from the main site (not the options). This is not needed if no data sharing is required (and is off by default).
Planned actions will only be executed in the main site.
= 2.2.93 (2022/08/01) =
* Fix a regular expression for payment placeholder replacements, causing possible php warnings to pop up
= 2.2.92 (2022/07/30) =
* Make sure the task-form setting is saved when being modified in the options
* #_TASKBEGIN and #_TASKEND now also can have an optional datetime argument (php style), if not the generic style for date+time is used
Example: #_TASKBEGIN{j M H:i}
= 2.2.91 (2022/07/21) =
* Fix missing closing div, causing several payment methods to be grouped under the added Opaya one.
= 2.2.90 (2022/07/19) =
* Fix mass action to delete discount from group (it in fact added it, wrong function call ...)
* Added Opayo payment gateway (formerly known as Sage Pay)
* Add rsvp email action eme_rsvp_email_action (4 params: the booking, the action, the calculated person email subject and body)
This way you can hook into the mail action and based on the action itself, execute custom code (like sending a mail). See the doc for an example
* Added member email action eme_member_email_action (also 4 params: the member, the action, the calculated member email subject and body)
See the doc for an example
* If creating a new event/membership and there's only one payment gateway configured, select it by default
* The filterform can now have #MULTIPLE_ and #SINGLE_ prefixes, forcing a certain search field to be multiple while others not. For custom fields you can force a dropdown field to be single too using this, even if the definition of the dropdown is a multi-dropdown select (not the other way around)
* The formfields #_PHONE, #_CITY, #_ZIP or #_POSTAL, #_ADDRESS1, #_ADDRESS2, #_NAME, #_FIRSTNAME, #_BIRTHPLACE, #_BORTHDATE #_EMAIL, #_COMMENT and #_CANCELCOMMENT now have an extra argument that you can use to set the html placeholder on the field, if not used a default placeholder will be shown. Example: #_ADDRESS2{House number} will show "House number" as placeholder, while otherwise "Address line 2" will be shown as placeholder
* #_POSTAL is added as an alternative for #_ZIP (and the default translation is now "Postal code" since that's more international than "Zip")
* Convert discount group names to ids when importing discounts
= 2.2.89 (2022/07/08) =
* Added author and contact_person options to the eme_locations_map shortcode too
* Wordpress page access can now also be limited to EME groups, not just EME memberships
* Small payconiq correction
* Fix #_CURDATE and #_CURTIME
* Update Stripe API to 8.9.0
* Update Mollie API to 2.44.1
* Correct members state calculation for "forever" memberships when payment arrives
= 2.2.88 (2022/07/01) =
* Added author and contact_person options to the eme_locations shortcode, but only used if eventful=1 and then it gets locations with events (where events then match the author and/or contact person). If eventful=0 (default), the contact_person is ignored but location author is taken into account
* Document #_BIRTHDAY_EMAIL, #_BIRTHDATE and #_BIRTHPLACE
* Added generic placeholder #_DATE{xx}{yy} with "xx" being a php date expression (like e.g. "+7 days") and "yy" being the wanted format (can be left out, then the generic format for dates is used). This allows to create templates to send a mail to persons saying things like "this is valid until 7 days from now".
* Fix some searching functionality in admin backends (for discounts, countries, rsvp)
= 2.2.87 (2022/06/24) =
* To have less conflicts, #_EVENTFIELD{xx}, #_LOCATIONFIELD{xx}, #_BOOKINGFIELD{xx}, #_ATTENDFIELD{xx}, #_RESPFIELD{xx} and #_PERSONFIELD{xx} have been renamed to #_EVENTDBFIELD{xx}, #_LOCATIONDBFIELD{xx}, #_BOOKINGDBFIELD{xx}, #_ATTENDDBFIELD{xx}, #_RESPDBFIELD{xx} and #_PERSONDBFIELD{xx}
* The placeholders #_IMAGE and #_IMAGEURL now only works for people, no longer for locations. One should use #_LOCATIONIMAGE as placeholder for locations
* Fix showing "pending" string in the CSV export for multiseat events
* Show booking status (approved, pending, waiting list, awaiting user confirmation) as separate column in csv/printable booking report
* Fix debug statement causing discounts to not work as expected
= 2.2.86 (2022/06/17) =
* Fix closing form-tag for cancel form
* Fix discount import without start/end dates
= 2.2.85 (2022/06/14) =
* Allow slug to be changed when editing recurring events as well
* Added SumUp as payment gateway
* Fix locations shortcode (notcategory param was not taken correctly into account)
* Fix valid_from/to checks for imported discounts
= 2.2.84 (2022/06/06) =
* Fix #_LINKEDNAME (due to a typo, it was no longer showing the link at all)
= 2.2.83 (2022/06/05) =
* Add offset option to eme_events shortcode
* The birthday calendar picker will start with years first
* #_LINKEDNAME will create a url that opens in an new tab for events if the url is external
= 2.2.82 (2022/05/29) =
* Add notcategory as an option for eme_locations and eme_locations_map shortcodes
* Make sorting work again in members and membership overview (small bug introduced in 2.2.81)
* Fix list of people (reason was the use of wordpress function sanitize_sql_orderby which is not perfect ...)
= 2.2.81 (2022/05/27) =
* More potential sql fixes (not proven, but better safe than sorry), thanks to Erwan via https://wpscan.com
= 2.2.80 (2022/05/27) =
* Security update: fix SQL injection with unescaped lang variable (reported by Dave via https://wpscan.com)
Users are advised to update to the latest version immediately!
= 2.2.79 (2022/05/21) =
* Fix import of custom field answers for locations
* People birthday emails were being sent 2 times
* Added booking mailfilters userconfirmation_pending_subject/body
= 2.2.78 (2022/05/16) =
* Fix leftover php issue in ExpressiveDate.php so it works with php 8.1 and older
= 2.2.77 (2022/05/15) =
* Fix some php issues (trying to be ok with php 8.1 seems more daunting than expected)
= 2.2.76 (2022/05/15) =
* Add filter eme_wp_userdata_filter, which allows you to set extra info for the WP user being created after a booking (if that option is set)
The current EME person is given as argument (array), the result should be an array that is accepted by wp_update_user
* Fix waitinglist management in case a booking is not paid for but booking approval is not required
* Check free seats just before the payment form is shown, in case pending bookings are considered as free we need to make sure at the moment of payment seats are actually available
* If the option is set to consider pending bookings as free seats, pending bookings younger than 5 minutes are considered as occupied seats as well as to avoid possible clashes with slow payments (only if online payment for that event is possible)
* Added the possibility to filter on category in bookings overview
* Added #_YOUNGPENDINGSEATS: gives the number of pending seats younger than 5 minutes for an event (those are counted as occupied too, even if pending seats are considered as free)
* Added #_YOUNGPENDINGSEATS{xx} gives the number of pending seats younger than 5 minutes for the xx-th seat category for a multi-seat event
* Include all member attachments in mails to the contact person
= 2.2.75 (2022/05/06) =
* Fix BCC mail sending
* Add option for newsletter sub/unsub per person too (the automatic mail for new events)
* Add extra SEO permalink prefixes for calendar and payments
* Added placeholder #_BOOKING_CONFIRM_URL (which gives a nicer link for a booker to confirm his booking if permalinks are active, not just the payment url)
= 2.2.74 (2022/04/25) =
* Allow filter on email settings, so you can e.g. change server/port/... based on the 'to'
The filter is called eme_filter_mail_options and takes 1 array as argument:
$mail_options=array(
'fromMail',
'fromName',
'toMail',
'toName',
'replytoMail',
'replytoName',
'bcc_addresses',
'mail_send_method', // smtp, mail, sendmail, qmail, wp_mail
'send_html', // true or false
'smtp_host',
'smtp_encryption', // none, tls or ssl
'smtp_verify_cert', // true or false
'smtp_port',
'smtp_auth', // 0 or 1, false or true
'smtp_username',
'smtp_password',
'smtp_debug', // true or false
);
The return should be the filtered (changed) array
* Optionally show event categories in bookings
* Make "#_SINGLE_EVENTPAGE_EVENTID" placeholder work as expected
* Add generic placeholder #_SINGLE_EVENTPAGE_LOCATIONID, returning the location id of the event currently being shown (so you can e.g. show a location map of the current event in a widget)
* Add generic placeholder #_SINGLE_LOCATIONPAGE_LOCATIONID, returning the location id of the location currently being shown (so you can e.g. show a location map of the current location in a widget)
* #_PAYMENT_URL placeholder (also used to have the user confirm a booking) was not showing the link if online payment for the event was not possible
= 2.2.73 (2022/04/15) =
* Leaflet JS will now also switch to dark mode if your browser is set that way
* Allow direct template input for memberships too, without needing to define separate templates
* Make add-tasks work again (javascript error sneaked in)
= 2.2.72 (2022/04/11) =
* Delete old answers for custom fields for people if appropriate (when the custom formfield is no longer present) if updating the person in the backend
* Allow 0/empty as value for planned actions "Schedule the automatic removal of unpaid pending bookings older than" and "Schedule the automatic removal of unconfirmed bookings older than"
* Correct Donate button
= 2.2.71 (2022/04/09) =
* Better plan cron (WP only takes 24 hours in a day, not taking summer/winter timezones into account)
* Birthday mails needs to be sent for people indicated to do so, despite the default setting for new people
= 2.2.70 (2022/04/08) =
* Update Stripe API to 7.121.0
* Update Braintree API to 6.8.0
* Update Fondy API to 1.0.9.1
* Update Mercadopago API to 2.4.5
* Update Mollie API to 2.41.0
* Remove Paymill and Sagepay payment gateways
* Implement Braintree refunding
* Show Worldpay callback url in the payment options page
* Add RSVP placeholder #_WAITINGLIST_POSITION, returning the position of a booking on the waiting list
* Implement birthday functionality with new people placeholder #_BIRTHDAY_EMAIL, can be used to show a form field (yes/no) to allow people to indicate they want an email (or not) or as text info (Yes/No text)
Older changes can be found in changelog.txt
= 2.2.69 (2022/03/26) =
* Export also partial payment info (received and remaining) in the CSV export for bookings
* Add forgotten filter eme_event_formfields
* Cache extra queries, resulting in much better performance
* Add a div with a class around the text "You can change your last name in your WP profile." so you can hide it if you'd like.
= 2.2.68 (2022/03/22) =
* Fix PHP warning
* Add filters eme_event_formfields, eme_location_formfields, eme_membership_formfields, allowing you to influence e.g. the order of custom fields shown in the EME admin interface
for events, locations and memberships
= 2.2.67 (2022/03/19) =
* Fix a recursion detection, causing some placeholders/shortcodes not to be replaced in certain cases
= 2.2.66 (2022/03/18) =
* Do not apply the filter eme_event_list_filter in the backend
* Add booking placeholder #_IS_PENDING (returns 1 if booking is pending approval, 0 otherwise)
* Added #_USER_IS_REGISTERED placeholder for shortcode eme_tasks_signups, can be used as e.g. conditional tag
* Added #_HAS_USER_TASK_REGISTERED{xx} (with 'xx' being one or more task ids, seperated by comma) returns 1 if the current logged in user is registered for one of the mentioned tasks
* Added shortcode eme_mytasks to show the signups for the current logged in user. Extra options:
'scope' => 'future' (other values: 'past', 'all')
'task_id' => 0 (so you can use this shortcode inside a eme_tasks shortcode to show signups in a specific format)
'event_id' => 0 (so you can use this shortcode inside a eme_events shortcode to show signups in a specific format)
'template_id' => 0 (if not specified, the generic task signup template will be taken)
'template_id_header' and 'template_id_footer' (see the doc)
* Allow to change also start date for recurrences via mass action
* Improved regex to better catch paired curly brackets, even when enclosed in others
This also allows for more recursion for event and membership placeholders
= 2.2.65 (2022/03/02) =
* Take deleted groups into account when editing a custom field of type "people"
* Update Braintree API to 6.6.0
* Update Dompdf to 1.2.0
* Added "on behalf of" part for cli_mail forwarding
* Add all sent mails to the database, even if no queueing is active
* Support "scope" as a parameter for the shortcode eme_mybookings. Default value "future" (other options: "past" or "all"). The old "future" parameter will override the scope parameter if set
= 2.2.64 (2022/02/19) =
* Multiseat typo fix
= 2.2.63 (2022/02/16) =
* Bring back the "Mark paid and approve" button
* Fix the deprecated option "approval_status" for eme_my_bookings, eme_bookings and eme_attendees shortcodes
= 2.2.62 (2022/02/16) =
* Fix eme_mybookings (sql error) shortcode
= 2.2.61 (2022/02/15) =
* Added placeholders #_CURDATE{xx}, #_CURTIME{xx}, #_BOOKINGPAYMENTDATE{xx}, #_BOOKINGPAYMENTTIME{xx}, #_BOOKINGCREATIONDATE{xx} and #_BOOKINGCREATIONTIME{xx} so you can format the layout to your liking ('xx' being the date/time format in php date notation)
* Added bulk actions to set GDPR or Massmail to "no"
* Fix #_ATTENDEES showing trashed bookings too
= 2.2.60 (2022/02/15) =
* For sub/unsub form: the mailgroup select will be a single preselected dropdown if only 1 group is to be presented
* Also delete person linked to unconfirmed booking after cleanup if that person is not used in other bookings or memberships and created around the same time as the booking
* Add action eme_delete_person_action
* Fix eme_mybookings (sql error) shortcode
* Fix sending reminders for pending/approved bookings (was reversed) and #_BOOKINGS (was showing trashed bookings too)
= 2.2.59 (2022/02/14) =
* Remove the ugly code for linking rsvp section from one event to another. You can always use [eme_add_booking_form] if you want to use the booking form from another event.
* Changed option approval_status to rsvp_status (the old option will continue to work for now, but is depecrecated) for shortcodes eme_bookings, eme_mybokings, eme_attendees
* Add an option to ask for user confirmation after a booking. The booking itself will stay marked as pending until the person has confirmed it. Also cleanup actions have been added to remove unconfirmed bookings (default: unconfirmed bookings older than 24 hours will get removed)
* For subscribe/unsubscribe: #_MAILGROUPS shows by default a list of all public groups, now you can limit that list by using #_MAILGROUPS{xx} with xx a comma-separated list of group ids
* Obfuscate all emails of people (not just contact/author but also bookers or members) if shown on the site
* Defined action eme_trash_person_action
* Added code to prevent mail obfuscation in html mails
= 2.2.58 (2022/02/10) =
* Attendance check returned empty for qrcode scan if a booking was not paid and the user doing the scan was logged in
* Don't replace shortcodes in event or location notes too soon
* Make sure gdpr cron actions are planned
= 2.2.57 (2022/02/07) =
* Fix attendance-only events (if someone selected 0 seats, it was not accepted)
* Add condition 'not equal to' for dynamic data
* Make dynamic fields also work for RSVP forms in the admin backend
= 2.2.56 (2022/02/06) =
* Fix for forever memberships (end date was not correctly set to 0)
* Change "mail_only" to "public" for groups as an option, becayse #_SUBSCRIBE_TO_GROUP can also be used for those
* Groups to subscribe to (that are rendered via #_SUBSCRIBE_TO_GROUP in the rsvp/member form) need to be set to 'public', just as for eme_subform and eme_unsubform shortcode or the form generated by #_UNSUB_URL
* Make sure no mail error message is returned if the subject/body is empty for certain member actions
= 2.2.55 (2022/02/05) =
* A custom field of type "People" can now be in more than one group as a field condition, meaning the field will then appear for all people in one of the selected groups when editing a person
* Fix list of people being shown for an empty group (list should be empty, not everybody)
* Allow eme_email as an URL parameter for the page containing the eme_subform or eme_unsubform shortcode, causing the email field there to be filled in immediately
* Added bulk action "remove from group" for people in the admin backend
* Add placeholder #_SUBSCRIBE_TO_GROUP{xx} for RSVP and member forms, to allow people to indicate they want to be a member of a certain group
(xx can be the id or name of a group)
= 2.2.54 (2022/02/02) =
* Add order param for multibooking form shortcodes (only has effect when using together with scope or category_id options)
* Fix 2 possible php notices
= 2.2.53 (2022/01/27) =
* Ajax for author and contact in admin interface when adding/editing an event (for big sites the list of wp users was just too big)
* Readonly for email/lastname/firstname in multibooking too if logged in
* Fix a php error when the combo of multibooking+only_one_event+simple was used
* Fix booking for only_one_event
* Fix php warning for categories
= 2.2.52 (2022/01/25) =
* For events and memberships: only configured payment methods are now shown and never selected by default
* Fix conversion for answer values causing a php error when wanting to convert to a localized value (currently no longer converted)
= 2.2.51 (2022/01/24) =
* Convert value to price when using #_FIELDVALUE for answer of custom fields that had "extra charge" indicated
* Better layout for backend task signups overview (clickable events and people now)
* Fix a typo causing bookings to fail to work for events (one letter ...)
= 2.2.50 (2022/01/23) =
* Add options signupform_template_id and skip_full to eme_tasks_signupform shortcode
* Add task placeholder #_TASKID (allows you to call e.g. [eme_task_signups task_id=#_TASKID] when inside the list of task signups
* Add task placeholder #_TASKSIGNUPS, to be able to show a list of signups inside the signup form itself (format is then done via the generic EME settings for tasks)
* Added event placeholders #_AVAILABLETASKS and #_FREETASKS, returns the number of free tasks for an event
* Added the option "simple" to the shortcode eme_add_multibooking_form, allowing simpler multi-booking form (no need to change per-event mail formatting)
* Renamed the option "only_one" to "only_one_event" for the shortcode eme_add_multibooking_form
* Added the option "only_one_seat" to the shortcode eme_add_multibooking_form, which forces the min/max allowed seats to book per event to 1 (and thus hidden)
This is mostly usefull in combination with "only_one_event" or "simple"
* Added shortcode eme_add_simple_multibooking_form, which is identical to eme_add_multibooking_form with the simple=1 option
* Allow to show all custom fields of purpose "people" in the membership overview too. This is a setting in the members-section of the EME options
= 2.2.49 (2022/01/19) =
* Allow the definition of an extra charge for new members in a membership (applied to members in "pending" status only)
* Also allow auto-completion for task signups from the frontend if the permissions allow it
* Removed the long deprecated filter eme_eval_booking_form_filter
* When manually marking a member as stopped, set the end date to today
* Take the full name format into account to do name sorting in groups
* Added people placeholders #_FIRSTNAME{x} and #_LASTNAME{x} (to show only the first x characters of the first or last name, followed by "."), #_INITIALS and #_LASTNAME_INITIALS
* Added extra access settings to define who is able to access the people/groups/members/membership menu (the "list" access setting then does what it currently advertises)
= 2.2.48 (2022/01/14) =
* Allow empty firstname for csv import of people/members
* Indicate that the member-edit template is only used when marking a member as unpaid
* Correctly take the offline info into account before deciding wether or not automatically redirecting to the payment gateway
* Send correct booking mail after moving automatically from waiting list to pending or approved
* For eme_events shortcode: if not needing to show events by period (or "long_events option"), don't try to group by date because that will not provide a correct result for events when using the "order" option
= 2.2.47 (2022/01/12) =
* Use CSS to diable password autocomplete, chrome just keeps messing with it
* Make more personal info read-only when editing a member
* Respect the setting "redirect wait period" for member payments too when the option "Redirect immediately to payment gateway?" is set
= 2.2.46 (2022/01/06) =
* Allow to set a cutoff period in which people can renew their active membership (e.g. renewal only allowed 30 days before the membership currently ends), so people can't pay for multiple periods
= 2.2.45 (2022/01/02) =
* Make sure the ticket gets attached for approved bookings
= 2.2.44 (2021/12/30) =
* Keep existing choice of queue schedule for upgrade from 2.2.41 (can help if you use queue scheduling and didn't update to 2.2.42 yet, otherwise verify your queue settings in the EME mail options section)
= 2.2.43 (2021/12/30) =
* Make sure a sensible default is set for the mail queue schedule ('hourly' if nothing present).
Due to the upgrade to 2.2.42 this option might have been reset to 'hourly'. Please check your EME mail options to verify/change the schedule to your liking.
= 2.2.42 (2021/12/29) =
* Fix gdpr daily actions schedule
* Update Mollie API to 2.39.0
* Fix upgrade from 2.1.122 that might have lost customer answers for events/locations/memberships (not for bookings or members)
* For the subscribe form, lastname and firstname are optional (even when #_LASTNAME and #_FIRSTNAME are used).
They can be made required by using #REQ_LASTNAME and #REQ_FIRSTNAME
* Removed the cron action to send out reminders for unpaid bookings for all events. You can schedule reminders per event, so this cron is no longer needed
* The mail queue settings are moved to the options page (where they belong)
* Fix member transfer to other membership
= 2.2.41 (2021/12/11) =
* Typo fix for dynamic member data
= 2.2.40 (2021/12/11) =
* CSS fix for people image preview
* Small discount layout fix when deleting a group
* Mass action to remove discounts from a group
* Make sure dynamic price calculations happen late enough so the theme discount functions are taken into account too
* If no dynamic fields but "the dynamic data on all fields" is checked, now discount functions of type code will run too, so dynamic price gets updated as well
* Fix adding recurrent events where end time was smaller than start time
= 2.2.39 (2021/12/07) =
* Fix selecting people by random id
* Allow multiple group_ids when using [eme_people]
* Show the person image as personal info too if present, and allow it to be changed in the front too (use #_IMAGE in the "Change personal info Form template")
* Make sure older members get extended too (payment id was missing)
= 2.2.38 (2021/12/03) =
* Mollie tracking fix for members (the mollie payment tracking number was not saved per member after payment)
* Small bugfix causing attachments to not be sent anymore
= 2.2.37 (2021/12/02) =
* Discount fix
= 2.2.36 (2021/12/02) =
* Add mass action to resend member expiration reminder
* Security fix (possible SQL Injection by authenticated users): fix an unescaped search query in the ajax eme_searchmail action (reported via WPScan)
= 2.2.35 (2021/12/01) =
* Allow people to clear the lastname/firstname fields if "Require WP membership" is not selected for events or memberships
* Fix eme_tasks_signups shortcode and let it have the same options as the eme_tasks_signupform shortcode
* Add #_PAYMENTID as placeholder for bookings and members
= 2.2.34 (2021/11/26) =
* Fix sending out reminders for approved bookings
= 2.2.33 (2021/11/24) =
* Allow member id to be imported too for CSV import of members (column: member_id). If the member_id already exists, that value will be ignored
* Added filters eme_event_email_subject_filter, eme_event_email_body_filter, eme_generic_email_subject_filter, eme_generic_email_body_filter
* Add groups, creation and modif date as extra columns for people
* Fix bulk action to add people to a group
* eme_countdown shortcode now shows the difference in days, not taking the hour into account
* Fix undefined var when subscribing to a group
* Fix undefined var when unsubscribing from a group
* For sortable elements (like dynamic data fields), only allow sorting when clicking the sort image, this prevents issues on mobile browsers
* Add eme_add_booking_form_prefilter so people can influence the placeholders already before being replaced
* Reminders can be set per event for pending/approved bookings
* Reminder days can be set to 0 for memberships, meaning to send a reminder the day the membership will expire (at midnight).
The same goed for reminders for pending/approved bookings or tasks
* Added event tasks (for volunteer signups per event). By default this is deactivated, so if you want to use this, go in the generic EME settings and set "Use tasks"
The shortcodes [eme_tasks_signups] and [eme_tasks_signupform] have been created for this (see the doc)
Reminders for tasks are configurable as well.
= 2.2.32 (2021/11/06) =
* In certain cases own javascript had also br-tags added, this caused javascript errors of course.
* Allow immediate redirect to online payment gateway if only 1 gateway is selected for that event/membership.
* Fix storing answers for members, it was a bug introduced in 2.2.29
= 2.2.31 (2021/11/04) =
* Fix subscribe with name/email to mailgroups
= 2.2.30 (2021/11/02) =
* Fix a weird php bug where array_map with extra arguments loses the array keys. This affected mainly the frontend submit plugin
= 2.2.29 (2021/11/01) =
* Allow all booking placeholders to be used as condition for dynamic fields (idem for members)
* Fix email tracking (due to a typo, tracking was not done anymore)
* Allow unfiltered html (except javascript) in some parts, as wordpress does for posts. This will be indicated.
* Fix the display of a person's birthdate/place in members overview
= 2.2.28 (2021/10/27) =
* Correctly move bookings to trash for future events if moving the corresponding person to trash
* Fix showing the language in the countries overview
* Add the translated strings for the select-windows (used for countries/states)
* Added filters eme_insert_discount_filter, eme_insert_event_filter, eme_insert_location_filter, eme_insert_person_filter, eme_insert_group_filter, eme_insert_member_filter
* The chosen setting for 'Check waitinglist when seats become available' was not being saved in the global options
* Added payment gateway placeholders #_PRICE_INCLUDING_CHARGES_NO_VAT and #_PRICE_INCLUDING_CHARGES_VAT_ONLY, #_EXTRACHARGE_NO_VAT and #_EXTRACHARGE_VAT_ONLY
* Allow all payment gateway placeholders to be used as booking and member placeholders too
* Fix 12:00 AM times for events (old bug in ExpressiveDate.php lib)
* Use more resilient placeholder replacement regex
* For Belgium: added Payconiq support
* Added filter eme_insert_event_filter (there's already eme_preinsert_event_filter, but this name is more logical)
= 2.2.27 (2021/10/14) =
* Documented [eme_person] shortcode
[eme_person] parameter person_id can be overriden via a url param (using the person's random id). This allows to create 1 page where you can show other people's info based on their random id (so not easy to guess) from e.g. within an event. The param name is "prid".
* The eme_change_personal_info shortcode will detect if you're logged in and immediately show the form if a linked EME user is found and the option "show_form_if_logged_in" is set to 1 or true
* The eme_request_personal_info shortcode will detect if you're logged in and immediately show the info if a linked EME user is found and the option "show_info_if_logged_in" is set to 1 or true
* EME notices will no longer be shown to non-admin users
* Fix updates for dynamic answers for family members when updating head-of-family (the same answers were taken for all family members, which was not the intention)
* Take UTF-8 BOM into account for CSV import
* Added mass-action to add discounts to groups
* Added mass-action to change "valid from" date for discounts
* Added mass-action to change "valid until" date for discounts
= 2.2.26 (2021/10/04) =
* Fix auto-removal of old expired members (if set in the GDPR settings)
* Fix subscribe/unsubscribe mail forms
= 2.2.25 (2021/10/01) =
* Fix sending of booking mails (due to the quick release of the security issue, I didn't get around to testing that too well, so made a typo)
= 2.2.24 (2021/10/01) =
* More nl2br tuning: don't add a br-tag if the next line starts with a html closing tag
* Optimize the code for extending recurrences
* Fix some undef php variables in paypal legacy payment method
* Allow generic placeholder to contain other placeholders in {..}, so generic placeholders that use {..} can contain event/location/membership placeholders
* Security fix (XSS): fix an unsanitized field (name) in the custom formfields form (reported by Huy Nguyen via WPScan)
= 2.2.23 (2021/09/25) =
* nl2br fixes
* Noscript-detection fixes
= 2.2.22 (2021/09/22) =
* Added event placeholder #_CANCELEND, returns the localized date+time until people can cancel a booking
* Make sure to restore the schedule of the planned actions after deactivation/reactivation of the plugin
* Add new timepicker for some cases (replaced the slider when creating events and for custom fields of type time_js)
* Work around the bug that wordpress doesn't allow "+" in the sanitize_email function
* Some more nl2br where needed
= 2.2.21 (2021/09/12) =
* Detect if javascript is disabled for forms and show an error message if it happens (and not the form)
* Cleanup action added to remove people in trash longer than X days
* Correct payment buttons for memberships
= 2.2.20 (2021/09/08) =
* Added action hook eme_trash_rsvp_action, so you can hook into the removal (trash) of a booking
* Add support for hCaptcha (since Google starts charching for reCaptcha). See https://www.hcaptcha.com/
* Make sure person phone gets updated if linked wp user updates his phone
= 2.2.19 (2021/09/01) =
* The option to check the waiting list when a seat becomes available is now also a global option
* Fix #_AVAILABLEWAITINGLISTSEATS and #_AVAILABLESEATS to better account for booked seats on the waitinglist
* Added #_BOOKEDWAITINGLISTSEATS (number of booked seats on the waiting list)
* Allow current discount usage to be edited too when editing a discount
* Added action hook eme_delete_rsvp_action, so you can hook into the actual removal of a booking too (not just trashing it)
* Added #_CURRENCY and #_CURRENCYSYMBOL for memberships too
* Added #_PRICE_INCLUDING_CHARGES (or #_GATEWAY_PRICE) as placeholder to be used above/below a payment button per gateway, so you can show the price with the charges for that gateway included
* Fix the location add when creating an event again in the backend (caused by setting a default language but because of that the location dropdown showed to avoid multiple locations to be creted)
* Update Mollie API to 2.37.1
* Allow "NOW" as default value for custom fields of type date_js,datetime_js and time_js
* Allow properties for discounts to be imported too
= 2.2.18 (2021/08/26) =
* In case a booking moves from one event to another, check the waiting list of the original event to optionally approve a booking
* #_FILTER_LOCS was not showing the location dropdown in the filter form due to a typo, this has been fixed
= 2.2.17 (2021/08/25) =
* Show a small error message if a non-existing membership ID is used in the eme_add_member_form shortcode
* You can now also use #_LASTNAME and #_FIRSTNAME in the email subscription form (not an obligation), and also in the email subscription confirmation mail
If a logged-in user wants to subscribe, the info is readonly in the form and taken from the wp profile
* Fix edit window for states/countries upon saving when also the option to "Stay on edit page after save" was set
* Fix slug-duplication check/warning in EME options
* Fix booking mails for pending bookings on waiting list
* Only add person to group for a membership (if configured to do so) if the member actually paid
* Added the option to automatically take a booking from the waiting list when seats become available for an event
* Added aria-label for input selects/dropdowns
* Support language tags under the form "[:ll]text[:]" (the default in qtranslate-xt)
* If activating the option to disable wpautop, EME replaces it by a function that replaces carriage returns by br-tags in a smart way
= 2.2.16 (2021/08/16) =
* Fix CSV export of bookings with people custom fields
* Fix discount and limits for groups/members
* When a person subscribes to "all" groups, add them to every group designated as "mail only"
* Be more strict in length of subject when sending mails (wordpress doesn't catch db length issues, so it seems to be an error but one can't trace it back)
= 2.2.15 (2021/08/11) =
* Fix some placeholder matching that accidentally got too strict
= 2.2.14 (2021/08/10) =
* Fix #_DYNAMICFIELD{xx} placeholder for members and bookings
* Show person language and allow to change it
* Start supporting language tags under the form "{:ll}text{:}" (with ll a 2 or 3-letter language code) no matter which plugin is installed. Supports the "lang=ll" query param or the "/ll/" url notation
* Added a filter (eme_language_regex) to change the url language regex detection if done by EME itself and not ok
The default regex is '[a-z]{2,3}', matching 2 letter and 3 letter lannguage notations
This also influences the format of the language tags, so normally you don't need to change this
* Mass action added to update language for a number of people in one go
* Make sure members table gets created for new setups
= 2.2.13 (2021/07/31) =
* Added member placeholders #_PAYMENTGATEWAYUSED, #_TOTALDISCOUNT, #_APPLIEDDISCOUNTNAMES, #_DISCOUNTCODES_ENTERED, #_DISCOUNTCODES_VALID, #_DISCOUNTCODES_USED
* Show more discount/payment columns in member overview
* Added all zero-decimal currencies to the regular currency list
* Added filter eme_payment_gateways, which allows you to change the payment gateways array (and also thus change the order gateways are shown in the payment form)
* Stop supporting IE for the dynamic fields/price
* Pending members are removed based on creation date alone, not start/end date (if configured to do so in the membership)
* Fixed sql for members or people in dynamic groups (in the new style, everyone was included)
* Added cli_mail.php, to be able to pipe mail via php-call to this script to a defined EME group
To use this in e.g. postfix:
1) in /etc/postfix/transport, add your email you want to forward to the group and a custom postfix transport. E.g.:
mygroupemail@mydomain.com my-custom-transport:
2) After that, compile the file (postmap /etc/postfix/transport)
3) Define that custom transport in /etc/postfix/master.cf:
my-custom-transport unix - n n - - pipe