s2Member Framework (Member Roles, Capabilities, Membership, PayPal Members) - Version 130203

Version Description

= v130203 = New release. Please see changelog for important details.

Download this release

Release Info

Developer WebSharks
Plugin Icon 128x128 s2Member Framework (Member Roles, Capabilities, Membership, PayPal Members)
Version 130203
Comparing to
See all releases

Code changes from version 130123 to 130203

checksum.txt CHANGED
@@ -1 +1 @@
1
- 2e812841193a58035113e349bc6a37c2
1
+ 9534b2aa72a42b1e7fb419e45816f9d8
includes/classes/constants.inc.php CHANGED
@@ -40,8 +40,6 @@ if (!class_exists ("c_ws_plugin__s2member_constants"))
40
  * @attaches-to ``add_action("init");``
41
  *
42
  * @return null
43
- *
44
- * @todo See if it's possible to further optimize this routine?
45
  */
46
  public static function constants ()
47
  {
@@ -76,7 +74,7 @@ if (!class_exists ("c_ws_plugin__s2member_constants"))
76
  * ———— Shortcode & JavaScript Equivalents ————
77
  * ```
78
  * [s2Get constant="S2MEMBER_VERSION" /]
79
- *
80
  * <script type="text/javascript">
81
  * document.write(S2MEMBER_VERSION);
82
  * </script>
@@ -104,7 +102,7 @@ if (!class_exists ("c_ws_plugin__s2member_constants"))
104
  * ———— Shortcode & JavaScript Equivalents ————
105
  * ```
106
  * [s2Get constant="S2MEMBER_CURRENT_USER_LOGIN_COUNTER" /]
107
- *
108
  * <script type="text/javascript">
109
  * document.write(S2MEMBER_CURRENT_USER_LOGIN_COUNTER);
110
  * </script>
@@ -139,7 +137,7 @@ if (!class_exists ("c_ws_plugin__s2member_constants"))
139
  * [s2If constant(S2MEMBER_CURRENT_USER_IS_LOGGED_IN)]
140
  * You ARE logged-in.
141
  * [/s2If]
142
- *
143
  * <script type="text/javascript">
144
  * if(S2MEMBER_CURRENT_USER_IS_LOGGED_IN)
145
  * document.write('You ARE logged-in.');
@@ -175,7 +173,7 @@ if (!class_exists ("c_ws_plugin__s2member_constants"))
175
  * [s2If constant(S2MEMBER_CURRENT_USER_IS_LOGGED_IN_AS_MEMBER)]
176
  * You ARE logged in at Level #1 or higher.
177
  * [/s2If]
178
- *
179
  * <script type="text/javascript">
180
  * if(S2MEMBER_CURRENT_USER_IS_LOGGED_IN_AS_MEMBER)
181
  * document.write('You ARE logged in at Level #1 or higher.');
@@ -226,7 +224,7 @@ if (!class_exists ("c_ws_plugin__s2member_constants"))
226
  * ———— Shortcode & JavaScript Equivalents ————
227
  * ```
228
  * [s2Get constant="S2MEMBER_CURRENT_USER_ACCESS_LEVEL" /]
229
- *
230
  * <script type="text/javascript">
231
  * document.write(S2MEMBER_CURRENT_USER_ACCESS_LEVEL);
232
  * </script>
@@ -263,7 +261,7 @@ if (!class_exists ("c_ws_plugin__s2member_constants"))
263
  * ———— Shortcode & JavaScript Equivalents ————
264
  * ```
265
  * [s2Get constant="S2MEMBER_CURRENT_USER_ACCESS_LABEL" /]
266
- *
267
  * <script type="text/javascript">
268
  * document.write(S2MEMBER_CURRENT_USER_ACCESS_LABEL);
269
  * </script>
@@ -297,7 +295,7 @@ if (!class_exists ("c_ws_plugin__s2member_constants"))
297
  * ———— Shortcode & JavaScript Equivalents ————
298
  * ```
299
  * [s2Get constant="S2MEMBER_CURRENT_USER_SUBSCR_ID" /]
300
- *
301
  * <script type="text/javascript">
302
  * document.write(S2MEMBER_CURRENT_USER_SUBSCR_ID);
303
  * </script>
@@ -336,7 +334,7 @@ if (!class_exists ("c_ws_plugin__s2member_constants"))
336
  * ———— Shortcode & JavaScript Equivalents ————
337
  * ```
338
  * [s2Get constant="S2MEMBER_CURRENT_USER_SUBSCR_OR_WP_ID" /]
339
- *
340
  * <script type="text/javascript">
341
  * document.write(S2MEMBER_CURRENT_USER_SUBSCR_OR_WP_ID);
342
  * </script>
@@ -376,7 +374,7 @@ if (!class_exists ("c_ws_plugin__s2member_constants"))
376
  * ———— Shortcode & JavaScript Equivalents ————
377
  * ```
378
  * [s2Get constant="S2MEMBER_CURRENT_USER_SUBSCR_GATEWAY" /]
379
- *
380
  * <script type="text/javascript">
381
  * document.write(S2MEMBER_CURRENT_USER_SUBSCR_GATEWAY);
382
  * </script>
@@ -418,7 +416,7 @@ if (!class_exists ("c_ws_plugin__s2member_constants"))
418
  * ———— Shortcode & JavaScript Equivalents ————
419
  * ```
420
  * [s2Get constant="S2MEMBER_CURRENT_USER_CUSTOM" /]
421
- *
422
  * <script type="text/javascript">
423
  * document.write(S2MEMBER_CURRENT_USER_CUSTOM);
424
  * </script>
@@ -457,7 +455,7 @@ if (!class_exists ("c_ws_plugin__s2member_constants"))
457
  * ———— Shortcode & JavaScript Equivalents ————
458
  * ```
459
  * [s2Get constant="S2MEMBER_CURRENT_USER_REGISTRATION_TIME" /]
460
- *
461
  * <script type="text/javascript">
462
  * document.write(S2MEMBER_CURRENT_USER_REGISTRATION_TIME);
463
  * </script>
@@ -505,7 +503,7 @@ if (!class_exists ("c_ws_plugin__s2member_constants"))
505
  * ———— Shortcode & JavaScript Equivalents ————
506
  * ```
507
  * [s2Get constant="S2MEMBER_CURRENT_USER_PAID_REGISTRATION_TIME" /]
508
- *
509
  * <script type="text/javascript">
510
  * document.write(S2MEMBER_CURRENT_USER_PAID_REGISTRATION_TIME);
511
  * </script>
@@ -556,7 +554,7 @@ if (!class_exists ("c_ws_plugin__s2member_constants"))
556
  * ———— Shortcode & JavaScript Equivalents ————
557
  * ```
558
  * [s2Get constant="S2MEMBER_CURRENT_USER_PAID_REGISTRATION_DAYS" /]
559
- *
560
  * <script type="text/javascript">
561
  * document.write(S2MEMBER_CURRENT_USER_PAID_REGISTRATION_DAYS);
562
  * </script>
@@ -599,7 +597,7 @@ if (!class_exists ("c_ws_plugin__s2member_constants"))
599
  * ———— Shortcode & JavaScript Equivalents ————
600
  * ```
601
  * [s2Get constant="S2MEMBER_CURRENT_USER_REGISTRATION_DAYS" /]
602
- *
603
  * <script type="text/javascript">
604
  * document.write(S2MEMBER_CURRENT_USER_REGISTRATION_DAYS);
605
  * </script>
@@ -640,7 +638,7 @@ if (!class_exists ("c_ws_plugin__s2member_constants"))
640
  * ———— Shortcode & JavaScript Equivalents ————
641
  * ```
642
  * [s2Get constant="S2MEMBER_CURRENT_USER_DISPLAY_NAME" /]
643
- *
644
  * <script type="text/javascript">
645
  * document.write(S2MEMBER_CURRENT_USER_DISPLAY_NAME);
646
  * </script>
@@ -679,7 +677,7 @@ if (!class_exists ("c_ws_plugin__s2member_constants"))
679
  * ———— Shortcode & JavaScript Equivalents ————
680
  * ```
681
  * [s2Get constant="S2MEMBER_CURRENT_USER_FIRST_NAME" /]
682
- *
683
  * <script type="text/javascript">
684
  * document.write(S2MEMBER_CURRENT_USER_FIRST_NAME);
685
  * </script>
@@ -718,7 +716,7 @@ if (!class_exists ("c_ws_plugin__s2member_constants"))
718
  * ———— Shortcode & JavaScript Equivalents ————
719
  * ```
720
  * [s2Get constant="S2MEMBER_CURRENT_USER_LAST_NAME" /]
721
- *
722
  * <script type="text/javascript">
723
  * document.write(S2MEMBER_CURRENT_USER_LAST_NAME);
724
  * </script>
@@ -757,7 +755,7 @@ if (!class_exists ("c_ws_plugin__s2member_constants"))
757
  * ———— Shortcode & JavaScript Equivalents ————
758
  * ```
759
  * [s2Get constant="S2MEMBER_CURRENT_USER_LOGIN" /]
760
- *
761
  * <script type="text/javascript">
762
  * document.write(S2MEMBER_CURRENT_USER_LOGIN);
763
  * </script>
@@ -796,7 +794,7 @@ if (!class_exists ("c_ws_plugin__s2member_constants"))
796
  * ———— Shortcode & JavaScript Equivalents ————
797
  * ```
798
  * [s2Get constant="S2MEMBER_CURRENT_USER_EMAIL" /]
799
- *
800
  * <script type="text/javascript">
801
  * document.write(S2MEMBER_CURRENT_USER_EMAIL);
802
  * </script>
@@ -835,7 +833,7 @@ if (!class_exists ("c_ws_plugin__s2member_constants"))
835
  * ———— Shortcode & JavaScript Equivalents ————
836
  * ```
837
  * [s2Get constant="S2MEMBER_CURRENT_USER_IP" /]
838
- *
839
  * <script type="text/javascript">
840
  * document.write(S2MEMBER_CURRENT_USER_IP);
841
  * </script>
@@ -880,7 +878,7 @@ if (!class_exists ("c_ws_plugin__s2member_constants"))
880
  * ———— Shortcode & JavaScript Equivalents ————
881
  * ```
882
  * [s2Get constant="S2MEMBER_CURRENT_USER_REGISTRATION_IP" /]
883
- *
884
  * <script type="text/javascript">
885
  * document.write(S2MEMBER_CURRENT_USER_REGISTRATION_IP);
886
  * </script>
@@ -921,7 +919,7 @@ if (!class_exists ("c_ws_plugin__s2member_constants"))
921
  * ———— Shortcode & JavaScript Equivalents ————
922
  * ```
923
  * [s2Get constant="S2MEMBER_CURRENT_USER_ID" /]
924
- *
925
  * <script type="text/javascript">
926
  * document.write(S2MEMBER_CURRENT_USER_ID);
927
  * </script>
@@ -992,7 +990,7 @@ if (!class_exists ("c_ws_plugin__s2member_constants"))
992
  * [s2Get user_field="s2member_subscr_gateway" /]
993
  * [s2Get user_field="s2member_custom" /]
994
  * [s2Get user_field="my_custom_field_id" /]
995
- *
996
  * <script type="text/javascript">
997
  * document.write(S2MEMBER_CURRENT_USER_FIELDS.id);
998
  * document.write(S2MEMBER_CURRENT_USER_FIELDS.display_name);
@@ -1024,7 +1022,7 @@ if (!class_exists ("c_ws_plugin__s2member_constants"))
1024
  * ———— Shortcode & JavaScript Equivalents ————
1025
  * ```
1026
  * [s2Get constant="S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED" /]
1027
- *
1028
  * <script type="text/javascript">
1029
  * document.write(S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED);
1030
  * </script>
@@ -1077,7 +1075,7 @@ if (!class_exists ("c_ws_plugin__s2member_constants"))
1077
  * [s2If constant(S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_IS_UNLIMITED)]
1078
  * You have access to unlimited downloads.
1079
  * [/s2If]
1080
- *
1081
  * <script type="text/javascript">
1082
  * if(S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_IS_UNLIMITED)
1083
  * document.write('You have access to unlimited downloads.');
@@ -1122,7 +1120,7 @@ if (!class_exists ("c_ws_plugin__s2member_constants"))
1122
  * ———— Shortcode & JavaScript Equivalents ————
1123
  * ```
1124
  * [s2Get constant="S2MEMBER_CURRENT_USER_DOWNLOADS_CURRENTLY" /]
1125
- *
1126
  * <script type="text/javascript">
1127
  * document.write(S2MEMBER_CURRENT_USER_DOWNLOADS_CURRENTLY);
1128
  * </script>
@@ -1169,7 +1167,7 @@ if (!class_exists ("c_ws_plugin__s2member_constants"))
1169
  * ```
1170
  * You are allowed to download [s2Get constant="S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED" /] files, every [s2Get constant="S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_DAYS" /] days.
1171
  * You've downloaded [s2Get constant="S2MEMBER_CURRENT_USER_DOWNLOADS_CURRENTLY" /] files in the last [s2Get constant="S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_DAYS" /] days.
1172
- *
1173
  * You are allowed to download <script type="text/javascript">document.write(S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED);</script> files, every <script type="text/javascript">document.write(S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_DAYS);</script> days.
1174
  * You've downloaded <script type="text/javascript">document.write(S2MEMBER_CURRENT_USER_DOWNLOADS_CURRENTLY);</script> files in the last <script type="text/javascript">document.write(S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_DAYS);</script> days.
1175
  * ```
@@ -1212,7 +1210,7 @@ if (!class_exists ("c_ws_plugin__s2member_constants"))
1212
  * ———— Shortcode & JavaScript Equivalents ————
1213
  * ```
1214
  * [s2Get constant="S2MEMBER_FILE_DOWNLOAD_LIMIT_EXCEEDED_PAGE_ID" /]
1215
- *
1216
  * <script type="text/javascript">
1217
  * document.write(S2MEMBER_FILE_DOWNLOAD_LIMIT_EXCEEDED_PAGE_ID);
1218
  * </script>
@@ -1267,7 +1265,7 @@ if (!class_exists ("c_ws_plugin__s2member_constants"))
1267
  * ———— Shortcode & JavaScript Equivalents ————
1268
  * ```
1269
  * [s2Get constant="S2MEMBER_MEMBERSHIP_OPTIONS_PAGE_ID" /]
1270
- *
1271
  * <script type="text/javascript">
1272
  * document.write(S2MEMBER_MEMBERSHIP_OPTIONS_PAGE_ID);
1273
  * </script>
@@ -1307,7 +1305,7 @@ if (!class_exists ("c_ws_plugin__s2member_constants"))
1307
  * ———— Shortcode & JavaScript Equivalents ————
1308
  * ```
1309
  * [s2Get constant="S2MEMBER_LOGIN_WELCOME_PAGE_ID" /]
1310
- *
1311
  * <script type="text/javascript">
1312
  * document.write(S2MEMBER_LOGIN_WELCOME_PAGE_ID);
1313
  * </script>
@@ -1347,7 +1345,7 @@ if (!class_exists ("c_ws_plugin__s2member_constants"))
1347
  * ———— Shortcode & JavaScript Equivalents ————
1348
  * ```
1349
  * [s2Get constant="S2MEMBER_CURRENT_USER_PROFILE_MODIFICATION_PAGE_URL" /]
1350
- *
1351
  * <script type="text/javascript">
1352
  * document.write(S2MEMBER_CURRENT_USER_PROFILE_MODIFICATION_PAGE_URL);
1353
  * </script>
@@ -1386,7 +1384,7 @@ if (!class_exists ("c_ws_plugin__s2member_constants"))
1386
  * ———— Shortcode & JavaScript Equivalents ————
1387
  * ```
1388
  * [s2Get constant="S2MEMBER_FILE_DOWNLOAD_LIMIT_EXCEEDED_PAGE_URL" /]
1389
- *
1390
  * <script type="text/javascript">
1391
  * document.write(S2MEMBER_FILE_DOWNLOAD_LIMIT_EXCEEDED_PAGE_URL);
1392
  * </script>
@@ -1441,7 +1439,7 @@ if (!class_exists ("c_ws_plugin__s2member_constants"))
1441
  * ———— Shortcode & JavaScript Equivalents ————
1442
  * ```
1443
  * [s2Get constant="S2MEMBER_MEMBERSHIP_OPTIONS_PAGE_URL" /]
1444
- *
1445
  * <script type="text/javascript">
1446
  * document.write(S2MEMBER_MEMBERSHIP_OPTIONS_PAGE_URL);
1447
  * </script>
@@ -1481,7 +1479,7 @@ if (!class_exists ("c_ws_plugin__s2member_constants"))
1481
  * ———— Shortcode & JavaScript Equivalents ————
1482
  * ```
1483
  * [s2Get constant="S2MEMBER_LOGIN_WELCOME_PAGE_URL" /]
1484
- *
1485
  * <script type="text/javascript">
1486
  * document.write(S2MEMBER_LOGIN_WELCOME_PAGE_URL);
1487
  * </script>
@@ -1521,7 +1519,7 @@ if (!class_exists ("c_ws_plugin__s2member_constants"))
1521
  * ———— Shortcode & JavaScript Equivalents ————
1522
  * ```
1523
  * [s2Get constant="S2MEMBER_LOGOUT_PAGE_URL" /]
1524
- *
1525
  * <script type="text/javascript">
1526
  * document.write(S2MEMBER_LOGOUT_PAGE_URL);
1527
  * </script>
@@ -1561,7 +1559,7 @@ if (!class_exists ("c_ws_plugin__s2member_constants"))
1561
  * ———— Shortcode & JavaScript Equivalents ————
1562
  * ```
1563
  * [s2Get constant="S2MEMBER_LOGIN_PAGE_URL" /]
1564
- *
1565
  * <script type="text/javascript">
1566
  * document.write(S2MEMBER_LOGIN_PAGE_URL);
1567
  * </script>
@@ -1606,7 +1604,7 @@ if (!class_exists ("c_ws_plugin__s2member_constants"))
1606
  * ———— Shortcode & JavaScript Equivalents ————
1607
  * ```
1608
  * [s2Get constant="S2MEMBER_LEVEL0_LABEL" /]
1609
- *
1610
  * <script type="text/javascript">
1611
  * document.write(S2MEMBER_LEVEL0_LABEL);
1612
  * </script>
@@ -1651,7 +1649,7 @@ if (!class_exists ("c_ws_plugin__s2member_constants"))
1651
  * ———— Shortcode & JavaScript Equivalents ————
1652
  * ```
1653
  * [s2Get constant="S2MEMBER_LEVEL0_FILE_DOWNLOADS_ALLOWED" /]
1654
- *
1655
  * <script type="text/javascript">
1656
  * document.write(S2MEMBER_LEVEL0_FILE_DOWNLOADS_ALLOWED);
1657
  * </script>
@@ -1705,7 +1703,7 @@ if (!class_exists ("c_ws_plugin__s2member_constants"))
1705
  * ```
1706
  * At Level #1, Members are allowed to download [s2Get constant="S2MEMBER_LEVEL1_FILE_DOWNLOADS_ALLOWED" /] files, every [s2Get constant="S2MEMBER_LEVEL1_FILE_DOWNLOADS_ALLOWED_DAYS" /] days.
1707
  * You are currently at Membership Level #[s2Get constant="S2MEMBER_CURRENT_USER_ACCESS_LEVEL" /]. You've downloaded [s2Get constant="S2MEMBER_CURRENT_USER_DOWNLOADS_CURRENTLY" /] files in the last [s2Get constant="S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_DAYS" /] days.
1708
- *
1709
  * At Level #1, Members are allowed to download <script type="text/javascript">document.write(S2MEMBER_LEVEL1_FILE_DOWNLOADS_ALLOWED);</script> files, every <script type="text/javascript">document.write(S2MEMBER_LEVEL1_FILE_DOWNLOADS_ALLOWED_DAYS);</script> days.
1710
  * You are currently at Membership Level #<script type="text/javascript">document.write(S2MEMBER_CURRENT_USER_ACCESS_LEVEL);</script>. You've downloaded <script type="text/javascript">document.write(S2MEMBER_CURRENT_USER_DOWNLOADS_CURRENTLY);</script> files in the last <script type="text/javascript">document.write(S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_DAYS);</script> days.
1711
  * ```
@@ -1749,7 +1747,7 @@ if (!class_exists ("c_ws_plugin__s2member_constants"))
1749
  * ———— Shortcode & JavaScript Equivalents ————
1750
  * ```
1751
  * [s2Get constant="S2MEMBER_FILE_DOWNLOAD_INLINE_EXTENSIONS" /]
1752
- *
1753
  * <script type="text/javascript">
1754
  * document.write(S2MEMBER_FILE_DOWNLOAD_INLINE_EXTENSIONS);
1755
  * </script>
@@ -1790,7 +1788,7 @@ if (!class_exists ("c_ws_plugin__s2member_constants"))
1790
  * ———— Shortcode & JavaScript Equivalents ————
1791
  * ```
1792
  * [s2Get constant="S2MEMBER_REG_EMAIL_FROM_NAME" /]
1793
- *
1794
  * <script type="text/javascript">
1795
  * document.write(S2MEMBER_REG_EMAIL_FROM_NAME);
1796
  * </script>
@@ -1817,7 +1815,7 @@ if (!class_exists ("c_ws_plugin__s2member_constants"))
1817
  * ———— Shortcode & JavaScript Equivalents ————
1818
  * ```
1819
  * [s2Get constant="S2MEMBER_REG_EMAIL_FROM_EMAIL" /]
1820
- *
1821
  * <script type="text/javascript">
1822
  * document.write(S2MEMBER_REG_EMAIL_FROM_EMAIL);
1823
  * </script>
@@ -1844,7 +1842,7 @@ if (!class_exists ("c_ws_plugin__s2member_constants"))
1844
  * ———— Shortcode & JavaScript Equivalents ————
1845
  * ```
1846
  * [s2Get constant="S2MEMBER_PAYPAL_NOTIFY_URL" /]
1847
- *
1848
  * <script type="text/javascript">
1849
  * document.write(S2MEMBER_PAYPAL_NOTIFY_URL);
1850
  * </script>
@@ -1872,7 +1870,7 @@ if (!class_exists ("c_ws_plugin__s2member_constants"))
1872
  * ———— Shortcode & JavaScript Equivalents ————
1873
  * ```
1874
  * [s2Get constant="S2MEMBER_PAYPAL_RETURN_URL" /]
1875
- *
1876
  * <script type="text/javascript">
1877
  * document.write(S2MEMBER_PAYPAL_RETURN_URL);
1878
  * </script>
@@ -1900,7 +1898,7 @@ if (!class_exists ("c_ws_plugin__s2member_constants"))
1900
  * ———— Shortcode & JavaScript Equivalents ————
1901
  * ```
1902
  * [s2Get constant="S2MEMBER_PAYPAL_BUSINESS" /]
1903
- *
1904
  * <script type="text/javascript">
1905
  * document.write(S2MEMBER_PAYPAL_BUSINESS);
1906
  * </script>
@@ -1932,7 +1930,7 @@ if (!class_exists ("c_ws_plugin__s2member_constants"))
1932
  * ———— Shortcode & JavaScript Equivalents ————
1933
  * ```
1934
  * [s2Get constant="S2MEMBER_PAYPAL_ENDPOINT" /]
1935
- *
1936
  * <script type="text/javascript">
1937
  * document.write(S2MEMBER_PAYPAL_ENDPOINT);
1938
  * </script>
@@ -1962,7 +1960,7 @@ if (!class_exists ("c_ws_plugin__s2member_constants"))
1962
  * ———— Shortcode & JavaScript Equivalents ————
1963
  * ```
1964
  * [s2Get constant="S2MEMBER_PAYPAL_API_ENDPOINT" /]
1965
- *
1966
  * <script type="text/javascript">
1967
  * document.write(S2MEMBER_PAYPAL_API_ENDPOINT);
1968
  * </script>
@@ -1989,7 +1987,7 @@ if (!class_exists ("c_ws_plugin__s2member_constants"))
1989
  * ———— Shortcode & JavaScript Equivalents ————
1990
  * ```
1991
  * [s2Get constant="S2MEMBER_PAYPAL_API_USERNAME" /]
1992
- *
1993
  * NOTE: For security purposes,
1994
  * this API Constant is NOT available as a JavaScript Global.
1995
  * ```
@@ -2017,7 +2015,7 @@ if (!class_exists ("c_ws_plugin__s2member_constants"))
2017
  * ———— Shortcode & JavaScript Equivalents ————
2018
  * ```
2019
  * [s2Get constant="S2MEMBER_PAYPAL_API_PASSWORD" /]
2020
- *
2021
  * NOTE: For security purposes,
2022
  * this API Constant is NOT available as a JavaScript Global.
2023
  * ```
@@ -2045,7 +2043,7 @@ if (!class_exists ("c_ws_plugin__s2member_constants"))
2045
  * ———— Shortcode & JavaScript Equivalents ————
2046
  * ```
2047
  * [s2Get constant="S2MEMBER_PAYPAL_API_SIGNATURE" /]
2048
- *
2049
  * NOTE: For security purposes,
2050
  * this API Constant is NOT available as a JavaScript Global.
2051
  * ```
@@ -2073,7 +2071,7 @@ if (!class_exists ("c_ws_plugin__s2member_constants"))
2073
  * ———— Shortcode & JavaScript Equivalents ————
2074
  * ```
2075
  * [s2Get constant="S2MEMBER_PAYPAL_PDT_IDENTITY_TOKEN" /]
2076
- *
2077
  * NOTE: For security purposes,
2078
  * this API Constant is NOT available as a JavaScript Global.
2079
  * ```
@@ -2133,7 +2131,7 @@ if (!class_exists ("c_ws_plugin__s2member_constants"))
2133
  * ———— Shortcode & JavaScript Equivalents ————
2134
  * ```
2135
  * [s2Get constant="S2MEMBER_VALUE_FOR_PP_INV" /]
2136
- *
2137
  * <script type="text/javascript">
2138
  * document.write(S2MEMBER_VALUE_FOR_PP_INV);
2139
  * </script>
@@ -2191,7 +2189,7 @@ if (!class_exists ("c_ws_plugin__s2member_constants"))
2191
  * ———— Shortcode & JavaScript Equivalents ————
2192
  * ```
2193
  * [s2Get constant="S2MEMBER_CURRENT_USER_VALUE_FOR_PP_ON0" /]
2194
- *
2195
  * <script type="text/javascript">
2196
  * document.write(S2MEMBER_CURRENT_USER_VALUE_FOR_PP_ON0);
2197
  * </script>
@@ -2249,7 +2247,7 @@ if (!class_exists ("c_ws_plugin__s2member_constants"))
2249
  * ———— Shortcode & JavaScript Equivalents ————
2250
  * ```
2251
  * [s2Get constant="S2MEMBER_CURRENT_USER_VALUE_FOR_PP_OS0" /]
2252
- *
2253
  * <script type="text/javascript">
2254
  * document.write(S2MEMBER_CURRENT_USER_VALUE_FOR_PP_OS0);
2255
  * </script>
@@ -2304,7 +2302,7 @@ if (!class_exists ("c_ws_plugin__s2member_constants"))
2304
  * ———— Shortcode & JavaScript Equivalents ————
2305
  * ```
2306
  * [s2Get constant="S2MEMBER_CURRENT_USER_VALUE_FOR_PP_ON1" /]
2307
- *
2308
  * <script type="text/javascript">
2309
  * document.write(S2MEMBER_CURRENT_USER_VALUE_FOR_PP_ON1);
2310
  * </script>
@@ -2359,7 +2357,7 @@ if (!class_exists ("c_ws_plugin__s2member_constants"))
2359
  * ———— Shortcode & JavaScript Equivalents ————
2360
  * ```
2361
  * [s2Get constant="S2MEMBER_CURRENT_USER_VALUE_FOR_PP_OS1" /]
2362
- *
2363
  * <script type="text/javascript">
2364
  * document.write(S2MEMBER_CURRENT_USER_VALUE_FOR_PP_OS1);
2365
  * </script>
40
  * @attaches-to ``add_action("init");``
41
  *
42
  * @return null
 
 
43
  */
44
  public static function constants ()
45
  {
74
  * ———— Shortcode & JavaScript Equivalents ————
75
  * ```
76
  * [s2Get constant="S2MEMBER_VERSION" /]
77
+ *
78
  * <script type="text/javascript">
79
  * document.write(S2MEMBER_VERSION);
80
  * </script>
102
  * ———— Shortcode & JavaScript Equivalents ————
103
  * ```
104
  * [s2Get constant="S2MEMBER_CURRENT_USER_LOGIN_COUNTER" /]
105
+ *
106
  * <script type="text/javascript">
107
  * document.write(S2MEMBER_CURRENT_USER_LOGIN_COUNTER);
108
  * </script>
137
  * [s2If constant(S2MEMBER_CURRENT_USER_IS_LOGGED_IN)]
138
  * You ARE logged-in.
139
  * [/s2If]
140
+ *
141
  * <script type="text/javascript">
142
  * if(S2MEMBER_CURRENT_USER_IS_LOGGED_IN)
143
  * document.write('You ARE logged-in.');
173
  * [s2If constant(S2MEMBER_CURRENT_USER_IS_LOGGED_IN_AS_MEMBER)]
174
  * You ARE logged in at Level #1 or higher.
175
  * [/s2If]
176
+ *
177
  * <script type="text/javascript">
178
  * if(S2MEMBER_CURRENT_USER_IS_LOGGED_IN_AS_MEMBER)
179
  * document.write('You ARE logged in at Level #1 or higher.');
224
  * ———— Shortcode & JavaScript Equivalents ————
225
  * ```
226
  * [s2Get constant="S2MEMBER_CURRENT_USER_ACCESS_LEVEL" /]
227
+ *
228
  * <script type="text/javascript">
229
  * document.write(S2MEMBER_CURRENT_USER_ACCESS_LEVEL);
230
  * </script>
261
  * ———— Shortcode & JavaScript Equivalents ————
262
  * ```
263
  * [s2Get constant="S2MEMBER_CURRENT_USER_ACCESS_LABEL" /]
264
+ *
265
  * <script type="text/javascript">
266
  * document.write(S2MEMBER_CURRENT_USER_ACCESS_LABEL);
267
  * </script>
295
  * ———— Shortcode & JavaScript Equivalents ————
296
  * ```
297
  * [s2Get constant="S2MEMBER_CURRENT_USER_SUBSCR_ID" /]
298
+ *
299
  * <script type="text/javascript">
300
  * document.write(S2MEMBER_CURRENT_USER_SUBSCR_ID);
301
  * </script>
334
  * ———— Shortcode & JavaScript Equivalents ————
335
  * ```
336
  * [s2Get constant="S2MEMBER_CURRENT_USER_SUBSCR_OR_WP_ID" /]
337
+ *
338
  * <script type="text/javascript">
339
  * document.write(S2MEMBER_CURRENT_USER_SUBSCR_OR_WP_ID);
340
  * </script>
374
  * ———— Shortcode & JavaScript Equivalents ————
375
  * ```
376
  * [s2Get constant="S2MEMBER_CURRENT_USER_SUBSCR_GATEWAY" /]
377
+ *
378
  * <script type="text/javascript">
379
  * document.write(S2MEMBER_CURRENT_USER_SUBSCR_GATEWAY);
380
  * </script>
416
  * ———— Shortcode & JavaScript Equivalents ————
417
  * ```
418
  * [s2Get constant="S2MEMBER_CURRENT_USER_CUSTOM" /]
419
+ *
420
  * <script type="text/javascript">
421
  * document.write(S2MEMBER_CURRENT_USER_CUSTOM);
422
  * </script>
455
  * ———— Shortcode & JavaScript Equivalents ————
456
  * ```
457
  * [s2Get constant="S2MEMBER_CURRENT_USER_REGISTRATION_TIME" /]
458
+ *
459
  * <script type="text/javascript">
460
  * document.write(S2MEMBER_CURRENT_USER_REGISTRATION_TIME);
461
  * </script>
503
  * ———— Shortcode & JavaScript Equivalents ————
504
  * ```
505
  * [s2Get constant="S2MEMBER_CURRENT_USER_PAID_REGISTRATION_TIME" /]
506
+ *
507
  * <script type="text/javascript">
508
  * document.write(S2MEMBER_CURRENT_USER_PAID_REGISTRATION_TIME);
509
  * </script>
554
  * ———— Shortcode & JavaScript Equivalents ————
555
  * ```
556
  * [s2Get constant="S2MEMBER_CURRENT_USER_PAID_REGISTRATION_DAYS" /]
557
+ *
558
  * <script type="text/javascript">
559
  * document.write(S2MEMBER_CURRENT_USER_PAID_REGISTRATION_DAYS);
560
  * </script>
597
  * ———— Shortcode & JavaScript Equivalents ————
598
  * ```
599
  * [s2Get constant="S2MEMBER_CURRENT_USER_REGISTRATION_DAYS" /]
600
+ *
601
  * <script type="text/javascript">
602
  * document.write(S2MEMBER_CURRENT_USER_REGISTRATION_DAYS);
603
  * </script>
638
  * ———— Shortcode & JavaScript Equivalents ————
639
  * ```
640
  * [s2Get constant="S2MEMBER_CURRENT_USER_DISPLAY_NAME" /]
641
+ *
642
  * <script type="text/javascript">
643
  * document.write(S2MEMBER_CURRENT_USER_DISPLAY_NAME);
644
  * </script>
677
  * ———— Shortcode & JavaScript Equivalents ————
678
  * ```
679
  * [s2Get constant="S2MEMBER_CURRENT_USER_FIRST_NAME" /]
680
+ *
681
  * <script type="text/javascript">
682
  * document.write(S2MEMBER_CURRENT_USER_FIRST_NAME);
683
  * </script>
716
  * ———— Shortcode & JavaScript Equivalents ————
717
  * ```
718
  * [s2Get constant="S2MEMBER_CURRENT_USER_LAST_NAME" /]
719
+ *
720
  * <script type="text/javascript">
721
  * document.write(S2MEMBER_CURRENT_USER_LAST_NAME);
722
  * </script>
755
  * ———— Shortcode & JavaScript Equivalents ————
756
  * ```
757
  * [s2Get constant="S2MEMBER_CURRENT_USER_LOGIN" /]
758
+ *
759
  * <script type="text/javascript">
760
  * document.write(S2MEMBER_CURRENT_USER_LOGIN);
761
  * </script>
794
  * ———— Shortcode & JavaScript Equivalents ————
795
  * ```
796
  * [s2Get constant="S2MEMBER_CURRENT_USER_EMAIL" /]
797
+ *
798
  * <script type="text/javascript">
799
  * document.write(S2MEMBER_CURRENT_USER_EMAIL);
800
  * </script>
833
  * ———— Shortcode & JavaScript Equivalents ————
834
  * ```
835
  * [s2Get constant="S2MEMBER_CURRENT_USER_IP" /]
836
+ *
837
  * <script type="text/javascript">
838
  * document.write(S2MEMBER_CURRENT_USER_IP);
839
  * </script>
878
  * ———— Shortcode & JavaScript Equivalents ————
879
  * ```
880
  * [s2Get constant="S2MEMBER_CURRENT_USER_REGISTRATION_IP" /]
881
+ *
882
  * <script type="text/javascript">
883
  * document.write(S2MEMBER_CURRENT_USER_REGISTRATION_IP);
884
  * </script>
919
  * ———— Shortcode & JavaScript Equivalents ————
920
  * ```
921
  * [s2Get constant="S2MEMBER_CURRENT_USER_ID" /]
922
+ *
923
  * <script type="text/javascript">
924
  * document.write(S2MEMBER_CURRENT_USER_ID);
925
  * </script>
990
  * [s2Get user_field="s2member_subscr_gateway" /]
991
  * [s2Get user_field="s2member_custom" /]
992
  * [s2Get user_field="my_custom_field_id" /]
993
+ *
994
  * <script type="text/javascript">
995
  * document.write(S2MEMBER_CURRENT_USER_FIELDS.id);
996
  * document.write(S2MEMBER_CURRENT_USER_FIELDS.display_name);
1022
  * ———— Shortcode & JavaScript Equivalents ————
1023
  * ```
1024
  * [s2Get constant="S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED" /]
1025
+ *
1026
  * <script type="text/javascript">
1027
  * document.write(S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED);
1028
  * </script>
1075
  * [s2If constant(S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_IS_UNLIMITED)]
1076
  * You have access to unlimited downloads.
1077
  * [/s2If]
1078
+ *
1079
  * <script type="text/javascript">
1080
  * if(S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_IS_UNLIMITED)
1081
  * document.write('You have access to unlimited downloads.');
1120
  * ———— Shortcode & JavaScript Equivalents ————
1121
  * ```
1122
  * [s2Get constant="S2MEMBER_CURRENT_USER_DOWNLOADS_CURRENTLY" /]
1123
+ *
1124
  * <script type="text/javascript">
1125
  * document.write(S2MEMBER_CURRENT_USER_DOWNLOADS_CURRENTLY);
1126
  * </script>
1167
  * ```
1168
  * You are allowed to download [s2Get constant="S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED" /] files, every [s2Get constant="S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_DAYS" /] days.
1169
  * You've downloaded [s2Get constant="S2MEMBER_CURRENT_USER_DOWNLOADS_CURRENTLY" /] files in the last [s2Get constant="S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_DAYS" /] days.
1170
+ *
1171
  * You are allowed to download <script type="text/javascript">document.write(S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED);</script> files, every <script type="text/javascript">document.write(S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_DAYS);</script> days.
1172
  * You've downloaded <script type="text/javascript">document.write(S2MEMBER_CURRENT_USER_DOWNLOADS_CURRENTLY);</script> files in the last <script type="text/javascript">document.write(S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_DAYS);</script> days.
1173
  * ```
1210
  * ———— Shortcode & JavaScript Equivalents ————
1211
  * ```
1212
  * [s2Get constant="S2MEMBER_FILE_DOWNLOAD_LIMIT_EXCEEDED_PAGE_ID" /]
1213
+ *
1214
  * <script type="text/javascript">
1215
  * document.write(S2MEMBER_FILE_DOWNLOAD_LIMIT_EXCEEDED_PAGE_ID);
1216
  * </script>
1265
  * ———— Shortcode & JavaScript Equivalents ————
1266
  * ```
1267
  * [s2Get constant="S2MEMBER_MEMBERSHIP_OPTIONS_PAGE_ID" /]
1268
+ *
1269
  * <script type="text/javascript">
1270
  * document.write(S2MEMBER_MEMBERSHIP_OPTIONS_PAGE_ID);
1271
  * </script>
1305
  * ———— Shortcode & JavaScript Equivalents ————
1306
  * ```
1307
  * [s2Get constant="S2MEMBER_LOGIN_WELCOME_PAGE_ID" /]
1308
+ *
1309
  * <script type="text/javascript">
1310
  * document.write(S2MEMBER_LOGIN_WELCOME_PAGE_ID);
1311
  * </script>
1345
  * ———— Shortcode & JavaScript Equivalents ————
1346
  * ```
1347
  * [s2Get constant="S2MEMBER_CURRENT_USER_PROFILE_MODIFICATION_PAGE_URL" /]
1348
+ *
1349
  * <script type="text/javascript">
1350
  * document.write(S2MEMBER_CURRENT_USER_PROFILE_MODIFICATION_PAGE_URL);
1351
  * </script>
1384
  * ———— Shortcode & JavaScript Equivalents ————
1385
  * ```
1386
  * [s2Get constant="S2MEMBER_FILE_DOWNLOAD_LIMIT_EXCEEDED_PAGE_URL" /]
1387
+ *
1388
  * <script type="text/javascript">
1389
  * document.write(S2MEMBER_FILE_DOWNLOAD_LIMIT_EXCEEDED_PAGE_URL);
1390
  * </script>
1439
  * ———— Shortcode & JavaScript Equivalents ————
1440
  * ```
1441
  * [s2Get constant="S2MEMBER_MEMBERSHIP_OPTIONS_PAGE_URL" /]
1442
+ *
1443
  * <script type="text/javascript">
1444
  * document.write(S2MEMBER_MEMBERSHIP_OPTIONS_PAGE_URL);
1445
  * </script>
1479
  * ———— Shortcode & JavaScript Equivalents ————
1480
  * ```
1481
  * [s2Get constant="S2MEMBER_LOGIN_WELCOME_PAGE_URL" /]
1482
+ *
1483
  * <script type="text/javascript">
1484
  * document.write(S2MEMBER_LOGIN_WELCOME_PAGE_URL);
1485
  * </script>
1519
  * ———— Shortcode & JavaScript Equivalents ————
1520
  * ```
1521
  * [s2Get constant="S2MEMBER_LOGOUT_PAGE_URL" /]
1522
+ *
1523
  * <script type="text/javascript">
1524
  * document.write(S2MEMBER_LOGOUT_PAGE_URL);
1525
  * </script>
1559
  * ———— Shortcode & JavaScript Equivalents ————
1560
  * ```
1561
  * [s2Get constant="S2MEMBER_LOGIN_PAGE_URL" /]
1562
+ *
1563
  * <script type="text/javascript">
1564
  * document.write(S2MEMBER_LOGIN_PAGE_URL);
1565
  * </script>
1604
  * ———— Shortcode & JavaScript Equivalents ————
1605
  * ```
1606
  * [s2Get constant="S2MEMBER_LEVEL0_LABEL" /]
1607
+ *
1608
  * <script type="text/javascript">
1609
  * document.write(S2MEMBER_LEVEL0_LABEL);
1610
  * </script>
1649
  * ———— Shortcode & JavaScript Equivalents ————
1650
  * ```
1651
  * [s2Get constant="S2MEMBER_LEVEL0_FILE_DOWNLOADS_ALLOWED" /]
1652
+ *
1653
  * <script type="text/javascript">
1654
  * document.write(S2MEMBER_LEVEL0_FILE_DOWNLOADS_ALLOWED);
1655
  * </script>
1703
  * ```
1704
  * At Level #1, Members are allowed to download [s2Get constant="S2MEMBER_LEVEL1_FILE_DOWNLOADS_ALLOWED" /] files, every [s2Get constant="S2MEMBER_LEVEL1_FILE_DOWNLOADS_ALLOWED_DAYS" /] days.
1705
  * You are currently at Membership Level #[s2Get constant="S2MEMBER_CURRENT_USER_ACCESS_LEVEL" /]. You've downloaded [s2Get constant="S2MEMBER_CURRENT_USER_DOWNLOADS_CURRENTLY" /] files in the last [s2Get constant="S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_DAYS" /] days.
1706
+ *
1707
  * At Level #1, Members are allowed to download <script type="text/javascript">document.write(S2MEMBER_LEVEL1_FILE_DOWNLOADS_ALLOWED);</script> files, every <script type="text/javascript">document.write(S2MEMBER_LEVEL1_FILE_DOWNLOADS_ALLOWED_DAYS);</script> days.
1708
  * You are currently at Membership Level #<script type="text/javascript">document.write(S2MEMBER_CURRENT_USER_ACCESS_LEVEL);</script>. You've downloaded <script type="text/javascript">document.write(S2MEMBER_CURRENT_USER_DOWNLOADS_CURRENTLY);</script> files in the last <script type="text/javascript">document.write(S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_DAYS);</script> days.
1709
  * ```
1747
  * ———— Shortcode & JavaScript Equivalents ————
1748
  * ```
1749
  * [s2Get constant="S2MEMBER_FILE_DOWNLOAD_INLINE_EXTENSIONS" /]
1750
+ *
1751
  * <script type="text/javascript">
1752
  * document.write(S2MEMBER_FILE_DOWNLOAD_INLINE_EXTENSIONS);
1753
  * </script>
1788
  * ———— Shortcode & JavaScript Equivalents ————
1789
  * ```
1790
  * [s2Get constant="S2MEMBER_REG_EMAIL_FROM_NAME" /]
1791
+ *
1792
  * <script type="text/javascript">
1793
  * document.write(S2MEMBER_REG_EMAIL_FROM_NAME);
1794
  * </script>
1815
  * ———— Shortcode & JavaScript Equivalents ————
1816
  * ```
1817
  * [s2Get constant="S2MEMBER_REG_EMAIL_FROM_EMAIL" /]
1818
+ *
1819
  * <script type="text/javascript">
1820
  * document.write(S2MEMBER_REG_EMAIL_FROM_EMAIL);
1821
  * </script>
1842
  * ———— Shortcode & JavaScript Equivalents ————
1843
  * ```
1844
  * [s2Get constant="S2MEMBER_PAYPAL_NOTIFY_URL" /]
1845
+ *
1846
  * <script type="text/javascript">
1847
  * document.write(S2MEMBER_PAYPAL_NOTIFY_URL);
1848
  * </script>
1870
  * ———— Shortcode & JavaScript Equivalents ————
1871
  * ```
1872
  * [s2Get constant="S2MEMBER_PAYPAL_RETURN_URL" /]
1873
+ *
1874
  * <script type="text/javascript">
1875
  * document.write(S2MEMBER_PAYPAL_RETURN_URL);
1876
  * </script>
1898
  * ———— Shortcode & JavaScript Equivalents ————
1899
  * ```
1900
  * [s2Get constant="S2MEMBER_PAYPAL_BUSINESS" /]
1901
+ *
1902
  * <script type="text/javascript">
1903
  * document.write(S2MEMBER_PAYPAL_BUSINESS);
1904
  * </script>
1930
  * ———— Shortcode & JavaScript Equivalents ————
1931
  * ```
1932
  * [s2Get constant="S2MEMBER_PAYPAL_ENDPOINT" /]
1933
+ *
1934
  * <script type="text/javascript">
1935
  * document.write(S2MEMBER_PAYPAL_ENDPOINT);
1936
  * </script>
1960
  * ———— Shortcode & JavaScript Equivalents ————
1961
  * ```
1962
  * [s2Get constant="S2MEMBER_PAYPAL_API_ENDPOINT" /]
1963
+ *
1964
  * <script type="text/javascript">
1965
  * document.write(S2MEMBER_PAYPAL_API_ENDPOINT);
1966
  * </script>
1987
  * ———— Shortcode & JavaScript Equivalents ————
1988
  * ```
1989
  * [s2Get constant="S2MEMBER_PAYPAL_API_USERNAME" /]
1990
+ *
1991
  * NOTE: For security purposes,
1992
  * this API Constant is NOT available as a JavaScript Global.
1993
  * ```
2015
  * ———— Shortcode & JavaScript Equivalents ————
2016
  * ```
2017
  * [s2Get constant="S2MEMBER_PAYPAL_API_PASSWORD" /]
2018
+ *
2019
  * NOTE: For security purposes,
2020
  * this API Constant is NOT available as a JavaScript Global.
2021
  * ```
2043
  * ———— Shortcode & JavaScript Equivalents ————
2044
  * ```
2045
  * [s2Get constant="S2MEMBER_PAYPAL_API_SIGNATURE" /]
2046
+ *
2047
  * NOTE: For security purposes,
2048
  * this API Constant is NOT available as a JavaScript Global.
2049
  * ```
2071
  * ———— Shortcode & JavaScript Equivalents ————
2072
  * ```
2073
  * [s2Get constant="S2MEMBER_PAYPAL_PDT_IDENTITY_TOKEN" /]
2074
+ *
2075
  * NOTE: For security purposes,
2076
  * this API Constant is NOT available as a JavaScript Global.
2077
  * ```
2131
  * ———— Shortcode & JavaScript Equivalents ————
2132
  * ```
2133
  * [s2Get constant="S2MEMBER_VALUE_FOR_PP_INV" /]
2134
+ *
2135
  * <script type="text/javascript">
2136
  * document.write(S2MEMBER_VALUE_FOR_PP_INV);
2137
  * </script>
2189
  * ———— Shortcode & JavaScript Equivalents ————
2190
  * ```
2191
  * [s2Get constant="S2MEMBER_CURRENT_USER_VALUE_FOR_PP_ON0" /]
2192
+ *
2193
  * <script type="text/javascript">
2194
  * document.write(S2MEMBER_CURRENT_USER_VALUE_FOR_PP_ON0);
2195
  * </script>
2247
  * ———— Shortcode & JavaScript Equivalents ————
2248
  * ```
2249
  * [s2Get constant="S2MEMBER_CURRENT_USER_VALUE_FOR_PP_OS0" /]
2250
+ *
2251
  * <script type="text/javascript">
2252
  * document.write(S2MEMBER_CURRENT_USER_VALUE_FOR_PP_OS0);
2253
  * </script>
2302
  * ———— Shortcode & JavaScript Equivalents ————
2303
  * ```
2304
  * [s2Get constant="S2MEMBER_CURRENT_USER_VALUE_FOR_PP_ON1" /]
2305
+ *
2306
  * <script type="text/javascript">
2307
  * document.write(S2MEMBER_CURRENT_USER_VALUE_FOR_PP_ON1);
2308
  * </script>
2357
  * ———— Shortcode & JavaScript Equivalents ————
2358
  * ```
2359
  * [s2Get constant="S2MEMBER_CURRENT_USER_VALUE_FOR_PP_OS1" /]
2360
+ *
2361
  * <script type="text/javascript">
2362
  * document.write(S2MEMBER_CURRENT_USER_VALUE_FOR_PP_OS1);
2363
  * </script>
includes/classes/profile-mods-in.inc.php CHANGED
@@ -54,12 +54,11 @@ if (!class_exists ("c_ws_plugin__s2member_profile_mods_in"))
54
  /**/
55
  $_p = c_ws_plugin__s2member_utils_strings::trim_deep (stripslashes_deep ($_POST)); /* Clean ``$_POST`` vars. */
56
  /**/
57
- $userdata["ID"] = $user_id; /* Needed for database update. */
58
  /**/
59
  if (!empty ($_p["ws_plugin__s2member_profile_email"]))
60
- if (is_email ($_p["ws_plugin__s2member_profile_email"]))
61
- if (!email_exists ($_p["ws_plugin__s2member_profile_email"]))
62
- $userdata["user_email"] = $_p["ws_plugin__s2member_profile_email"];
63
  /**/
64
  if (!empty ($_p["ws_plugin__s2member_profile_password1"]))
65
  if ($user->user_login !== "demo") /* No pass change on demo! */
54
  /**/
55
  $_p = c_ws_plugin__s2member_utils_strings::trim_deep (stripslashes_deep ($_POST)); /* Clean ``$_POST`` vars. */
56
  /**/
57
+ $userdata["ID"] = /* Needed for database update. */ $user_id;
58
  /**/
59
  if (!empty ($_p["ws_plugin__s2member_profile_email"]))
60
+ if (is_email ($_p["ws_plugin__s2member_profile_email"]) && !email_exists ($_p["ws_plugin__s2member_profile_email"]))
61
+ $userdata["user_email"] = $_p["ws_plugin__s2member_profile_email"];
 
62
  /**/
63
  if (!empty ($_p["ws_plugin__s2member_profile_password1"]))
64
  if ($user->user_login !== "demo") /* No pass change on demo! */
includes/classes/registrations.inc.php CHANGED
@@ -708,12 +708,12 @@ if (!class_exists ("c_ws_plugin__s2member_registrations"))
708
  wp_update_user (array ("ID" => $user_id, "display_name" => $login));
709
  }
710
  /**/
711
- if (is_multisite ()) /* Should we handle Main Site permissions and Originating Blog ID#? */
712
  {
713
  if (!is_main_site () && strtotime ($user->user_registered) >= strtotime ("-10 seconds"))
714
- remove_user_from_blog ($user_id, $current_site->blog_id); /* No Main Site Role. */
715
  /**/
716
- if (!get_user_meta ($user_id, "s2member_originating_blog", true)) /* Recorded yet? */
717
  update_user_meta ($user_id, "s2member_originating_blog", $current_blog->blog_id);
718
  }
719
  /**/
708
  wp_update_user (array ("ID" => $user_id, "display_name" => $login));
709
  }
710
  /**/
711
+ if /* Should we handle Main Site permissions and Originating Blog ID#? */(is_multisite ())
712
  {
713
  if (!is_main_site () && strtotime ($user->user_registered) >= strtotime ("-10 seconds"))
714
+ remove_user_from_blog /* No Main Site Role. */($user_id, $current_site->blog_id);
715
  /**/
716
+ if /* Recorded yet? */(!get_user_meta ($user_id, "s2member_originating_blog", true))
717
  update_user_meta ($user_id, "s2member_originating_blog", $current_blog->blog_id);
718
  }
719
  /**/
includes/classes/roles-caps.inc.php CHANGED
@@ -34,9 +34,6 @@ if(!class_exists("c_ws_plugin__s2member_roles_caps"))
34
  * @since 110524RC
35
  *
36
  * @return null
37
- *
38
- * @todo Finalize support for unlimited Levels/Roles.
39
- * @todo Finalize support for independent Capabilities.
40
  */
41
  public static function config_roles()
42
  {
@@ -112,7 +109,7 @@ if(!class_exists("c_ws_plugin__s2member_roles_caps"))
112
  *
113
  * @package s2Member\Roles_Caps
114
  * @since 112512
115
- *
116
  * @attaches-to ``add_filter("bbp_get_caps_for_role");``
117
  *
118
  * @return array
34
  * @since 110524RC
35
  *
36
  * @return null
 
 
 
37
  */
38
  public static function config_roles()
39
  {
109
  *
110
  * @package s2Member\Roles_Caps
111
  * @since 112512
112
+ *
113
  * @attaches-to ``add_filter("bbp_get_caps_for_role");``
114
  *
115
  * @return array
includes/classes/users-list-in.inc.php CHANGED
@@ -389,14 +389,14 @@ if(!class_exists("c_ws_plugin__s2member_users_list_in"))
389
  */
390
  public static function users_list_update_cols($user_id = FALSE)
391
  {
392
- global $current_site, $current_blog; /* Multisite Networking. */
393
  /**/
394
  eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
395
  do_action("ws_plugin__s2member_before_users_list_update_cols", get_defined_vars());
396
- unset($__refs, $__v); /* Unset defined __refs, __v. */
397
  /**/
398
- $user = new WP_User($user_id); /* We need both of these objects. $user and $current_user. */
399
- $current_user = (is_user_logged_in()) ? wp_get_current_user() : false; /* Current User. */
400
  /**/
401
  if(is_object($user) && !empty($user->ID) && ($user_id = $user->ID) && is_object($current_user) && !empty($current_user->ID))
402
  {
@@ -404,7 +404,7 @@ if(!class_exists("c_ws_plugin__s2member_users_list_in"))
404
  {
405
  if(!empty($_POST) && is_array($_p = c_ws_plugin__s2member_utils_strings::trim_deep(stripslashes_deep($_POST))))
406
  {
407
- $old_user = unserialize(serialize($user)); /* Copy existing User obj. */
408
  $old_role = c_ws_plugin__s2member_user_access::user_access_role($old_user);
409
  /**/
410
  $role = /* Might be empty! */ (isset($_p["role"]) && $_p["role"] !== $old_role) ? $_p["role"] : $old_role;
@@ -452,7 +452,6 @@ if(!class_exists("c_ws_plugin__s2member_users_list_in"))
452
  if(strlen($ccap = trim(strtolower(preg_replace("/[^a-z_0-9]/i", "", $ccap)))))
453
  $user->add_cap("access_s2member_ccap_".$ccap);
454
  }
455
- /**/
456
  if($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_fields"])
457
  {
458
  foreach(json_decode($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_fields"], true) as $field)
@@ -460,44 +459,38 @@ if(!class_exists("c_ws_plugin__s2member_users_list_in"))
460
  $field_var = preg_replace("/[^a-z0-9]/i", "_", strtolower($field["id"]));
461
  $field_id_class = preg_replace("/_/", "-", $field_var);
462
  /**/
463
- if(isset($_p["ws_plugin__s2member_profile_".$field_var])) /* Field being set? */
464
  {
465
  if((is_array($_p["ws_plugin__s2member_profile_".$field_var]) && !empty($_p["ws_plugin__s2member_profile_".$field_var])) || (is_string($_p["ws_plugin__s2member_profile_".$field_var]) && strlen($_p["ws_plugin__s2member_profile_".$field_var])))
466
  $fields[$field_var] = $_p["ws_plugin__s2member_profile_".$field_var];
467
- else /* Else unset. */
468
- unset($fields[$field_var]);
469
  }
470
- else /* Else ``unset()``. */
471
- unset($fields[$field_var]);
472
  }
473
  }
474
- /**/
475
  if(!empty($fields))
476
  update_user_option($user_id, "s2member_custom_fields", $fields);
477
- else /* Else delete their Custom Fields? */
478
- delete_user_option($user_id, "s2member_custom_fields");
479
  /**/
480
- if($level > 0) /* We ONLY process this if they are higher than Level #0. */
481
  {
482
  $pr_times = get_user_option("s2member_paid_registration_times", $user_id);
483
  $pr_times["level"] = (empty($pr_times["level"])) ? time() : $pr_times["level"];
484
  $pr_times["level".$level] = (empty($pr_times["level".$level])) ? time() : $pr_times["level".$level];
485
  update_user_option($user_id, "s2member_paid_registration_times", $pr_times); /* Update now. */
486
  }
487
- /**/
488
- if(!empty($_p["ws_plugin__s2member_profile_opt_in"]) && !empty($role) && $level >= 0) /* Should we process List Servers? */
489
  c_ws_plugin__s2member_list_servers::process_list_servers($role, $level, $user->user_login, ((!empty($_p["pass1"])) ? $_p["pass1"] : ""), $user->user_email, $user->first_name, $user->last_name, false, true, true, $user_id);
490
  /**/
491
- if(!empty($_p["ws_plugin__s2member_profile_ip_restrictions"])) /* Delete/reset IP Restrictions? */
492
  c_ws_plugin__s2member_ip_restrictions::delete_reset_specific_ip_restrictions(strtolower($user->user_login));
493
  /**/
494
  eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
495
  do_action("ws_plugin__s2member_during_users_list_update_cols", get_defined_vars());
496
- unset($__refs, $__v); /* Unset defined __refs, __v. */
497
  }
498
  }
499
- /**/
500
- else if($current_user->ID === $user->ID) /* Otherwise, a User can always edit their own Profile. */
501
  {
502
  if(!empty($_POST) && is_array($_p = c_ws_plugin__s2member_utils_strings::trim_deep(stripslashes_deep($_POST))))
503
  {
@@ -532,31 +525,25 @@ if(!class_exists("c_ws_plugin__s2member_users_list_in"))
532
  {
533
  if((is_array($_p["ws_plugin__s2member_profile_".$field_var]) && !empty($_p["ws_plugin__s2member_profile_".$field_var])) || (is_string($_p["ws_plugin__s2member_profile_".$field_var]) && strlen($_p["ws_plugin__s2member_profile_".$field_var])))
534
  $fields[$field_var] = $_p["ws_plugin__s2member_profile_".$field_var];
535
- else /* Else ``unset()``. */
536
- unset($fields[$field_var]);
537
  }
538
- else /* Else ``unset()``. */
539
- unset($fields[$field_var]);
540
  }
541
- /**/
542
  if(!empty($fields))
543
  update_user_option($user_id, "s2member_custom_fields", $fields);
544
- else /* Else delete their Custom Fields? */
545
- delete_user_option($user_id, "s2member_custom_fields");
546
  }
547
- /**/
548
  eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
549
  do_action("ws_plugin__s2member_during_users_list_update_cols", get_defined_vars());
550
- unset($__refs, $__v); /* Unset defined __refs, __v. */
551
  }
552
  }
553
  }
554
- /**/
555
  eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
556
  do_action("ws_plugin__s2member_after_users_list_update_cols", get_defined_vars());
557
- unset($__refs, $__v); /* Unset defined __refs, __v. */
558
  /**/
559
- return; /* Return for uniformity. */
560
  }
561
  }
562
  }
389
  */
390
  public static function users_list_update_cols($user_id = FALSE)
391
  {
392
+ global /* Multisite Networking. */ $current_site, $current_blog;
393
  /**/
394
  eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
395
  do_action("ws_plugin__s2member_before_users_list_update_cols", get_defined_vars());
396
+ unset /* Unset defined __refs, __v. */($__refs, $__v);
397
  /**/
398
+ $user = /* We need both of these objects. $user and $current_user. */ new WP_User($user_id);
399
+ $current_user = /* Current User. */ (is_user_logged_in()) ? wp_get_current_user() : false;
400
  /**/
401
  if(is_object($user) && !empty($user->ID) && ($user_id = $user->ID) && is_object($current_user) && !empty($current_user->ID))
402
  {
404
  {
405
  if(!empty($_POST) && is_array($_p = c_ws_plugin__s2member_utils_strings::trim_deep(stripslashes_deep($_POST))))
406
  {
407
+ $old_user = /* Copy existing User obj. */ unserialize(serialize($user));
408
  $old_role = c_ws_plugin__s2member_user_access::user_access_role($old_user);
409
  /**/
410
  $role = /* Might be empty! */ (isset($_p["role"]) && $_p["role"] !== $old_role) ? $_p["role"] : $old_role;
452
  if(strlen($ccap = trim(strtolower(preg_replace("/[^a-z_0-9]/i", "", $ccap)))))
453
  $user->add_cap("access_s2member_ccap_".$ccap);
454
  }
 
455
  if($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_fields"])
456
  {
457
  foreach(json_decode($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_fields"], true) as $field)
459
  $field_var = preg_replace("/[^a-z0-9]/i", "_", strtolower($field["id"]));
460
  $field_id_class = preg_replace("/_/", "-", $field_var);
461
  /**/
462
+ if /* Field being set? */(isset($_p["ws_plugin__s2member_profile_".$field_var]))
463
  {
464
  if((is_array($_p["ws_plugin__s2member_profile_".$field_var]) && !empty($_p["ws_plugin__s2member_profile_".$field_var])) || (is_string($_p["ws_plugin__s2member_profile_".$field_var]) && strlen($_p["ws_plugin__s2member_profile_".$field_var])))
465
  $fields[$field_var] = $_p["ws_plugin__s2member_profile_".$field_var];
466
+ else unset($fields[$field_var]);
 
467
  }
468
+ else unset($fields[$field_var]);
 
469
  }
470
  }
 
471
  if(!empty($fields))
472
  update_user_option($user_id, "s2member_custom_fields", $fields);
473
+ else delete_user_option($user_id, "s2member_custom_fields");
 
474
  /**/
475
+ if /* We ONLY process this if they are higher than Level #0. */($level > 0)
476
  {
477
  $pr_times = get_user_option("s2member_paid_registration_times", $user_id);
478
  $pr_times["level"] = (empty($pr_times["level"])) ? time() : $pr_times["level"];
479
  $pr_times["level".$level] = (empty($pr_times["level".$level])) ? time() : $pr_times["level".$level];
480
  update_user_option($user_id, "s2member_paid_registration_times", $pr_times); /* Update now. */
481
  }
482
+ if /* Should we process List Servers? */(!empty($_p["ws_plugin__s2member_profile_opt_in"]) && !empty($role) && $level >= 0)
 
483
  c_ws_plugin__s2member_list_servers::process_list_servers($role, $level, $user->user_login, ((!empty($_p["pass1"])) ? $_p["pass1"] : ""), $user->user_email, $user->first_name, $user->last_name, false, true, true, $user_id);
484
  /**/
485
+ if /* Delete/reset IP Restrictions? */(!empty($_p["ws_plugin__s2member_profile_ip_restrictions"]))
486
  c_ws_plugin__s2member_ip_restrictions::delete_reset_specific_ip_restrictions(strtolower($user->user_login));
487
  /**/
488
  eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
489
  do_action("ws_plugin__s2member_during_users_list_update_cols", get_defined_vars());
490
+ unset /* Unset defined __refs, __v. */($__refs, $__v);
491
  }
492
  }
493
+ else if /* Otherwise, a User can always edit their own Profile. */($current_user->ID === $user->ID)
 
494
  {
495
  if(!empty($_POST) && is_array($_p = c_ws_plugin__s2member_utils_strings::trim_deep(stripslashes_deep($_POST))))
496
  {
525
  {
526
  if((is_array($_p["ws_plugin__s2member_profile_".$field_var]) && !empty($_p["ws_plugin__s2member_profile_".$field_var])) || (is_string($_p["ws_plugin__s2member_profile_".$field_var]) && strlen($_p["ws_plugin__s2member_profile_".$field_var])))
527
  $fields[$field_var] = $_p["ws_plugin__s2member_profile_".$field_var];
528
+ else unset($fields[$field_var]);
 
529
  }
530
+ else unset($fields[$field_var]);
 
531
  }
 
532
  if(!empty($fields))
533
  update_user_option($user_id, "s2member_custom_fields", $fields);
534
+ else delete_user_option($user_id, "s2member_custom_fields");
 
535
  }
 
536
  eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
537
  do_action("ws_plugin__s2member_during_users_list_update_cols", get_defined_vars());
538
+ unset /* Unset defined __refs, __v. */($__refs, $__v);
539
  }
540
  }
541
  }
 
542
  eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
543
  do_action("ws_plugin__s2member_after_users_list_update_cols", get_defined_vars());
544
+ unset /* Unset defined __refs, __v. */($__refs, $__v);
545
  /**/
546
+ return /* Return for uniformity. */;
547
  }
548
  }
549
  }
includes/hooks.inc.php CHANGED
@@ -54,12 +54,10 @@ add_action("pre_get_posts", "c_ws_plugin__s2member_security::security_gate_query
54
  /**/
55
  add_action("wp", "c_ws_plugin__s2member_ssl::check_force_ssl", 1);
56
  add_action("wp", "c_ws_plugin__s2member_security::security_gate", 1);
57
- /* Stay ahead of BuddyPress® at `3` on `wp in `bp-core-hooks.php`. */
58
- /* Set to `1` so other plugins may come between these. */
59
  /**/
60
  add_filter("wp_mail", "c_ws_plugin__s2member_email_configs::email_filter");
61
  /**/
62
- add_filter("widget_text", "do_shortcode"); /* Shortcodes in widgets. */
63
  /**/
64
  add_action("wp_print_styles", "c_ws_plugin__s2member_css_js_themes::add_css");
65
  add_action("wp_print_scripts", "c_ws_plugin__s2member_css_js_themes::add_js_w_globals");
54
  /**/
55
  add_action("wp", "c_ws_plugin__s2member_ssl::check_force_ssl", 1);
56
  add_action("wp", "c_ws_plugin__s2member_security::security_gate", 1);
 
 
57
  /**/
58
  add_filter("wp_mail", "c_ws_plugin__s2member_email_configs::email_filter");
59
  /**/
60
+ add_filter /* Shortcodes in widgets. */("widget_text", "do_shortcode");
61
  /**/
62
  add_action("wp_print_styles", "c_ws_plugin__s2member_css_js_themes::add_css");
63
  add_action("wp_print_scripts", "c_ws_plugin__s2member_css_js_themes::add_js_w_globals");
includes/templates/cfg-files/s2o-mu-plugins.php CHANGED
@@ -5,6 +5,22 @@ if (realpath (__FILE__) === realpath ($_SERVER["SCRIPT_FILENAME"]))
5
 
6
  /* s2Member-only mode. Only load (o)nly/(a)ll files. */
7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
  if (file_exists (WPMU_PLUGIN_DIR . "/s2member-o.php"))
9
  include_once WPMU_PLUGIN_DIR . "/s2member-o.php";
10
 
5
 
6
  /* s2Member-only mode. Only load (o)nly/(a)ll files. */
7
 
8
+ if (file_exists (WPMU_PLUGIN_DIR . "/s2member-o-hacks.php"))
9
+ include_once WPMU_PLUGIN_DIR . "/s2member-o-hacks.php";
10
+
11
+ else if (file_exists (WPMU_PLUGIN_DIR . "/s2-o-hacks.php"))
12
+ include_once WPMU_PLUGIN_DIR . "/s2-o-hacks.php";
13
+
14
+ /* -------------------------------------------------- */
15
+
16
+ if (file_exists (WPMU_PLUGIN_DIR . "/s2member-a-hacks.php"))
17
+ include_once WPMU_PLUGIN_DIR . "/s2member-a-hacks.php";
18
+
19
+ else if (file_exists (WPMU_PLUGIN_DIR . "/s2-a-hacks.php"))
20
+ include_once WPMU_PLUGIN_DIR . "/s2-a-hacks.php";
21
+
22
+ /* -------------------------------------------------- */
23
+
24
  if (file_exists (WPMU_PLUGIN_DIR . "/s2member-o.php"))
25
  include_once WPMU_PLUGIN_DIR . "/s2member-o.php";
26
 
includes/templates/players/jwplayer-v6-rtmp-only.php CHANGED
@@ -6,17 +6,22 @@ if (realpath (__FILE__) === realpath ($_SERVER["SCRIPT_FILENAME"]))
6
  <div id="%%player_id%%"></div>
7
  <script type="text/javascript" src="%%player_path%%"></script>
8
  <script type="text/javascript">
9
- jwplayer.key = '%%player_key%%', jwplayer('%%player_id%%').setup({
 
 
 
 
10
 
11
  playlist:
12
  [{
13
- /* List all available sources. */ sources:
 
 
14
  [
15
  {file: '%%streamer%%/%%prefix%%%%file%%'}
16
  ]
17
  }],
18
-
19
- image: '%%player_image%%',
20
  title: '%%player_title%%',
21
 
22
  controls: %%player_controls%%,
@@ -34,4 +39,5 @@ if (realpath (__FILE__) === realpath ($_SERVER["SCRIPT_FILENAME"]))
34
 
35
  %%player_option_blocks%%
36
  });
 
37
  </script>
6
  <div id="%%player_id%%"></div>
7
  <script type="text/javascript" src="%%player_path%%"></script>
8
  <script type="text/javascript">
9
+
10
+ if(typeof jwplayer.key !== 'string' || !jwplayer.key)
11
+ jwplayer.key = '%%player_key%%';
12
+
13
+ jwplayer('%%player_id%%').setup({
14
 
15
  playlist:
16
  [{
17
+ image: '%%player_image%%',
18
+
19
+ sources: // Available sources.
20
  [
21
  {file: '%%streamer%%/%%prefix%%%%file%%'}
22
  ]
23
  }],
24
+
 
25
  title: '%%player_title%%',
26
 
27
  controls: %%player_controls%%,
39
 
40
  %%player_option_blocks%%
41
  });
42
+
43
  </script>
includes/templates/players/jwplayer-v6-rtmp.php CHANGED
@@ -6,18 +6,23 @@ if (realpath (__FILE__) === realpath ($_SERVER["SCRIPT_FILENAME"]))
6
  <div id="%%player_id%%"></div>
7
  <script type="text/javascript" src="%%player_path%%"></script>
8
  <script type="text/javascript">
9
- jwplayer.key = '%%player_key%%', jwplayer('%%player_id%%').setup({
 
 
 
 
10
 
11
  playlist:
12
  [{
13
- /* List all available sources. */ sources:
 
 
14
  [
15
  {file: '%%streamer%%/%%prefix%%%%file%%'},
16
  {file: '%%url%%'}
17
  ]
18
  }],
19
 
20
- image: '%%player_image%%',
21
  title: '%%player_title%%',
22
 
23
  controls: %%player_controls%%,
@@ -35,4 +40,5 @@ if (realpath (__FILE__) === realpath ($_SERVER["SCRIPT_FILENAME"]))
35
 
36
  %%player_option_blocks%%
37
  });
 
38
  </script>
6
  <div id="%%player_id%%"></div>
7
  <script type="text/javascript" src="%%player_path%%"></script>
8
  <script type="text/javascript">
9
+
10
+ if(typeof jwplayer.key !== 'string' || !jwplayer.key)
11
+ jwplayer.key = '%%player_key%%';
12
+
13
+ jwplayer('%%player_id%%').setup({
14
 
15
  playlist:
16
  [{
17
+ image: '%%player_image%%',
18
+
19
+ sources: // Available sources.
20
  [
21
  {file: '%%streamer%%/%%prefix%%%%file%%'},
22
  {file: '%%url%%'}
23
  ]
24
  }],
25
 
 
26
  title: '%%player_title%%',
27
 
28
  controls: %%player_controls%%,
40
 
41
  %%player_option_blocks%%
42
  });
43
+
44
  </script>
includes/templates/players/jwplayer-v6.php CHANGED
@@ -6,17 +6,22 @@ if (realpath (__FILE__) === realpath ($_SERVER["SCRIPT_FILENAME"]))
6
  <div id="%%player_id%%"></div>
7
  <script type="text/javascript" src="%%player_path%%"></script>
8
  <script type="text/javascript">
9
- jwplayer.key = '%%player_key%%', jwplayer('%%player_id%%').setup({
 
 
 
 
10
 
11
  playlist:
12
  [{
13
- /* List all available sources. */ sources:
 
 
14
  [
15
  {file: '%%url%%'}
16
  ]
17
  }],
18
-
19
- image: '%%player_image%%',
20
  title: '%%player_title%%',
21
 
22
  controls: %%player_controls%%,
@@ -34,4 +39,5 @@ if (realpath (__FILE__) === realpath ($_SERVER["SCRIPT_FILENAME"]))
34
 
35
  %%player_option_blocks%%
36
  });
 
37
  </script>
6
  <div id="%%player_id%%"></div>
7
  <script type="text/javascript" src="%%player_path%%"></script>
8
  <script type="text/javascript">
9
+
10
+ if(typeof jwplayer.key !== 'string' || !jwplayer.key)
11
+ jwplayer.key = '%%player_key%%';
12
+
13
+ jwplayer('%%player_id%%').setup({
14
 
15
  playlist:
16
  [{
17
+ image: '%%player_image%%',
18
+
19
+ sources: // Available sources.
20
  [
21
  {file: '%%url%%'}
22
  ]
23
  }],
24
+
 
25
  title: '%%player_title%%',
26
 
27
  controls: %%player_controls%%,
39
 
40
  %%player_option_blocks%%
41
  });
42
+
43
  </script>
includes/translations/s2member.pot CHANGED
@@ -2,9 +2,9 @@
2
  # This file is distributed under the same license as the s2Member® Framework package.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: s2Member® Framework 130116\n"
6
- "Report-Msgid-Bugs-To: http://wordpress.org/tag/___s2member\n"
7
- "POT-Creation-Date: 2013-01-24 00:54:01+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
@@ -713,7 +713,7 @@ msgstr ""
713
 
714
  #: s2member/includes/classes/profile-in.inc.php:78
715
  #: s2member/includes/classes/sc-profile-in.inc.php:94
716
- #: s2member-pro/includes/classes/login-widget.inc.php:118
717
  msgctxt "s2member-front"
718
  msgid "Username"
719
  msgstr ""
@@ -766,9 +766,9 @@ msgctxt "s2member-front"
766
  msgid "Save All Changes"
767
  msgstr ""
768
 
 
769
  #: s2member/includes/classes/profile-mods-in.inc.php:133
770
  #: s2member/includes/classes/profile-mods-in.inc.php:134
771
- #: s2member/includes/classes/profile-mods-in.inc.php:135
772
  #: s2member/includes/classes/sc-profile-in.inc.php:70
773
  msgctxt "s2member-front"
774
  msgid "Profile updated successfully."
@@ -3725,57 +3725,57 @@ msgctxt "s2member-front"
3725
  msgid "<strong>No Subscr. ID.</strong> Please contact Support for assistance."
3726
  msgstr ""
3727
 
3728
- #: s2member-pro/includes/classes/login-widget.inc.php:123
3729
  msgctxt "s2member-front"
3730
  msgid "Password"
3731
  msgstr ""
3732
 
3733
- #: s2member-pro/includes/classes/login-widget.inc.php:129
3734
  msgctxt "s2member-front"
3735
  msgid "signup now"
3736
  msgstr ""
3737
 
3738
- #: s2member-pro/includes/classes/login-widget.inc.php:130
3739
  msgctxt "s2member-front"
3740
  msgid "forgot password?"
3741
  msgstr ""
3742
 
3743
- #: s2member-pro/includes/classes/login-widget.inc.php:134
3744
  msgctxt "s2member-front"
3745
  msgid "Remember Me"
3746
  msgstr ""
3747
 
3748
- #: s2member-pro/includes/classes/login-widget.inc.php:139
3749
  msgctxt "s2member-front"
3750
  msgid "Log Me In"
3751
  msgstr ""
3752
 
3753
- #: s2member-pro/includes/classes/login-widget.inc.php:190
3754
  msgctxt "s2member-front"
3755
  msgid "My Account"
3756
  msgstr ""
3757
 
3758
- #: s2member-pro/includes/classes/login-widget.inc.php:191
3759
  msgctxt "s2member-front"
3760
  msgid "Please disable popup blockers and try again!"
3761
  msgstr ""
3762
 
3763
- #: s2member-pro/includes/classes/login-widget.inc.php:191
3764
  msgctxt "s2member-front"
3765
  msgid "Edit My Profile"
3766
  msgstr ""
3767
 
3768
- #: s2member-pro/includes/classes/login-widget.inc.php:192
3769
  msgctxt "s2member-front"
3770
  msgid "Logout"
3771
  msgstr ""
3772
 
3773
- #: s2member-pro/includes/classes/login-widget.inc.php:311
3774
  msgctxt "s2member-front"
3775
  msgid "Membership Login"
3776
  msgstr ""
3777
 
3778
- #: s2member-pro/includes/classes/login-widget.inc.php:311
3779
  msgctxt "s2member-front"
3780
  msgid "My Profile Summary"
3781
  msgstr ""
2
  # This file is distributed under the same license as the s2Member® Framework package.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: s2Member® Framework 130123\n"
6
+ "Report-Msgid-Bugs-To: http://wordpress.org/tag/s2member\n"
7
+ "POT-Creation-Date: 2013-02-04 09:18:29+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
713
 
714
  #: s2member/includes/classes/profile-in.inc.php:78
715
  #: s2member/includes/classes/sc-profile-in.inc.php:94
716
+ #: s2member-pro/includes/classes/login-widget.inc.php:121
717
  msgctxt "s2member-front"
718
  msgid "Username"
719
  msgstr ""
766
  msgid "Save All Changes"
767
  msgstr ""
768
 
769
+ #: s2member/includes/classes/profile-mods-in.inc.php:132
770
  #: s2member/includes/classes/profile-mods-in.inc.php:133
771
  #: s2member/includes/classes/profile-mods-in.inc.php:134
 
772
  #: s2member/includes/classes/sc-profile-in.inc.php:70
773
  msgctxt "s2member-front"
774
  msgid "Profile updated successfully."
3725
  msgid "<strong>No Subscr. ID.</strong> Please contact Support for assistance."
3726
  msgstr ""
3727
 
3728
+ #: s2member-pro/includes/classes/login-widget.inc.php:126
3729
  msgctxt "s2member-front"
3730
  msgid "Password"
3731
  msgstr ""
3732
 
3733
+ #: s2member-pro/includes/classes/login-widget.inc.php:132
3734
  msgctxt "s2member-front"
3735
  msgid "signup now"
3736
  msgstr ""
3737
 
3738
+ #: s2member-pro/includes/classes/login-widget.inc.php:133
3739
  msgctxt "s2member-front"
3740
  msgid "forgot password?"
3741
  msgstr ""
3742
 
3743
+ #: s2member-pro/includes/classes/login-widget.inc.php:137
3744
  msgctxt "s2member-front"
3745
  msgid "Remember Me"
3746
  msgstr ""
3747
 
3748
+ #: s2member-pro/includes/classes/login-widget.inc.php:142
3749
  msgctxt "s2member-front"
3750
  msgid "Log Me In"
3751
  msgstr ""
3752
 
3753
+ #: s2member-pro/includes/classes/login-widget.inc.php:193
3754
  msgctxt "s2member-front"
3755
  msgid "My Account"
3756
  msgstr ""
3757
 
3758
+ #: s2member-pro/includes/classes/login-widget.inc.php:194
3759
  msgctxt "s2member-front"
3760
  msgid "Please disable popup blockers and try again!"
3761
  msgstr ""
3762
 
3763
+ #: s2member-pro/includes/classes/login-widget.inc.php:194
3764
  msgctxt "s2member-front"
3765
  msgid "Edit My Profile"
3766
  msgstr ""
3767
 
3768
+ #: s2member-pro/includes/classes/login-widget.inc.php:195
3769
  msgctxt "s2member-front"
3770
  msgid "Logout"
3771
  msgstr ""
3772
 
3773
+ #: s2member-pro/includes/classes/login-widget.inc.php:314
3774
  msgctxt "s2member-front"
3775
  msgid "Membership Login"
3776
  msgstr ""
3777
 
3778
+ #: s2member-pro/includes/classes/login-widget.inc.php:314
3779
  msgctxt "s2member-front"
3780
  msgid "My Profile Summary"
3781
  msgstr ""
readme.txt CHANGED
@@ -1,7 +1,7 @@
1
  === s2Member® Framework (Member Roles, Capabilities, Membership, PayPal Members) ===
2
 
3
- Version: 130123
4
- Stable tag: 130123
5
 
6
  SSL Compatible: yes
7
  bbPress® Compatible: yes
@@ -92,11 +92,21 @@ Please see [this FAQ entry](http://www.s2member.com/faqs/#s2-faqs-translations)
92
 
93
  == Upgrade Notice ==
94
 
95
- = v130123 =
96
- Maintenance release. Upgrade immediately.
97
 
98
  == Changelog ==
99
 
 
 
 
 
 
 
 
 
 
 
100
  = v130123 =
101
  * **(Maintenance Release) Upgrade immediately.**
102
  * (s2Member/s2Member Pro) **s2Stream Shortcode (Issue #78)** s2Member® now supports JW Player® license keys using Shortcode Attribute `player_key=""`. See [this KB article](http://www.s2member.com/kb/jwplayer-s2stream-shortcodes/) please. Also discussed in [this thread](http://www.s2member.com/forums/topic/new-jw-player-6-s2-video-audio-shortcodes/#post-38768).
1
  === s2Member® Framework (Member Roles, Capabilities, Membership, PayPal Members) ===
2
 
3
+ Version: 130203
4
+ Stable tag: 130203
5
 
6
  SSL Compatible: yes
7
  bbPress® Compatible: yes
92
 
93
  == Upgrade Notice ==
94
 
95
+ = v130203 =
96
+ New release. Please see changelog for important details.
97
 
98
  == Changelog ==
99
 
100
+ = v130203 =
101
+ * **(New Release) Please read this changelog for important details.**
102
+ * (s2Member Pro) **Remote Ops API (`create_user`)** s2Member® Pro's Remote Operations API, for the `create_user` Operation has been updated to support a new specification: `modify_if_login_exists`. For further details, please check your s2Member® Pro Dashboard here: `s2Member® -› API / Scripting -› Remote Operations API`.
103
+ * (s2Member Pro) **Remote Ops API (`modify_user`,`delete_user`)** s2Member® Pro's Remote Operations API has been updated to support two additional Operations: `update_user` and `delete_user`. For further details on these new Operations, please check your s2Member® Pro Dashboard here: `s2Member® -› API / Scripting -› Remote Operations API`.
104
+ * (s2Member Pro) **Remote Ops API (`init` hook priority)** s2Member® Pro's Remote Operations API has been updated to prevent conflicts when running in concert with BuddyPress v1.6.4+. Hook priority now running at default value of `11`, right after BuddyPress v1.6.4 at hook priority `10`.
105
+ * (s2Member/s2Member Pro) **s2Stream Shortcode (Issue #88)** s2Member® now supports JW Player® license keys (for the professional edition) using Shortcode Attribute `player_key=""` (or they can be specified sitewide via JavaScript provided by Longtail Video — optional). See [this discussion](http://www.s2member.com/forums/topic/jwplayer-shortcode-for-poster-not-working/#post-40435). See also: [this KB article](http://www.s2member.com/kb/jwplayer-s2stream-shortcodes/#using-s2stream-shortcodes).
106
+ * (s2Member/s2Member Pro) **s2Stream Shortcode (Issue #88)** Bug fix. The s2Stream Shortcode was not working properly (with respect to a specific Shortcode Attribute: `player_image=""`). Fixed in this release. See [this discussion](http://www.s2member.com/forums/topic/jwplayer-shortcode-for-poster-not-working/#post-40128). See also: [this KB article](http://www.s2member.com/kb/jwplayer-s2stream-shortcodes/#using-s2stream-shortcodes).
107
+ * (s2Member Pro) **User Exportation (Issue #89)** s2Member® Pro's User Exportation now includes separate data columns for each Custom Registration/Profile Field that you've configured with s2Member®. Also, s2Member® Pro will now include ALL Custom Registration/Profile Fields (even if there is no value associated with certain Fields, for specific Users/Members — e.g. empty column values will now be included by s2Member® Pro). This provides a more consistent/readable CSV export file; a major improvement. Discussed in [this KB article](http://www.s2member.com/kb/importing-updating-users/#custom-registration-profile-fields).
108
+ * (s2Member Pro) **User Importation (Issue #89)** s2Member® Pro's User/Member Import format changed in this release (with respect to Custom Registration/Profile Fields only). If you are importing Custom Registration/Profile Fields, please review [this KB article](http://www.s2member.com/kb/importing-updating-users/#custom-registration-profile-fields) before you import new Users/Members or mass update any existing Users/Members. ALSO NOTE: User/Member CSV Export Files generated by previous versions of s2Member® Pro (if they contained any Custom Registration/Profile Fields) will NOT be compatible with this latest release (e.g. you should NOT attempt to re-import those old files in an effort to mass update existing Users/Members). Please generate a new User/Member CSV Export File in the latest release of s2Member® Pro before attempting to edit and/or mass update existing Users/Members with applications like MS Excel or OpenOffice.
109
+
110
  = v130123 =
111
  * **(Maintenance Release) Upgrade immediately.**
112
  * (s2Member/s2Member Pro) **s2Stream Shortcode (Issue #78)** s2Member® now supports JW Player® license keys using Shortcode Attribute `player_key=""`. See [this KB article](http://www.s2member.com/kb/jwplayer-s2stream-shortcodes/) please. Also discussed in [this thread](http://www.s2member.com/forums/topic/new-jw-player-6-s2-video-audio-shortcodes/#post-38768).
s2member.php CHANGED
@@ -19,8 +19,8 @@
19
  */
20
  /* -- This section for WordPress® parsing. ------------------------------------------------------------------------------
21
 
22
- Version: 130123
23
- Stable tag: 130123
24
 
25
  SSL Compatible: yes
26
  bbPress® Compatible: yes
@@ -75,7 +75,7 @@ if(realpath(__FILE__) === realpath($_SERVER["SCRIPT_FILENAME"]))
75
  * @var str
76
  */
77
  if(!defined("WS_PLUGIN__S2MEMBER_VERSION"))
78
- define("WS_PLUGIN__S2MEMBER_VERSION", "130123" /* !#distro-version#! */);
79
  /**
80
  * Minimum PHP version required to run s2Member.
81
  *
@@ -105,7 +105,7 @@ if(!defined("WS_PLUGIN__S2MEMBER_MIN_WP_VERSION"))
105
  * @var str
106
  */
107
  if(!defined("WS_PLUGIN__S2MEMBER_MIN_PRO_VERSION"))
108
- define("WS_PLUGIN__S2MEMBER_MIN_PRO_VERSION", "130123" /* !#distro-version#! */);
109
  /*
110
  Several compatibility checks.
111
  If all pass, load the s2Member plugin.
19
  */
20
  /* -- This section for WordPress® parsing. ------------------------------------------------------------------------------
21
 
22
+ Version: 130203
23
+ Stable tag: 130203
24
 
25
  SSL Compatible: yes
26
  bbPress® Compatible: yes
75
  * @var str
76
  */
77
  if(!defined("WS_PLUGIN__S2MEMBER_VERSION"))
78
+ define("WS_PLUGIN__S2MEMBER_VERSION", "130203" /* !#distro-version#! */);
79
  /**
80
  * Minimum PHP version required to run s2Member.
81
  *
105
  * @var str
106
  */
107
  if(!defined("WS_PLUGIN__S2MEMBER_MIN_PRO_VERSION"))
108
+ define("WS_PLUGIN__S2MEMBER_MIN_PRO_VERSION", "130203" /* !#distro-version#! */);
109
  /*
110
  Several compatibility checks.
111
  If all pass, load the s2Member plugin.