WP User Frontend – Membership, Profile, Registration & Post Submission Plugin for WordPress - Version 3.1.6

Version Description

Download this release

Release Info

Developer rabbii
Plugin Icon 128x128 WP User Frontend – Membership, Profile, Registration & Post Submission Plugin for WordPress
Version 3.1.6
Comparing to
See all releases

Code changes from version 3.1.5 to 3.1.6

admin/form-builder/class-wpuf-admin-form-builder-ajax.php CHANGED
@@ -66,7 +66,7 @@ class WPUF_Admin_Form_Builder_Ajax {
66
 
67
  $form_fields = WPUF_Admin_Form_Builder::save_form( $data );
68
 
69
- wp_send_json_success( array( 'form_fields' => $form_fields ) );
70
  }
71
 
72
  }
66
 
67
  $form_fields = WPUF_Admin_Form_Builder::save_form( $data );
68
 
69
+ wp_send_json_success( array( 'form_fields' => $form_fields, 'form_settings' => $settings ) );
70
  }
71
 
72
  }
admin/form-builder/class-wpuf-admin-form-builder.php CHANGED
@@ -141,6 +141,7 @@ class WPUF_Admin_Form_Builder {
141
  'form_fields' => wpuf_get_form_fields( $post->ID ),
142
  'panel_sections' => wpuf()->fields->get_field_groups(),
143
  'field_settings' => wpuf()->fields->get_js_settings(),
 
144
  'notifications' => wpuf_get_form_notifications( $post->ID ),
145
  'pro_link' => WPUF_Pro_Prompt::get_pro_url(),
146
  'site_url' => site_url('/'),
141
  'form_fields' => wpuf_get_form_fields( $post->ID ),
142
  'panel_sections' => wpuf()->fields->get_field_groups(),
143
  'field_settings' => wpuf()->fields->get_js_settings(),
144
+ 'form_settings' => wpuf_get_form_settings( $post->ID ),
145
  'notifications' => wpuf_get_form_notifications( $post->ID ),
146
  'pro_link' => WPUF_Pro_Prompt::get_pro_url(),
147
  'site_url' => site_url('/'),
admin/html/support.php CHANGED
@@ -9,7 +9,7 @@ $articles = array(
9
  ),
10
  array(
11
  'title' => 'License Activation',
12
- 'link' => 'https://wedevs.com/docs/wp-user-frontend-pro/getting-started/license-activation/'
13
  ),
14
  array(
15
  'title' => 'Shortcodes',
9
  ),
10
  array(
11
  'title' => 'License Activation',
12
+ 'link' => 'https://wedevs.com/docs/wp-user-frontend-pro/troubleshoot/license-activation/'
13
  ),
14
  array(
15
  'title' => 'Shortcodes',
assets/css/admin.css CHANGED
@@ -634,6 +634,9 @@ ul.wpuf-form .wpuf-field-columns .wpuf-column-field-inner-columns .wpuf-column .
634
  background: transparent;
635
  border: 0;
636
  }
 
 
 
637
  .wpuf-help-tabbed {
638
  display: flex;
639
  width: 100%;
634
  background: transparent;
635
  border: 0;
636
  }
637
+ .wpuf-setup-menu-link {
638
+ display: none;
639
+ }
640
  .wpuf-help-tabbed {
641
  display: flex;
642
  width: 100%;
assets/css/frontend-forms.css CHANGED
@@ -28,6 +28,9 @@
28
  .wpufTableBody {
29
  display: table-row-group;
30
  }
 
 
 
31
  .wpuf-loading {
32
  width: 16px;
33
  height: 16px;
@@ -80,6 +83,14 @@
80
  border-radius: 3px;
81
  font-size: 13px;
82
  }
 
 
 
 
 
 
 
 
83
  .wpuf-info {
84
  background-color: #fef5be;
85
  border: 2px solid #fdd425;
@@ -296,6 +307,12 @@ ul.wpuf-form li .wpuf-fields .wpuf-name-field-wrap.format-first-last .wpuf-name-
296
  float: right;
297
  width: 48%;
298
  }
 
 
 
 
 
 
299
  ul.wpuf-form li .wpuf-fields .wpuf-name-field-wrap.format-first-middle-last .wpuf-name-field-first-name {
300
  float: left;
301
  width: 37%;
@@ -683,7 +700,10 @@ ul.wpuf-form:not(.form-label-left) .wpuf-submit .wpuf-label {
683
  .entry-content ul.wpuf_packs,
684
  ul.wpuf_packs {
685
  overflow: hidden;
686
- margin: 15px;
 
 
 
687
  }
688
  .entry-content ul.wpuf_packs > li,
689
  ul.wpuf_packs > li {
@@ -693,14 +713,28 @@ ul.wpuf_packs > li {
693
  border: 1px solid #DDD;
694
  border-radius: 5px 5px 5px 5px;
695
  list-style: none outside none;
696
- margin: 5px 25px 25px 0;
697
  position: relative;
698
  width: 200px;
699
  box-shadow: 0 2px 6px rgba(100, 100, 100, 0.3);
700
  }
701
- .entry-content ul.wpuf_packs > li:first-child,
702
- ul.wpuf_packs > li:first-child {
703
- margin-left: 5px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
704
  }
705
  .entry-content ul.wpuf_packs h3,
706
  ul.wpuf_packs h3 {
@@ -913,6 +947,11 @@ table.wpuf-table td {
913
  border-top: 1px solid #E7E7E7;
914
  padding: 6px 24px;
915
  }
 
 
 
 
 
916
  #wpuf-payment-gateway ul.wpuf-payment-gateways {
917
  list-style: none;
918
  margin: 10px 0;
@@ -1169,6 +1208,11 @@ body.rtl ul.wpuf-form li .wpuf-label {
1169
  font-weight: 700;
1170
  border: 0;
1171
  }
 
 
 
 
 
1172
  .wpuf-dashboard-container .wpuf-dashboard-navigation {
1173
  width: 30%;
1174
  float: left;
@@ -1179,15 +1223,61 @@ body.rtl ul.wpuf-form li .wpuf-label {
1179
  }
1180
  .wpuf-dashboard-container .wpuf-dashboard-navigation ul {
1181
  list-style: none;
 
 
1182
  }
1183
  .wpuf-dashboard-container .wpuf-dashboard-navigation ul li {
1184
  padding-bottom: 2px;
1185
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
1186
  .wpuf-dashboard-container .wpuf-dashboard-content {
1187
  width: 68%;
1188
  float: right;
1189
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1190
  .wpuf-dashboard-container table.items-table {
 
1191
  border: 0;
1192
  }
1193
  .wpuf-dashboard-container table.items-table a {
@@ -1200,21 +1290,35 @@ body.rtl ul.wpuf-form li .wpuf-label {
1200
  padding: 10px;
1201
  }
1202
  .wpuf-dashboard-container table.items-table tr {
 
1203
  outline: 1px solid #f1f1f1;
1204
  }
1205
  .wpuf-dashboard-container table.items-table .items-list-header {
1206
  background-color: #f1f1f1;
1207
  }
1208
- .wpuf-dashboard-container .wpuf-update-profile-form .form-row-first {
 
 
 
 
1209
  float: left;
1210
- width: 47%;
 
1211
  overflow: visible;
1212
  }
1213
- .wpuf-dashboard-container .wpuf-update-profile-form .form-row-last {
1214
  float: right;
1215
- width: 43%;
 
1216
  overflow: visible;
1217
  }
 
 
 
 
 
 
 
1218
  .wpuf-wcmp-integration-content .wpuf-dashboard-container .page-head {
1219
  opacity: 0;
1220
  margin-bottom: 40px;
@@ -1339,7 +1443,7 @@ li.wpuf-image-wrap.thumbnail .caption {
1339
  li.wpuf-image-wrap.thumbnail:hover .caption {
1340
  display: block;
1341
  }
1342
- @media (min-width: 480px) {
1343
  .wpuf-pay-row {
1344
  width: 100%;
1345
  display: table;
28
  .wpufTableBody {
29
  display: table-row-group;
30
  }
31
+ .wpuf-menu-item.active a {
32
+ color: #040202;
33
+ }
34
  .wpuf-loading {
35
  width: 16px;
36
  height: 16px;
83
  border-radius: 3px;
84
  font-size: 13px;
85
  }
86
+ #wpuf-private-message .chat-box {
87
+ margin-bottom: 30px;
88
+ }
89
+ #wpuf-private-message .write-area {
90
+ width: 100%;
91
+ border-radius: 4px;
92
+ margin-bottom: 10px;
93
+ }
94
  .wpuf-info {
95
  background-color: #fef5be;
96
  border: 2px solid #fdd425;
307
  float: right;
308
  width: 48%;
309
  }
310
+ @media (max-width: 767px) {
311
+ ul.wpuf-form li .wpuf-fields .wpuf-name-field-wrap.format-first-last .wpuf-name-field-last-name,
312
+ ul.wpuf-form li .wpuf-fields .wpuf-name-field-wrap.format-first-last .wpuf-name-field-first-name {
313
+ width: 100%;
314
+ }
315
+ }
316
  ul.wpuf-form li .wpuf-fields .wpuf-name-field-wrap.format-first-middle-last .wpuf-name-field-first-name {
317
  float: left;
318
  width: 37%;
700
  .entry-content ul.wpuf_packs,
701
  ul.wpuf_packs {
702
  overflow: hidden;
703
+ margin: 15px 0;
704
+ max-width: initial;
705
+ width: 100%;
706
+ padding-left: 0;
707
  }
708
  .entry-content ul.wpuf_packs > li,
709
  ul.wpuf_packs > li {
713
  border: 1px solid #DDD;
714
  border-radius: 5px 5px 5px 5px;
715
  list-style: none outside none;
716
+ margin: 0 25px 25px 0;
717
  position: relative;
718
  width: 200px;
719
  box-shadow: 0 2px 6px rgba(100, 100, 100, 0.3);
720
  }
721
+ @media (max-width: 991px) {
722
+ .entry-content ul.wpuf_packs,
723
+ ul.wpuf_packs {
724
+ text-align: center;
725
+ padding-left: 25px;
726
+ }
727
+ }
728
+ @media (max-width: 500px) {
729
+ .entry-content ul.wpuf_packs,
730
+ ul.wpuf_packs {
731
+ padding-left: 0;
732
+ }
733
+ .entry-content ul.wpuf_packs > li,
734
+ ul.wpuf_packs > li {
735
+ width: 100%;
736
+ margin-left: 0;
737
+ }
738
  }
739
  .entry-content ul.wpuf_packs h3,
740
  ul.wpuf_packs h3 {
947
  border-top: 1px solid #E7E7E7;
948
  padding: 6px 24px;
949
  }
950
+ @media (max-width: 549px) {
951
+ #wpuf-payment-gateway {
952
+ margin-left: -15px;
953
+ }
954
+ }
955
  #wpuf-payment-gateway ul.wpuf-payment-gateways {
956
  list-style: none;
957
  margin: 10px 0;
1208
  font-weight: 700;
1209
  border: 0;
1210
  }
1211
+ .wpuf-dashboard-container:after {
1212
+ clear: both;
1213
+ content: "";
1214
+ display: table;
1215
+ }
1216
  .wpuf-dashboard-container .wpuf-dashboard-navigation {
1217
  width: 30%;
1218
  float: left;
1223
  }
1224
  .wpuf-dashboard-container .wpuf-dashboard-navigation ul {
1225
  list-style: none;
1226
+ margin: 0;
1227
+ padding: 0;
1228
  }
1229
  .wpuf-dashboard-container .wpuf-dashboard-navigation ul li {
1230
  padding-bottom: 2px;
1231
  }
1232
+ @media (max-width: 991px) {
1233
+ .wpuf-dashboard-container .wpuf-dashboard-navigation {
1234
+ width: 100%;
1235
+ margin-bottom: 30px;
1236
+ }
1237
+ .wpuf-dashboard-container .wpuf-dashboard-navigation ul {
1238
+ margin: 0 -7px;
1239
+ }
1240
+ .wpuf-dashboard-container .wpuf-dashboard-navigation ul li {
1241
+ margin: 0 7px;
1242
+ display: inline-block;
1243
+ }
1244
+ }
1245
  .wpuf-dashboard-container .wpuf-dashboard-content {
1246
  width: 68%;
1247
  float: right;
1248
  }
1249
+ @media (max-width: 991px) {
1250
+ .wpuf-dashboard-container .wpuf-dashboard-content {
1251
+ width: 100%;
1252
+ }
1253
+ }
1254
+ .wpuf-dashboard-container .wpuf-dashboard-content .wpuf-fields select:not([type="submit"]),
1255
+ .wpuf-dashboard-container .wpuf-dashboard-content .wpuf-fields textarea:not([type="submit"]),
1256
+ .wpuf-dashboard-container .wpuf-dashboard-content .wpuf-fields input:not([type="submit"]),
1257
+ .wpuf-dashboard-container .wpuf-dashboard-content .wpuf-fields select:not([type="button"]),
1258
+ .wpuf-dashboard-container .wpuf-dashboard-content .wpuf-fields textarea:not([type="button"]),
1259
+ .wpuf-dashboard-container .wpuf-dashboard-content .wpuf-fields input:not([type="button"]),
1260
+ .wpuf-dashboard-container .wpuf-dashboard-content .wpuf-fields select:not([type="checkbox"]),
1261
+ .wpuf-dashboard-container .wpuf-dashboard-content .wpuf-fields textarea:not([type="checkbox"]),
1262
+ .wpuf-dashboard-container .wpuf-dashboard-content .wpuf-fields input:not([type="checkbox"]),
1263
+ .wpuf-dashboard-container .wpuf-dashboard-content .wpuf-fields select:not([type="radio"]),
1264
+ .wpuf-dashboard-container .wpuf-dashboard-content .wpuf-fields textarea:not([type="radio"]),
1265
+ .wpuf-dashboard-container .wpuf-dashboard-content .wpuf-fields input:not([type="radio"]),
1266
+ .wpuf-dashboard-container .wpuf-dashboard-content .wpuf-fields select:not([type="file"]),
1267
+ .wpuf-dashboard-container .wpuf-dashboard-content .wpuf-fields textarea:not([type="file"]),
1268
+ .wpuf-dashboard-container .wpuf-dashboard-content .wpuf-fields input:not([type="file"]),
1269
+ .wpuf-dashboard-container .wpuf-dashboard-content .wpuf-fields select:not([type="reset"]),
1270
+ .wpuf-dashboard-container .wpuf-dashboard-content .wpuf-fields textarea:not([type="reset"]),
1271
+ .wpuf-dashboard-container .wpuf-dashboard-content .wpuf-fields input:not([type="reset"]) {
1272
+ width: 100%;
1273
+ }
1274
+ .wpuf-dashboard-container .items-table-container,
1275
+ .wpuf-dashboard-container .wpuf-dashboard-content.invoices {
1276
+ max-width: 100%;
1277
+ overflow-y: auto;
1278
+ }
1279
  .wpuf-dashboard-container table.items-table {
1280
+ min-width: 600px;
1281
  border: 0;
1282
  }
1283
  .wpuf-dashboard-container table.items-table a {
1290
  padding: 10px;
1291
  }
1292
  .wpuf-dashboard-container table.items-table tr {
1293
+ text-align: left;
1294
  outline: 1px solid #f1f1f1;
1295
  }
1296
  .wpuf-dashboard-container table.items-table .items-list-header {
1297
  background-color: #f1f1f1;
1298
  }
1299
+ .wpuf-dashboard-container .wpuf-update-profile-form ul.wpuf-form {
1300
+ margin: 0 -15px !important;
1301
+ width: inherit;
1302
+ }
1303
+ .wpuf-dashboard-container .wpuf-update-profile-form ul.wpuf-form .form-row-first {
1304
  float: left;
1305
+ width: 50%;
1306
+ padding: 0 15px;
1307
  overflow: visible;
1308
  }
1309
+ .wpuf-dashboard-container .wpuf-update-profile-form ul.wpuf-form .form-row-last {
1310
  float: right;
1311
+ width: 50%;
1312
+ padding: 0 15px;
1313
  overflow: visible;
1314
  }
1315
+ @media (max-width: 767px) {
1316
+ .wpuf-dashboard-container .wpuf-update-profile-form ul.wpuf-form .form-row-first,
1317
+ .wpuf-dashboard-container .wpuf-update-profile-form ul.wpuf-form .form-row-last {
1318
+ float: none;
1319
+ width: 100%;
1320
+ }
1321
+ }
1322
  .wpuf-wcmp-integration-content .wpuf-dashboard-container .page-head {
1323
  opacity: 0;
1324
  margin-bottom: 40px;
1443
  li.wpuf-image-wrap.thumbnail:hover .caption {
1444
  display: block;
1445
  }
1446
+ @media (min-width: 550px) {
1447
  .wpuf-pay-row {
1448
  width: 100%;
1449
  display: table;
assets/js/wpuf-form-builder.js CHANGED
@@ -40,6 +40,7 @@
40
  panel_sections: wpuf_form_builder.panel_sections,
41
  field_settings: wpuf_form_builder.field_settings,
42
  notifications: wpuf_form_builder.notifications,
 
43
  current_panel: 'form-fields',
44
  editing_field_id: 0, // editing form field id
45
  },
@@ -49,6 +50,10 @@
49
  Vue.set(state, 'form_fields', form_fields);
50
  },
51
 
 
 
 
 
52
  // set the current panel
53
  set_current_panel: function (state, panel) {
54
  if ('field-options' !== state.current_panel &&
@@ -363,6 +368,10 @@
363
 
364
  notifications: function() {
365
  return this.$store.state.notifications;
 
 
 
 
366
  }
367
  },
368
 
@@ -480,6 +489,10 @@
480
  self.$store.commit('set_form_fields', response.form_fields);
481
  }
482
 
 
 
 
 
483
  self.is_form_saving = false;
484
  self.is_form_saved = true;
485
 
40
  panel_sections: wpuf_form_builder.panel_sections,
41
  field_settings: wpuf_form_builder.field_settings,
42
  notifications: wpuf_form_builder.notifications,
43
+ settings: wpuf_form_builder.form_settings,
44
  current_panel: 'form-fields',
45
  editing_field_id: 0, // editing form field id
46
  },
50
  Vue.set(state, 'form_fields', form_fields);
51
  },
52
 
53
+ set_form_settings: function (state, value) {
54
+ Vue.set(state, 'settings', value);
55
+ },
56
+
57
  // set the current panel
58
  set_current_panel: function (state, panel) {
59
  if ('field-options' !== state.current_panel &&
368
 
369
  notifications: function() {
370
  return this.$store.state.notifications;
371
+ },
372
+
373
+ settings: function() {
374
+ return this.$store.state.settings;
375
  }
376
  },
377
 
489
  self.$store.commit('set_form_fields', response.form_fields);
490
  }
491
 
492
+ if (response.form_settings) {
493
+ self.$store.commit('set_form_settings', response.form_settings);
494
+ }
495
+
496
  self.is_form_saving = false;
497
  self.is_form_saved = true;
498
 
assets/less/admin.less CHANGED
@@ -827,6 +827,10 @@ ul.wpuf-form{
827
  border: 0;
828
  }
829
 
 
 
 
 
830
  @import "help.less";
831
  @import "whats-new.less";
832
  @import "metabox-tabs.less";
827
  border: 0;
828
  }
829
 
830
+ .wpuf-setup-menu-link{
831
+ display: none;
832
+ }
833
+
834
  @import "help.less";
835
  @import "whats-new.less";
836
  @import "metabox-tabs.less";
assets/less/frontend-forms.less CHANGED
@@ -1,5 +1,8 @@
1
  @borderColor: #eee;
2
  @mainColor: #64C3DE;
 
 
 
3
 
4
  /* DivTable.com */
5
  .wpufTable{
@@ -31,6 +34,10 @@
31
  display: table-row-group;
32
  }
33
 
 
 
 
 
34
  .clearfix() {
35
  &:after {
36
  clear: both;
@@ -53,9 +60,9 @@
53
  color: #fff;
54
  text-decoration: none;
55
  text-shadow: 0 -1px 1px #006799,
56
- 1px 0 1px #006799,
57
- 0 1px 1px #006799,
58
- -1px 0 1px #006799;
59
  }
60
 
61
  .core-button-hover() {
@@ -118,6 +125,17 @@
118
  font-size: 13px;
119
  }
120
 
 
 
 
 
 
 
 
 
 
 
 
121
  .wpuf-info {
122
  background-color: #fef5be;
123
  border: 2px solid #fdd425;
@@ -335,6 +353,12 @@ ul.wpuf-form {
335
  float: right;
336
  width: 48%;
337
  }
 
 
 
 
 
 
338
  }
339
 
340
  &.format-first-middle-last {
@@ -799,14 +823,17 @@ ul.wpuf-form {
799
 
800
  .wpuf-copon-cancel {
801
  text-decoration: none;
802
- font-size: 11px;
803
  }
804
  }
805
 
806
  .entry-content ul.wpuf_packs,
807
  ul.wpuf_packs {
808
  overflow: hidden;
809
- margin: 15px;
 
 
 
810
 
811
  > li {
812
  background: #fff;
@@ -815,13 +842,20 @@ ul.wpuf_packs {
815
  border: 1px solid #DDD;
816
  border-radius: 5px 5px 5px 5px;
817
  list-style: none outside none;
818
- margin: 5px 25px 25px 0;
819
  position: relative;
820
  width: 200px;
821
  box-shadow: 0 2px 6px rgba(100, 100, 100, 0.3);
822
-
823
- &:first-child {
824
- margin-left: 5px;
 
 
 
 
 
 
 
825
  }
826
  }
827
 
@@ -1024,6 +1058,9 @@ table.wpuf-table {
1024
  }
1025
 
1026
  #wpuf-payment-gateway {
 
 
 
1027
  ul.wpuf-payment-gateways {
1028
  list-style: none;
1029
  margin: 10px 0;
@@ -1158,7 +1195,7 @@ table.wpuf-table {
1158
  /*------------------------------------
1159
  * Multistep form
1160
  *-----------------------------------*/
1161
- fieldset.wpuf-multistep-fieldset {
1162
  position: relative;
1163
  padding-bottom: 50px;
1164
  border: none;
@@ -1289,7 +1326,7 @@ input.wpuf-btn {
1289
  body.rtl{
1290
  ul.wpuf-form li .wpuf-label{
1291
  float: right;
1292
- }
1293
  }
1294
 
1295
  // landscape phones and smaller
@@ -1330,10 +1367,11 @@ body.rtl{
1330
  }
1331
  }
1332
  .wpuf-dashboard-container {
 
1333
  .wpuf-dashboard-navigation {
1334
  width: 30%;
1335
  float: left;
1336
-
1337
  a {
1338
  text-decoration: none;
1339
  box-shadow: none;
@@ -1341,18 +1379,57 @@ body.rtl{
1341
 
1342
  ul {
1343
  list-style: none;
 
 
1344
  li {
1345
  padding-bottom: 2px;
1346
  }
1347
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
1348
  }
1349
 
1350
  .wpuf-dashboard-content {
1351
  width: 68%;
1352
  float: right;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1353
  }
1354
 
 
 
 
 
 
1355
  table.items-table {
 
1356
  a {
1357
  text-decoration: none;
1358
  box-shadow: none;
@@ -1366,6 +1443,7 @@ body.rtl{
1366
  }
1367
 
1368
  tr {
 
1369
  outline: 1px solid #f1f1f1;
1370
  }
1371
 
@@ -1375,17 +1453,32 @@ body.rtl{
1375
  }
1376
 
1377
  .wpuf-update-profile-form {
1378
- .form-row-first {
1379
- float: left;
1380
- width: 47%;
1381
- overflow: visible;
1382
- }
 
 
 
 
1383
 
1384
- .form-row-last {
1385
- float: right;
1386
- width: 43%;
1387
- overflow: visible;
 
 
 
 
 
 
 
 
 
 
1388
  }
 
1389
  }
1390
  }
1391
 
@@ -1560,7 +1653,7 @@ li.wpuf-image-wrap.thumbnail:hover .caption {
1560
  display:block;
1561
  }
1562
 
1563
- @media (min-width: 480px) {
1564
  .wpuf-pay-row {
1565
  width: 100%;
1566
  display: table;
1
  @borderColor: #eee;
2
  @mainColor: #64C3DE;
3
+ @mediaXS: 767px;
4
+ @mediaSM: 991px;
5
+ @mediaMD: 1200px;
6
 
7
  /* DivTable.com */
8
  .wpufTable{
34
  display: table-row-group;
35
  }
36
 
37
+ .wpuf-menu-item.active a{
38
+ color: #040202;
39
+ }
40
+
41
  .clearfix() {
42
  &:after {
43
  clear: both;
60
  color: #fff;
61
  text-decoration: none;
62
  text-shadow: 0 -1px 1px #006799,
63
+ 1px 0 1px #006799,
64
+ 0 1px 1px #006799,
65
+ -1px 0 1px #006799;
66
  }
67
 
68
  .core-button-hover() {
125
  font-size: 13px;
126
  }
127
 
128
+ #wpuf-private-message {
129
+ .chat-box {
130
+ margin-bottom: 30px;
131
+ }
132
+ .write-area {
133
+ width: 100%;
134
+ border-radius: 4px;
135
+ margin-bottom: 10px;
136
+ }
137
+ }
138
+
139
  .wpuf-info {
140
  background-color: #fef5be;
141
  border: 2px solid #fdd425;
353
  float: right;
354
  width: 48%;
355
  }
356
+ @media(max-width: @mediaXS){
357
+ .wpuf-name-field-last-name,
358
+ .wpuf-name-field-first-name {
359
+ width: 100%;
360
+ }
361
+ }
362
  }
363
 
364
  &.format-first-middle-last {
823
 
824
  .wpuf-copon-cancel {
825
  text-decoration: none;
826
+ font-size: 11px;
827
  }
828
  }
829
 
830
  .entry-content ul.wpuf_packs,
831
  ul.wpuf_packs {
832
  overflow: hidden;
833
+ margin: 15px 0;
834
+ max-width: initial;
835
+ width: 100%;
836
+ padding-left: 0;
837
 
838
  > li {
839
  background: #fff;
842
  border: 1px solid #DDD;
843
  border-radius: 5px 5px 5px 5px;
844
  list-style: none outside none;
845
+ margin: 0 25px 25px 0;
846
  position: relative;
847
  width: 200px;
848
  box-shadow: 0 2px 6px rgba(100, 100, 100, 0.3);
849
+ }
850
+ @media (max-width: @mediaSM) {
851
+ text-align: center;
852
+ padding-left: 25px;
853
+ }
854
+ @media (max-width: 500px) {
855
+ padding-left: 0;
856
+ > li {
857
+ width: 100%;
858
+ margin-left: 0;
859
  }
860
  }
861
 
1058
  }
1059
 
1060
  #wpuf-payment-gateway {
1061
+ @media(max-width: 549px){
1062
+ margin-left: -15px;
1063
+ }
1064
  ul.wpuf-payment-gateways {
1065
  list-style: none;
1066
  margin: 10px 0;
1195
  /*------------------------------------
1196
  * Multistep form
1197
  *-----------------------------------*/
1198
+ fieldset.wpuf-multistep-fieldset {
1199
  position: relative;
1200
  padding-bottom: 50px;
1201
  border: none;
1326
  body.rtl{
1327
  ul.wpuf-form li .wpuf-label{
1328
  float: right;
1329
+ }
1330
  }
1331
 
1332
  // landscape phones and smaller
1367
  }
1368
  }
1369
  .wpuf-dashboard-container {
1370
+ .clearfix();
1371
  .wpuf-dashboard-navigation {
1372
  width: 30%;
1373
  float: left;
1374
+
1375
  a {
1376
  text-decoration: none;
1377
  box-shadow: none;
1379
 
1380
  ul {
1381
  list-style: none;
1382
+ margin: 0;
1383
+ padding: 0;
1384
  li {
1385
  padding-bottom: 2px;
1386
  }
1387
  }
1388
+
1389
+ @media (max-width: @mediaSM){
1390
+ width: 100%;
1391
+ margin-bottom: 30px;
1392
+ ul {
1393
+ margin: 0 -7px;
1394
+ li {
1395
+ margin: 0 7px;
1396
+ display: inline-block;
1397
+ }
1398
+ }
1399
+ }
1400
+
1401
  }
1402
 
1403
  .wpuf-dashboard-content {
1404
  width: 68%;
1405
  float: right;
1406
+ @media (max-width: @mediaSM){
1407
+ width: 100%;
1408
+ }
1409
+ .wpuf-fields {
1410
+ select,
1411
+ textarea,
1412
+ input {
1413
+ &:not([type="submit"]),
1414
+ &:not([type="button"]),
1415
+ &:not([type="checkbox"]),
1416
+ &:not([type="radio"]),
1417
+ &:not([type="file"]),
1418
+ &:not([type="reset"]){
1419
+ width: 100%;
1420
+ }
1421
+ }
1422
+ }
1423
+
1424
  }
1425
 
1426
+ .items-table-container,
1427
+ .wpuf-dashboard-content.invoices {
1428
+ max-width: 100%;
1429
+ overflow-y: auto;
1430
+ }
1431
  table.items-table {
1432
+ min-width: 600px;
1433
  a {
1434
  text-decoration: none;
1435
  box-shadow: none;
1443
  }
1444
 
1445
  tr {
1446
+ text-align: left;
1447
  outline: 1px solid #f1f1f1;
1448
  }
1449
 
1453
  }
1454
 
1455
  .wpuf-update-profile-form {
1456
+ ul.wpuf-form {
1457
+ margin: 0 -15px !important;
1458
+ width: inherit;
1459
+ .form-row-first {
1460
+ float: left;
1461
+ width: 50%;
1462
+ padding: 0 15px;
1463
+ overflow: visible;
1464
+ }
1465
 
1466
+ .form-row-last {
1467
+ float: right;
1468
+ width: 50%;
1469
+ padding: 0 15px;
1470
+ overflow: visible;
1471
+ }
1472
+
1473
+ @media(max-width: @mediaXS){
1474
+ .form-row-first,
1475
+ .form-row-last {
1476
+ float: none;
1477
+ width: 100%;
1478
+ }
1479
+ }
1480
  }
1481
+
1482
  }
1483
  }
1484
 
1653
  display:block;
1654
  }
1655
 
1656
+ @media (min-width: 550px) {
1657
  .wpuf-pay-row {
1658
  width: 100%;
1659
  display: table;
class/post-form-templates/post.php CHANGED
@@ -126,6 +126,17 @@ class WPUF_Post_Form_Template_Post extends WPUF_Post_Form_Template {
126
  'redirect_to' => 'post',
127
  'comment_status' => 'open',
128
  'submit_text' => __( 'Create Post', 'wp-user-frontend' ),
 
 
 
 
 
 
 
 
 
 
 
129
  'edit_post_status' => 'publish',
130
  'edit_redirect_to' => 'same',
131
  'update_message' => __( 'Post has been updated successfully. <a target="_blank" href="%link%">View post</a>', 'wp-user-frontend' ),
126
  'redirect_to' => 'post',
127
  'comment_status' => 'open',
128
  'submit_text' => __( 'Create Post', 'wp-user-frontend' ),
129
+ 'submit_button_cond' => array(
130
+ 'condition_status' => 'no',
131
+ 'cond_logic' => 'any',
132
+ 'conditions' => array(
133
+ array(
134
+ 'name' => '',
135
+ 'operator' => '=',
136
+ 'option' => ''
137
+ )
138
+ )
139
+ ),
140
  'edit_post_status' => 'publish',
141
  'edit_redirect_to' => 'same',
142
  'update_message' => __( 'Post has been updated successfully. <a target="_blank" href="%link%">View post</a>', 'wp-user-frontend' ),
includes/class-frontend-render-form.php CHANGED
@@ -145,6 +145,8 @@ class WPUF_Frontend_Render_Form{
145
  <input type="hidden" id="del_attach" name="delete_attachments[]">
146
  <input type="hidden" name="action" value="wpuf_submit_post">
147
 
 
 
148
  <?php
149
  if ( $post_id ) {
150
  $cur_post = get_post( $post_id );
@@ -153,9 +155,9 @@ class WPUF_Frontend_Render_Form{
153
  <input type="hidden" name="post_date" value="<?php echo esc_attr( $cur_post->post_date ); ?>">
154
  <input type="hidden" name="comment_status" value="<?php echo esc_attr( $cur_post->comment_status ); ?>">
155
  <input type="hidden" name="post_author" value="<?php echo esc_attr( $cur_post->post_author ); ?>">
156
- <input type="submit" class="wpuf-submit-button" name="submit" value="<?php echo $form_settings['update_text']; ?>" />
157
  <?php } else { ?>
158
- <input type="submit" class="wpuf-submit-button" name="submit" value="<?php echo $form_settings['submit_text']; ?>" />
159
  <?php } ?>
160
 
161
  <?php if ( isset( $form_settings['draft_post'] ) && $form_settings['draft_post'] == 'true' ) { ?>
@@ -542,7 +544,7 @@ class WPUF_Frontend_Render_Form{
542
 
543
  foreach ($taxonomy_vars as $taxonomy ) {
544
 
545
- if(isset($_POST[$taxonomy['name']] ) && ( $_POST[$taxonomy['name']] !='' && $_POST[$taxonomy['name']] !='0' && $_POST[$taxonomy['name']][0] !='-1' ) ) {
546
 
547
  if ( is_object_in_taxonomy( $this->form_settings['post_type'], $taxonomy['name'] ) ) {
548
 
@@ -735,10 +737,10 @@ class WPUF_Frontend_Render_Form{
735
  } else {
736
  $meta_key_value[$value['name']] = implode( self::$separator, $_POST[$value['name']] );
737
  }
 
 
738
  } else {
739
- if ( !empty( $_POST[ $value['name'] ] ) ) {
740
- $meta_key_value[$value['name']] = trim( $_POST[$value['name']] );
741
- }
742
  }
743
 
744
  break;
145
  <input type="hidden" id="del_attach" name="delete_attachments[]">
146
  <input type="hidden" name="action" value="wpuf_submit_post">
147
 
148
+ <?php do_action( 'wpuf_submit_btn', $form_id, $form_settings ); ?>
149
+
150
  <?php
151
  if ( $post_id ) {
152
  $cur_post = get_post( $post_id );
155
  <input type="hidden" name="post_date" value="<?php echo esc_attr( $cur_post->post_date ); ?>">
156
  <input type="hidden" name="comment_status" value="<?php echo esc_attr( $cur_post->comment_status ); ?>">
157
  <input type="hidden" name="post_author" value="<?php echo esc_attr( $cur_post->post_author ); ?>">
158
+ <input type="submit" class="wpuf-submit-button wpuf_submit_<?php echo $form_id; ?>" name="submit" value="<?php echo $form_settings['update_text']; ?>" />
159
  <?php } else { ?>
160
+ <input type="submit" class="wpuf-submit-button wpuf_submit_<?php echo $form_id; ?>" name="submit" value="<?php echo $form_settings['submit_text']; ?>" />
161
  <?php } ?>
162
 
163
  <?php if ( isset( $form_settings['draft_post'] ) && $form_settings['draft_post'] == 'true' ) { ?>
544
 
545
  foreach ($taxonomy_vars as $taxonomy ) {
546
 
547
+ if(isset($_POST[$taxonomy['name']] ) && ( $_POST[$taxonomy['name']] !='' && $_POST[$taxonomy['name']] !='0' ) ) {
548
 
549
  if ( is_object_in_taxonomy( $this->form_settings['post_type'], $taxonomy['name'] ) ) {
550
 
737
  } else {
738
  $meta_key_value[$value['name']] = implode( self::$separator, $_POST[$value['name']] );
739
  }
740
+ } else if ( !empty( $_POST[ $value['name'] ] ) ) {
741
+ $meta_key_value[$value['name']] = trim( $_POST[$value['name']] );
742
  } else {
743
+ $meta_key_value[$value['name']] = trim( $_POST[$value['name']] );
 
 
744
  }
745
 
746
  break;
includes/free/class-login.php CHANGED
@@ -736,7 +736,7 @@ class WPUF_Simple_Login {
736
  }
737
 
738
  if ( !isset( $_GET['id'] ) && empty( $_GET['id'] ) ) {
739
- wpuf()->login->add_error( 'Activation URL is not valid' );
740
  return;
741
  }
742
 
@@ -746,19 +746,19 @@ class WPUF_Simple_Login {
746
  $wpuf_user_status = get_user_meta( $user_id, 'wpuf_user_status', true );
747
 
748
  if ( !$user ) {
749
- wpuf()->login->add_error( 'Invalid User activation url' );
750
  return;
751
  }
752
 
753
  if ( $user->is_verified() ){
754
- wpuf()->login->add_error( 'User already verified' );
755
  return;
756
  }
757
 
758
  $activation_key = $_GET['wpuf_registration_activation'];
759
 
760
  if ( $user->get_activation_key() != $activation_key ) {
761
- wpuf()->login->add_error( 'Activation URL is not valid' );
762
  return;
763
  }
764
 
736
  }
737
 
738
  if ( !isset( $_GET['id'] ) && empty( $_GET['id'] ) ) {
739
+ wpuf()->login->add_error( __('Activation URL is not valid', 'wp-user-frontend') );
740
  return;
741
  }
742
 
746
  $wpuf_user_status = get_user_meta( $user_id, 'wpuf_user_status', true );
747
 
748
  if ( !$user ) {
749
+ wpuf()->login->add_error( __('Invalid User activation url', 'wp-user-frontend') );
750
  return;
751
  }
752
 
753
  if ( $user->is_verified() ){
754
+ wpuf()->login->add_error( __('User already verified', 'wp-user-frontend') );
755
  return;
756
  }
757
 
758
  $activation_key = $_GET['wpuf_registration_activation'];
759
 
760
  if ( $user->get_activation_key() != $activation_key ) {
761
+ wpuf()->login->add_error( __('Activation URL is not valid', 'wp-user-frontend') );
762
  return;
763
  }
764
 
includes/setup-wizard.php CHANGED
@@ -22,6 +22,7 @@ class WPUF_Setup_Wizard {
22
  add_action( 'admin_menu', array( $this, 'admin_menus' ) );
23
  add_action( 'admin_init', array( $this, 'setup_wizard' ), 99 );
24
  add_action( 'admin_init', array( $this, 'redirect_to_page' ), 9999 );
 
25
  }
26
 
27
  /**
@@ -62,7 +63,24 @@ class WPUF_Setup_Wizard {
62
  * Add admin menus/screens.
63
  */
64
  public function admin_menus() {
65
- add_dashboard_page( '', '', 'manage_options', 'wpuf-setup', '' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
66
  }
67
 
68
  /**
22
  add_action( 'admin_menu', array( $this, 'admin_menus' ) );
23
  add_action( 'admin_init', array( $this, 'setup_wizard' ), 99 );
24
  add_action( 'admin_init', array( $this, 'redirect_to_page' ), 9999 );
25
+ add_action( 'admin_init', array( $this, 'add_custom_menu_class') );
26
  }
27
 
28
  /**
63
  * Add admin menus/screens.
64
  */
65
  public function admin_menus() {
66
+ add_dashboard_page( 'WPUF Setup', 'WPUF Setup', 'manage_options', 'wpuf-setup', '' );
67
+ }
68
+
69
+ /**
70
+ * Add custom class to WPUF Setup menu link, it's needed to hide the link from the dashboard
71
+ *
72
+ * @since 3.1.6
73
+ */
74
+ public function add_custom_menu_class() {
75
+ global $submenu;
76
+
77
+ foreach( $submenu as $key => $items ) {
78
+ foreach ($items as $index => $item) {
79
+ if( 'wpuf-setup' == $item[2] ) {
80
+ $submenu['index.php'][$index][4] = "wpuf-setup-menu-link";
81
+ }
82
+ }
83
+ }
84
  }
85
 
86
  /**
languages/wp-user-frontend.pot CHANGED
@@ -2,9 +2,9 @@
2
  # This file is distributed under the GPL2 or later.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: WP User Frontend 3.1.5\n"
6
  "Report-Msgid-Bugs-To: https://wedevs.com/contact/\n"
7
- "POT-Creation-Date: 2019-05-02 08:00:22+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
@@ -70,7 +70,7 @@ msgid "<span style=\"color:#f18500\">Help</span>"
70
  msgstr ""
71
 
72
  #: admin/class-admin-settings.php:118 admin/class-admin-settings.php:156
73
- #: admin/form-builder/views/form-builder.php:9 includes/setup-wizard.php:103
74
  msgid "Settings"
75
  msgstr ""
76
 
@@ -303,9 +303,9 @@ msgid "Assign Package"
303
  msgstr ""
304
 
305
  #: admin/class-admin-subscription.php:754
306
- #: admin/form-builder/class-wpuf-admin-form-builder.php:265
307
  #: class/payment.php:199 class/subscription.php:780
308
- #: includes/class-list-table-subscribers.php:128 lib/appsero/Insights.php:742
309
  #: templates/dashboard/subscription.php:61
310
  msgid "Cancel"
311
  msgstr ""
@@ -340,7 +340,7 @@ msgstr ""
340
 
341
  #: admin/class-tools.php:39 admin/class-tools.php:95
342
  #: admin/post-forms-list-table.php:43 class/transactions-list-table.php:86
343
- #: includes/class-list-table-subscribers.php:126 wpuf-functions.php:2685
344
  msgid "All"
345
  msgstr ""
346
 
@@ -419,7 +419,7 @@ msgid ""
419
  msgstr ""
420
 
421
  #: admin/class-tools.php:351 admin/installer.php:30
422
- #: includes/setup-wizard.php:280
423
  msgid "Install WPUF Pages"
424
  msgstr ""
425
 
@@ -549,38 +549,38 @@ msgstr ""
549
  msgid "Invalid form id"
550
  msgstr ""
551
 
552
- #: admin/form-builder/class-wpuf-admin-form-builder.php:260
553
  msgid "Advanced Options"
554
  msgstr ""
555
 
556
- #: admin/form-builder/class-wpuf-admin-form-builder.php:261
557
  msgid "Are you sure you want to delete this field?"
558
  msgstr ""
559
 
560
- #: admin/form-builder/class-wpuf-admin-form-builder.php:262
561
  #: admin/posting.php:70 class/asset-loader.php:55 wpuf.php:718
562
  msgid "Yes, delete it"
563
  msgstr ""
564
 
565
- #: admin/form-builder/class-wpuf-admin-form-builder.php:263
566
  #: admin/posting.php:71 class/asset-loader.php:56 wpuf.php:719
567
  msgid "No, cancel it"
568
  msgstr ""
569
 
570
- #: admin/form-builder/class-wpuf-admin-form-builder.php:264
571
  msgid "OK"
572
  msgstr ""
573
 
574
- #: admin/form-builder/class-wpuf-admin-form-builder.php:266
575
  #: includes/free/admin/shortcode-builder.php:69
576
  msgid "Close"
577
  msgstr ""
578
 
579
- #: admin/form-builder/class-wpuf-admin-form-builder.php:267
580
  msgid "This field must contain at least one choice"
581
  msgstr ""
582
 
583
- #: admin/form-builder/class-wpuf-admin-form-builder.php:268
584
  #: includes/fields/class-field-checkbox.php:123
585
  #: includes/fields/class-field-dropdown.php:101
586
  #: includes/fields/class-field-multidropdown.php:93
@@ -588,40 +588,40 @@ msgstr ""
588
  msgid "Option"
589
  msgstr ""
590
 
591
- #: admin/form-builder/class-wpuf-admin-form-builder.php:269
592
  msgid "Column"
593
  msgstr ""
594
 
595
- #: admin/form-builder/class-wpuf-admin-form-builder.php:270
596
  msgid "This field must contain at least one column"
597
  msgstr ""
598
 
599
- #: admin/form-builder/class-wpuf-admin-form-builder.php:271
600
  msgid "is available in Pro version"
601
  msgstr ""
602
 
603
- #: admin/form-builder/class-wpuf-admin-form-builder.php:272
604
  msgid "Please upgrade to the Pro version to unlock all these awesome features"
605
  msgstr ""
606
 
607
- #: admin/form-builder/class-wpuf-admin-form-builder.php:273
608
  msgid "Get the Pro version"
609
  msgstr ""
610
 
611
- #: admin/form-builder/class-wpuf-admin-form-builder.php:274
612
  #: includes/fields/class-abstract-fields.php:401
613
  msgid "Select"
614
  msgstr ""
615
 
616
- #: admin/form-builder/class-wpuf-admin-form-builder.php:275
617
  msgid "Saved form data"
618
  msgstr ""
619
 
620
- #: admin/form-builder/class-wpuf-admin-form-builder.php:276
621
  msgid "You have unsaved changes."
622
  msgstr ""
623
 
624
- #: admin/form-builder/class-wpuf-admin-form-builder.php:277
625
  #: admin/form-builder/views/form-builder.php:49
626
  msgid "Click to copy shortcode"
627
  msgstr ""
@@ -723,7 +723,7 @@ msgstr ""
723
  #: admin/form.php:74 admin/form.php:112 admin/installer.php:79
724
  #: admin/post-forms-list-table.php:391 class/subscription.php:381
725
  #: includes/free/admin/shortcode-button.php:90 includes/free/edit-user.php:100
726
- #: templates/dashboard/posts.php:161 templates/dashboard.php:252
727
  msgid "Edit"
728
  msgstr ""
729
 
@@ -797,7 +797,7 @@ msgid "Taxonomies"
797
  msgstr ""
798
 
799
  #: admin/form.php:440 admin/html/form-settings-post.php:22
800
- #: class/render-form.php:753 includes/class-frontend-render-form.php:162
801
  msgid "Save Draft"
802
  msgstr ""
803
 
@@ -847,7 +847,7 @@ msgid "Payment Options"
847
  msgstr ""
848
 
849
  #: admin/html/form-settings-payment.php:25 admin/settings-options.php:362
850
- #: includes/setup-wizard.php:273
851
  msgid "Enable Payments"
852
  msgstr ""
853
 
@@ -2095,8 +2095,8 @@ msgstr ""
2095
  msgid "[wpuf_sub_pack]"
2096
  msgstr ""
2097
 
2098
- #: admin/installer.php:89 templates/dashboard/posts.php:82
2099
- #: templates/dashboard.php:121
2100
  msgid "Payment"
2101
  msgstr ""
2102
 
@@ -3306,7 +3306,7 @@ msgstr ""
3306
 
3307
  #: admin/template.php:398 admin/template.php:422 admin/template.php:454
3308
  #: admin/template.php:486 includes/fields/class-abstract-fields.php:596
3309
- #: templates/dashboard/posts.php:85 templates/dashboard.php:124
3310
  msgid "Options"
3311
  msgstr ""
3312
 
@@ -3327,7 +3327,7 @@ msgstr ""
3327
  #: admin/template.php:544 admin/template.php:604 admin/template.php:683
3328
  #: class/upload.php:168 includes/fields/class-field-recaptcha.php:156
3329
  #: includes/fields/class-field-sectionbreak.php:56
3330
- #: templates/dashboard/posts.php:76 templates/dashboard.php:86
3331
  #: wpuf-functions.php:807
3332
  msgid "Title"
3333
  msgstr ""
@@ -3554,7 +3554,7 @@ msgstr ""
3554
  msgid "You can't edit a post while in pending mode."
3555
  msgstr ""
3556
 
3557
- #: class/frontend-form-post.php:304 includes/class-frontend-render-form.php:771
3558
  #: includes/free/class-login.php:394
3559
  msgid "Empty reCaptcha Field"
3560
  msgstr ""
@@ -3687,7 +3687,7 @@ msgstr ""
3687
  msgid "Please enter your post name"
3688
  msgstr ""
3689
 
3690
- #: class/post-form-templates/post.php:35 templates/dashboard.php:90
3691
  msgid "Category"
3692
  msgstr ""
3693
 
@@ -3716,7 +3716,7 @@ msgstr ""
3716
  #: includes/fields/class-field-featured-image.php:123
3717
  #: includes/free/post-form-templates/the_events_calendar.php:125
3718
  #: includes/free/post-form-templates/the_events_calendar.php:126
3719
- #: templates/dashboard/posts.php:73 templates/dashboard.php:83
3720
  msgid "Featured Image"
3721
  msgstr ""
3722
 
@@ -3726,7 +3726,7 @@ msgstr ""
3726
 
3727
  #: class/post-form-templates/post.php:90
3728
  #: includes/free/post-form-templates/the_events_calendar.php:138
3729
- #: templates/dashboard.php:112
3730
  msgid "Excerpt"
3731
  msgstr ""
3732
 
@@ -3748,13 +3748,13 @@ msgstr ""
3748
  msgid "Create Post"
3749
  msgstr ""
3750
 
3751
- #: class/post-form-templates/post.php:131
3752
  msgid ""
3753
  "Post has been updated successfully. <a target=\"_blank\" "
3754
  "href=\"%link%\">View post</a>"
3755
  msgstr ""
3756
 
3757
- #: class/post-form-templates/post.php:133
3758
  msgid "Update Post"
3759
  msgstr ""
3760
 
@@ -3774,11 +3774,11 @@ msgstr ""
3774
  msgid "Invisible reCAPTCHA validation failed"
3775
  msgstr ""
3776
 
3777
- #: class/render-form.php:357 includes/class-frontend-render-form.php:264
3778
  msgid "Your selected form is no longer available."
3779
  msgstr ""
3780
 
3781
- #: class/render-form.php:362 includes/class-frontend-render-form.php:269
3782
  msgid "Please make sure you've published your form."
3783
  msgstr ""
3784
 
@@ -3803,7 +3803,7 @@ msgstr ""
3803
 
3804
  #: class/render-form.php:1700 class/transactions-list-table.php:115
3805
  #: class/transactions-list-table.php:181 includes/free/edit-user.php:101
3806
- #: templates/dashboard/posts.php:172 templates/dashboard.php:263
3807
  msgid "Delete"
3808
  msgstr ""
3809
 
@@ -3947,7 +3947,7 @@ msgstr ""
3947
 
3948
  #: class/transactions-list-table.php:41
3949
  #: includes/class-list-table-subscribers.php:44
3950
- #: templates/dashboard/posts.php:77 templates/dashboard.php:116
3951
  msgid "Status"
3952
  msgstr ""
3953
 
@@ -4196,7 +4196,7 @@ msgid "Expire date"
4196
  msgstr ""
4197
 
4198
  #: includes/class-list-table-subscribers.php:127
4199
- #: templates/dashboard/posts.php:137 templates/dashboard.php:224
4200
  msgid "Completed"
4201
  msgstr ""
4202
 
@@ -5123,6 +5123,18 @@ msgid ""
5123
  "link"
5124
  msgstr ""
5125
 
 
 
 
 
 
 
 
 
 
 
 
 
5126
  #: includes/free/class-login.php:768 includes/free/class-login.php:838
5127
  msgid "Your account has been activated"
5128
  msgstr ""
@@ -5612,111 +5624,111 @@ msgstr ""
5612
  msgid "Enable Recurring Payment"
5613
  msgstr ""
5614
 
5615
- #: includes/setup-wizard.php:98
5616
  msgid "Introduction"
5617
  msgstr ""
5618
 
5619
- #: includes/setup-wizard.php:108
5620
  msgid "Ready!"
5621
  msgstr ""
5622
 
5623
- #: includes/setup-wizard.php:145
5624
  msgid "WPUF &rsaquo; Setup Wizard"
5625
  msgstr ""
5626
 
5627
- #: includes/setup-wizard.php:210
5628
  msgid "Return to the WordPress Dashboard"
5629
  msgstr ""
5630
 
5631
- #: includes/setup-wizard.php:252
5632
  msgid "Welcome to the world of WPUF!"
5633
  msgstr ""
5634
 
5635
- #: includes/setup-wizard.php:253
5636
  msgid ""
5637
  "Thank you for choosing WPUF to power your websites frontend! This quick "
5638
  "setup wizard will help you configure the basic settings. <strong>It’s "
5639
  "completely optional and shouldn’t take longer than a minute.</strong>"
5640
  msgstr ""
5641
 
5642
- #: includes/setup-wizard.php:254
5643
  msgid ""
5644
  "No time right now? If you don’t want to go through the wizard, you can skip "
5645
  "and return to the WordPress dashboard. Come back anytime if you change your "
5646
  "mind!"
5647
  msgstr ""
5648
 
5649
- #: includes/setup-wizard.php:256
5650
  msgid "Let's Go!"
5651
  msgstr ""
5652
 
5653
- #: includes/setup-wizard.php:257
5654
  msgid "Not right now"
5655
  msgstr ""
5656
 
5657
- #: includes/setup-wizard.php:269
5658
  msgid "Basic Setting"
5659
  msgstr ""
5660
 
5661
- #: includes/setup-wizard.php:276
5662
  msgid "Make payment enable for user to add posts on frontend."
5663
  msgstr ""
5664
 
5665
- #: includes/setup-wizard.php:283
5666
  msgid "Install neccessery pages on your site frontend."
5667
  msgstr ""
5668
 
5669
- #: includes/setup-wizard.php:288
5670
  msgid "Continue"
5671
  msgstr ""
5672
 
5673
- #: includes/setup-wizard.php:289
5674
  msgid "Skip this step"
5675
  msgstr ""
5676
 
5677
- #: includes/setup-wizard.php:324
5678
  msgid "Thank you!"
5679
  msgstr ""
5680
 
5681
- #: includes/setup-wizard.php:329
5682
  msgid "Welcome to Awesomeness!"
5683
  msgstr ""
5684
 
5685
- #: includes/setup-wizard.php:333
5686
  msgid "Go to Full Settings"
5687
  msgstr ""
5688
 
5689
- #: lib/appsero/Insights.php:356
5690
  msgid ""
5691
  "Want to help make <strong>%1$s</strong> even more awesome? Allow %1$s to "
5692
  "collect non-sensitive diagnostic data and usage information."
5693
  msgstr ""
5694
 
5695
- #: lib/appsero/Insights.php:361
5696
  msgid "what we collect"
5697
  msgstr ""
5698
 
5699
- #: lib/appsero/Insights.php:367
5700
  msgid "Allow"
5701
  msgstr ""
5702
 
5703
- #: lib/appsero/Insights.php:368
5704
  msgid "No thanks"
5705
  msgstr ""
5706
 
5707
- #: lib/appsero/Insights.php:567
5708
  msgid "Once Weekly"
5709
  msgstr ""
5710
 
5711
- #: lib/appsero/Insights.php:726
5712
  msgid "If you have a moment, please let us know why you are deactivating:"
5713
  msgstr ""
5714
 
5715
- #: lib/appsero/Insights.php:740
5716
  msgid "I rather wouldn't say"
5717
  msgstr ""
5718
 
5719
- #: lib/appsero/Insights.php:741
5720
  msgid "Submit & Deactivate"
5721
  msgstr ""
5722
 
@@ -5828,35 +5840,35 @@ msgstr ""
5828
  msgid "You have created <span>%d</span> %s"
5829
  msgstr ""
5830
 
5831
- #: templates/dashboard/posts.php:106 templates/dashboard.php:145
5832
  msgid "No Image"
5833
  msgstr ""
5834
 
5835
- #: templates/dashboard/posts.php:120 templates/dashboard.php:159
5836
  msgid "Permalink to %s"
5837
  msgstr ""
5838
 
5839
- #: templates/dashboard/posts.php:133 templates/dashboard.php:220
5840
  msgid "Not Applicable"
5841
  msgstr ""
5842
 
5843
- #: templates/dashboard/posts.php:135 templates/dashboard.php:222
5844
  msgid "Pay Now"
5845
  msgstr ""
5846
 
5847
- #: templates/dashboard/posts.php:170 templates/dashboard.php:261
5848
  msgid "Are you sure to delete?"
5849
  msgstr ""
5850
 
5851
- #: templates/dashboard/posts.php:190 templates/dashboard.php:281
5852
  msgid "&laquo;"
5853
  msgstr ""
5854
 
5855
- #: templates/dashboard/posts.php:191 templates/dashboard.php:282
5856
  msgid "&raquo;"
5857
  msgstr ""
5858
 
5859
- #: templates/dashboard/posts.php:205 templates/dashboard.php:296
5860
  msgid "No %s found"
5861
  msgstr ""
5862
 
@@ -6206,7 +6218,7 @@ msgstr ""
6206
  msgid "Egyptian Pound"
6207
  msgstr ""
6208
 
6209
- #: wpuf-functions.php:2686
6210
  msgid "None"
6211
  msgstr ""
6212
 
@@ -6273,62 +6285,62 @@ msgstr ""
6273
  msgid "https://tareq.co"
6274
  msgstr ""
6275
 
6276
- #: includes/setup-wizard.php:39
6277
  msgctxt "enhanced select"
6278
  msgid "One result is available, press enter to select it."
6279
  msgstr ""
6280
 
6281
- #: includes/setup-wizard.php:40
6282
  msgctxt "enhanced select"
6283
  msgid "%qty% results are available, use up and down arrow keys to navigate."
6284
  msgstr ""
6285
 
6286
- #: includes/setup-wizard.php:41
6287
  msgctxt "enhanced select"
6288
  msgid "No matches found"
6289
  msgstr ""
6290
 
6291
- #: includes/setup-wizard.php:42
6292
  msgctxt "enhanced select"
6293
  msgid "Loading failed"
6294
  msgstr ""
6295
 
6296
- #: includes/setup-wizard.php:43
6297
  msgctxt "enhanced select"
6298
  msgid "Please enter 1 or more characters"
6299
  msgstr ""
6300
 
6301
- #: includes/setup-wizard.php:44
6302
  msgctxt "enhanced select"
6303
  msgid "Please enter %qty% or more characters"
6304
  msgstr ""
6305
 
6306
- #: includes/setup-wizard.php:45
6307
  msgctxt "enhanced select"
6308
  msgid "Please delete 1 character"
6309
  msgstr ""
6310
 
6311
- #: includes/setup-wizard.php:46
6312
  msgctxt "enhanced select"
6313
  msgid "Please delete %qty% characters"
6314
  msgstr ""
6315
 
6316
- #: includes/setup-wizard.php:47
6317
  msgctxt "enhanced select"
6318
  msgid "You can only select 1 item"
6319
  msgstr ""
6320
 
6321
- #: includes/setup-wizard.php:48
6322
  msgctxt "enhanced select"
6323
  msgid "You can only select %qty% items"
6324
  msgstr ""
6325
 
6326
- #: includes/setup-wizard.php:49
6327
  msgctxt "enhanced select"
6328
  msgid "Loading more results&hellip;"
6329
  msgstr ""
6330
 
6331
- #: includes/setup-wizard.php:50
6332
  msgctxt "enhanced select"
6333
  msgid "Searching&hellip;"
6334
  msgstr ""
2
  # This file is distributed under the GPL2 or later.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: WP User Frontend 3.1.6\n"
6
  "Report-Msgid-Bugs-To: https://wedevs.com/contact/\n"
7
+ "POT-Creation-Date: 2019-05-23 08:19:41+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
70
  msgstr ""
71
 
72
  #: admin/class-admin-settings.php:118 admin/class-admin-settings.php:156
73
+ #: admin/form-builder/views/form-builder.php:9 includes/setup-wizard.php:121
74
  msgid "Settings"
75
  msgstr ""
76
 
303
  msgstr ""
304
 
305
  #: admin/class-admin-subscription.php:754
306
+ #: admin/form-builder/class-wpuf-admin-form-builder.php:266
307
  #: class/payment.php:199 class/subscription.php:780
308
+ #: includes/class-list-table-subscribers.php:128 lib/appsero/Insights.php:751
309
  #: templates/dashboard/subscription.php:61
310
  msgid "Cancel"
311
  msgstr ""
340
 
341
  #: admin/class-tools.php:39 admin/class-tools.php:95
342
  #: admin/post-forms-list-table.php:43 class/transactions-list-table.php:86
343
+ #: includes/class-list-table-subscribers.php:126 wpuf-functions.php:2696
344
  msgid "All"
345
  msgstr ""
346
 
419
  msgstr ""
420
 
421
  #: admin/class-tools.php:351 admin/installer.php:30
422
+ #: includes/setup-wizard.php:298
423
  msgid "Install WPUF Pages"
424
  msgstr ""
425
 
549
  msgid "Invalid form id"
550
  msgstr ""
551
 
552
+ #: admin/form-builder/class-wpuf-admin-form-builder.php:261
553
  msgid "Advanced Options"
554
  msgstr ""
555
 
556
+ #: admin/form-builder/class-wpuf-admin-form-builder.php:262
557
  msgid "Are you sure you want to delete this field?"
558
  msgstr ""
559
 
560
+ #: admin/form-builder/class-wpuf-admin-form-builder.php:263
561
  #: admin/posting.php:70 class/asset-loader.php:55 wpuf.php:718
562
  msgid "Yes, delete it"
563
  msgstr ""
564
 
565
+ #: admin/form-builder/class-wpuf-admin-form-builder.php:264
566
  #: admin/posting.php:71 class/asset-loader.php:56 wpuf.php:719
567
  msgid "No, cancel it"
568
  msgstr ""
569
 
570
+ #: admin/form-builder/class-wpuf-admin-form-builder.php:265
571
  msgid "OK"
572
  msgstr ""
573
 
574
+ #: admin/form-builder/class-wpuf-admin-form-builder.php:267
575
  #: includes/free/admin/shortcode-builder.php:69
576
  msgid "Close"
577
  msgstr ""
578
 
579
+ #: admin/form-builder/class-wpuf-admin-form-builder.php:268
580
  msgid "This field must contain at least one choice"
581
  msgstr ""
582
 
583
+ #: admin/form-builder/class-wpuf-admin-form-builder.php:269
584
  #: includes/fields/class-field-checkbox.php:123
585
  #: includes/fields/class-field-dropdown.php:101
586
  #: includes/fields/class-field-multidropdown.php:93
588
  msgid "Option"
589
  msgstr ""
590
 
591
+ #: admin/form-builder/class-wpuf-admin-form-builder.php:270
592
  msgid "Column"
593
  msgstr ""
594
 
595
+ #: admin/form-builder/class-wpuf-admin-form-builder.php:271
596
  msgid "This field must contain at least one column"
597
  msgstr ""
598
 
599
+ #: admin/form-builder/class-wpuf-admin-form-builder.php:272
600
  msgid "is available in Pro version"
601
  msgstr ""
602
 
603
+ #: admin/form-builder/class-wpuf-admin-form-builder.php:273
604
  msgid "Please upgrade to the Pro version to unlock all these awesome features"
605
  msgstr ""
606
 
607
+ #: admin/form-builder/class-wpuf-admin-form-builder.php:274
608
  msgid "Get the Pro version"
609
  msgstr ""
610
 
611
+ #: admin/form-builder/class-wpuf-admin-form-builder.php:275
612
  #: includes/fields/class-abstract-fields.php:401
613
  msgid "Select"
614
  msgstr ""
615
 
616
+ #: admin/form-builder/class-wpuf-admin-form-builder.php:276
617
  msgid "Saved form data"
618
  msgstr ""
619
 
620
+ #: admin/form-builder/class-wpuf-admin-form-builder.php:277
621
  msgid "You have unsaved changes."
622
  msgstr ""
623
 
624
+ #: admin/form-builder/class-wpuf-admin-form-builder.php:278
625
  #: admin/form-builder/views/form-builder.php:49
626
  msgid "Click to copy shortcode"
627
  msgstr ""
723
  #: admin/form.php:74 admin/form.php:112 admin/installer.php:79
724
  #: admin/post-forms-list-table.php:391 class/subscription.php:381
725
  #: includes/free/admin/shortcode-button.php:90 includes/free/edit-user.php:100
726
+ #: templates/dashboard/posts.php:162 templates/dashboard.php:253
727
  msgid "Edit"
728
  msgstr ""
729
 
797
  msgstr ""
798
 
799
  #: admin/form.php:440 admin/html/form-settings-post.php:22
800
+ #: class/render-form.php:753 includes/class-frontend-render-form.php:164
801
  msgid "Save Draft"
802
  msgstr ""
803
 
847
  msgstr ""
848
 
849
  #: admin/html/form-settings-payment.php:25 admin/settings-options.php:362
850
+ #: includes/setup-wizard.php:291
851
  msgid "Enable Payments"
852
  msgstr ""
853
 
2095
  msgid "[wpuf_sub_pack]"
2096
  msgstr ""
2097
 
2098
+ #: admin/installer.php:89 templates/dashboard/posts.php:83
2099
+ #: templates/dashboard.php:122
2100
  msgid "Payment"
2101
  msgstr ""
2102
 
3306
 
3307
  #: admin/template.php:398 admin/template.php:422 admin/template.php:454
3308
  #: admin/template.php:486 includes/fields/class-abstract-fields.php:596
3309
+ #: templates/dashboard/posts.php:86 templates/dashboard.php:125
3310
  msgid "Options"
3311
  msgstr ""
3312
 
3327
  #: admin/template.php:544 admin/template.php:604 admin/template.php:683
3328
  #: class/upload.php:168 includes/fields/class-field-recaptcha.php:156
3329
  #: includes/fields/class-field-sectionbreak.php:56
3330
+ #: templates/dashboard/posts.php:77 templates/dashboard.php:87
3331
  #: wpuf-functions.php:807
3332
  msgid "Title"
3333
  msgstr ""
3554
  msgid "You can't edit a post while in pending mode."
3555
  msgstr ""
3556
 
3557
+ #: class/frontend-form-post.php:304 includes/class-frontend-render-form.php:773
3558
  #: includes/free/class-login.php:394
3559
  msgid "Empty reCaptcha Field"
3560
  msgstr ""
3687
  msgid "Please enter your post name"
3688
  msgstr ""
3689
 
3690
+ #: class/post-form-templates/post.php:35 templates/dashboard.php:91
3691
  msgid "Category"
3692
  msgstr ""
3693
 
3716
  #: includes/fields/class-field-featured-image.php:123
3717
  #: includes/free/post-form-templates/the_events_calendar.php:125
3718
  #: includes/free/post-form-templates/the_events_calendar.php:126
3719
+ #: templates/dashboard/posts.php:74 templates/dashboard.php:84
3720
  msgid "Featured Image"
3721
  msgstr ""
3722
 
3726
 
3727
  #: class/post-form-templates/post.php:90
3728
  #: includes/free/post-form-templates/the_events_calendar.php:138
3729
+ #: templates/dashboard.php:113
3730
  msgid "Excerpt"
3731
  msgstr ""
3732
 
3748
  msgid "Create Post"
3749
  msgstr ""
3750
 
3751
+ #: class/post-form-templates/post.php:142
3752
  msgid ""
3753
  "Post has been updated successfully. <a target=\"_blank\" "
3754
  "href=\"%link%\">View post</a>"
3755
  msgstr ""
3756
 
3757
+ #: class/post-form-templates/post.php:144
3758
  msgid "Update Post"
3759
  msgstr ""
3760
 
3774
  msgid "Invisible reCAPTCHA validation failed"
3775
  msgstr ""
3776
 
3777
+ #: class/render-form.php:357 includes/class-frontend-render-form.php:266
3778
  msgid "Your selected form is no longer available."
3779
  msgstr ""
3780
 
3781
+ #: class/render-form.php:362 includes/class-frontend-render-form.php:271
3782
  msgid "Please make sure you've published your form."
3783
  msgstr ""
3784
 
3803
 
3804
  #: class/render-form.php:1700 class/transactions-list-table.php:115
3805
  #: class/transactions-list-table.php:181 includes/free/edit-user.php:101
3806
+ #: templates/dashboard/posts.php:173 templates/dashboard.php:264
3807
  msgid "Delete"
3808
  msgstr ""
3809
 
3947
 
3948
  #: class/transactions-list-table.php:41
3949
  #: includes/class-list-table-subscribers.php:44
3950
+ #: templates/dashboard/posts.php:78 templates/dashboard.php:117
3951
  msgid "Status"
3952
  msgstr ""
3953
 
4196
  msgstr ""
4197
 
4198
  #: includes/class-list-table-subscribers.php:127
4199
+ #: templates/dashboard/posts.php:138 templates/dashboard.php:225
4200
  msgid "Completed"
4201
  msgstr ""
4202
 
5123
  "link"
5124
  msgstr ""
5125
 
5126
+ #: includes/free/class-login.php:739 includes/free/class-login.php:761
5127
+ msgid "Activation URL is not valid"
5128
+ msgstr ""
5129
+
5130
+ #: includes/free/class-login.php:749
5131
+ msgid "Invalid User activation url"
5132
+ msgstr ""
5133
+
5134
+ #: includes/free/class-login.php:754
5135
+ msgid "User already verified"
5136
+ msgstr ""
5137
+
5138
  #: includes/free/class-login.php:768 includes/free/class-login.php:838
5139
  msgid "Your account has been activated"
5140
  msgstr ""
5624
  msgid "Enable Recurring Payment"
5625
  msgstr ""
5626
 
5627
+ #: includes/setup-wizard.php:116
5628
  msgid "Introduction"
5629
  msgstr ""
5630
 
5631
+ #: includes/setup-wizard.php:126
5632
  msgid "Ready!"
5633
  msgstr ""
5634
 
5635
+ #: includes/setup-wizard.php:163
5636
  msgid "WPUF &rsaquo; Setup Wizard"
5637
  msgstr ""
5638
 
5639
+ #: includes/setup-wizard.php:228
5640
  msgid "Return to the WordPress Dashboard"
5641
  msgstr ""
5642
 
5643
+ #: includes/setup-wizard.php:270
5644
  msgid "Welcome to the world of WPUF!"
5645
  msgstr ""
5646
 
5647
+ #: includes/setup-wizard.php:271
5648
  msgid ""
5649
  "Thank you for choosing WPUF to power your websites frontend! This quick "
5650
  "setup wizard will help you configure the basic settings. <strong>It’s "
5651
  "completely optional and shouldn’t take longer than a minute.</strong>"
5652
  msgstr ""
5653
 
5654
+ #: includes/setup-wizard.php:272
5655
  msgid ""
5656
  "No time right now? If you don’t want to go through the wizard, you can skip "
5657
  "and return to the WordPress dashboard. Come back anytime if you change your "
5658
  "mind!"
5659
  msgstr ""
5660
 
5661
+ #: includes/setup-wizard.php:274
5662
  msgid "Let's Go!"
5663
  msgstr ""
5664
 
5665
+ #: includes/setup-wizard.php:275
5666
  msgid "Not right now"
5667
  msgstr ""
5668
 
5669
+ #: includes/setup-wizard.php:287
5670
  msgid "Basic Setting"
5671
  msgstr ""
5672
 
5673
+ #: includes/setup-wizard.php:294
5674
  msgid "Make payment enable for user to add posts on frontend."
5675
  msgstr ""
5676
 
5677
+ #: includes/setup-wizard.php:301
5678
  msgid "Install neccessery pages on your site frontend."
5679
  msgstr ""
5680
 
5681
+ #: includes/setup-wizard.php:306
5682
  msgid "Continue"
5683
  msgstr ""
5684
 
5685
+ #: includes/setup-wizard.php:307
5686
  msgid "Skip this step"
5687
  msgstr ""
5688
 
5689
+ #: includes/setup-wizard.php:342
5690
  msgid "Thank you!"
5691
  msgstr ""
5692
 
5693
+ #: includes/setup-wizard.php:347
5694
  msgid "Welcome to Awesomeness!"
5695
  msgstr ""
5696
 
5697
+ #: includes/setup-wizard.php:351
5698
  msgid "Go to Full Settings"
5699
  msgstr ""
5700
 
5701
+ #: lib/appsero/Insights.php:359
5702
  msgid ""
5703
  "Want to help make <strong>%1$s</strong> even more awesome? Allow %1$s to "
5704
  "collect non-sensitive diagnostic data and usage information."
5705
  msgstr ""
5706
 
5707
+ #: lib/appsero/Insights.php:364
5708
  msgid "what we collect"
5709
  msgstr ""
5710
 
5711
+ #: lib/appsero/Insights.php:370
5712
  msgid "Allow"
5713
  msgstr ""
5714
 
5715
+ #: lib/appsero/Insights.php:371
5716
  msgid "No thanks"
5717
  msgstr ""
5718
 
5719
+ #: lib/appsero/Insights.php:570
5720
  msgid "Once Weekly"
5721
  msgstr ""
5722
 
5723
+ #: lib/appsero/Insights.php:735
5724
  msgid "If you have a moment, please let us know why you are deactivating:"
5725
  msgstr ""
5726
 
5727
+ #: lib/appsero/Insights.php:749
5728
  msgid "I rather wouldn't say"
5729
  msgstr ""
5730
 
5731
+ #: lib/appsero/Insights.php:750
5732
  msgid "Submit & Deactivate"
5733
  msgstr ""
5734
 
5840
  msgid "You have created <span>%d</span> %s"
5841
  msgstr ""
5842
 
5843
+ #: templates/dashboard/posts.php:107 templates/dashboard.php:146
5844
  msgid "No Image"
5845
  msgstr ""
5846
 
5847
+ #: templates/dashboard/posts.php:121 templates/dashboard.php:160
5848
  msgid "Permalink to %s"
5849
  msgstr ""
5850
 
5851
+ #: templates/dashboard/posts.php:134 templates/dashboard.php:221
5852
  msgid "Not Applicable"
5853
  msgstr ""
5854
 
5855
+ #: templates/dashboard/posts.php:136 templates/dashboard.php:223
5856
  msgid "Pay Now"
5857
  msgstr ""
5858
 
5859
+ #: templates/dashboard/posts.php:171 templates/dashboard.php:262
5860
  msgid "Are you sure to delete?"
5861
  msgstr ""
5862
 
5863
+ #: templates/dashboard/posts.php:192 templates/dashboard.php:283
5864
  msgid "&laquo;"
5865
  msgstr ""
5866
 
5867
+ #: templates/dashboard/posts.php:193 templates/dashboard.php:284
5868
  msgid "&raquo;"
5869
  msgstr ""
5870
 
5871
+ #: templates/dashboard/posts.php:207 templates/dashboard.php:298
5872
  msgid "No %s found"
5873
  msgstr ""
5874
 
6218
  msgid "Egyptian Pound"
6219
  msgstr ""
6220
 
6221
+ #: wpuf-functions.php:2697
6222
  msgid "None"
6223
  msgstr ""
6224
 
6285
  msgid "https://tareq.co"
6286
  msgstr ""
6287
 
6288
+ #: includes/setup-wizard.php:40
6289
  msgctxt "enhanced select"
6290
  msgid "One result is available, press enter to select it."
6291
  msgstr ""
6292
 
6293
+ #: includes/setup-wizard.php:41
6294
  msgctxt "enhanced select"
6295
  msgid "%qty% results are available, use up and down arrow keys to navigate."
6296
  msgstr ""
6297
 
6298
+ #: includes/setup-wizard.php:42
6299
  msgctxt "enhanced select"
6300
  msgid "No matches found"
6301
  msgstr ""
6302
 
6303
+ #: includes/setup-wizard.php:43
6304
  msgctxt "enhanced select"
6305
  msgid "Loading failed"
6306
  msgstr ""
6307
 
6308
+ #: includes/setup-wizard.php:44
6309
  msgctxt "enhanced select"
6310
  msgid "Please enter 1 or more characters"
6311
  msgstr ""
6312
 
6313
+ #: includes/setup-wizard.php:45
6314
  msgctxt "enhanced select"
6315
  msgid "Please enter %qty% or more characters"
6316
  msgstr ""
6317
 
6318
+ #: includes/setup-wizard.php:46
6319
  msgctxt "enhanced select"
6320
  msgid "Please delete 1 character"
6321
  msgstr ""
6322
 
6323
+ #: includes/setup-wizard.php:47
6324
  msgctxt "enhanced select"
6325
  msgid "Please delete %qty% characters"
6326
  msgstr ""
6327
 
6328
+ #: includes/setup-wizard.php:48
6329
  msgctxt "enhanced select"
6330
  msgid "You can only select 1 item"
6331
  msgstr ""
6332
 
6333
+ #: includes/setup-wizard.php:49
6334
  msgctxt "enhanced select"
6335
  msgid "You can only select %qty% items"
6336
  msgstr ""
6337
 
6338
+ #: includes/setup-wizard.php:50
6339
  msgctxt "enhanced select"
6340
  msgid "Loading more results&hellip;"
6341
  msgstr ""
6342
 
6343
+ #: includes/setup-wizard.php:51
6344
  msgctxt "enhanced select"
6345
  msgid "Searching&hellip;"
6346
  msgstr ""
lib/appsero/Client.php CHANGED
@@ -96,6 +96,34 @@ class Client {
96
  return new Insights( $this );
97
  }
98
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
99
  /**
100
  * API Endpoint
101
  *
96
  return new Insights( $this );
97
  }
98
 
99
+ /**
100
+ * Initialize plugin/theme updater
101
+ *
102
+ * @return Appsero\Updater
103
+ */
104
+ public function updater() {
105
+
106
+ if ( ! class_exists( __NAMESPACE__ . '\Updater') ) {
107
+ require_once __DIR__ . '/Updater.php';
108
+ }
109
+
110
+ return new Updater( $this );
111
+ }
112
+
113
+ /**
114
+ * Initialize license checker
115
+ *
116
+ * @return Appsero\License
117
+ */
118
+ public function license() {
119
+
120
+ if ( ! class_exists( __NAMESPACE__ . '\License') ) {
121
+ require_once __DIR__ . '/License.php';
122
+ }
123
+
124
+ return new License( $this );
125
+ }
126
+
127
  /**
128
  * API Endpoint
129
  *
lib/appsero/Insights.php CHANGED
@@ -44,6 +44,7 @@ class Insights {
44
  * @param AppSero\Client
45
  */
46
  public function __construct( $client, $name = null, $file = null ) {
 
47
  if ( is_string( $client ) && ! empty( $name ) && ! empty( $file ) ) {
48
  $client = new Client( $client, $name, $file );
49
  }
@@ -123,7 +124,7 @@ class Insights {
123
  public function init_plugin() {
124
  // plugin deactivate popup
125
  if ( ! $this->is_local_server() ) {
126
- add_action( 'plugin_action_links_' . $this->client->basename, array( $this, 'plugin_action_links' ) );
127
  add_action( 'admin_footer', array( $this, 'deactivate_scripts' ) );
128
  }
129
 
@@ -153,6 +154,7 @@ class Insights {
153
  // cron events
154
  add_action( 'cron_schedules', array( $this, 'add_weekly_schedule' ) );
155
  add_action( $this->client->slug . '_tracker_send_event', array( $this, 'send_tracking_data' ) );
 
156
  }
157
 
158
  /**
@@ -179,7 +181,7 @@ class Insights {
179
  return;
180
  }
181
 
182
- $this->client->send_request( $this->get_tracking_data(), 'track' );
183
 
184
  update_option( $this->client->slug . '_tracking_last_send', time() );
185
  }
@@ -223,9 +225,10 @@ class Insights {
223
  'inactive_plugins' => count( $all_plugins['inactive_plugins'] ),
224
  'ip_address' => $this->get_user_ip_address(),
225
  'theme' => get_stylesheet(),
 
226
  );
227
 
228
- // for child classes
229
  if ( $extra = $this->get_extra_data() ) {
230
  $data['extra'] = $extra;
231
  }
@@ -697,9 +700,15 @@ class Insights {
697
  'server' => $this->get_server_info(),
698
  'wp' => $this->get_wp_info(),
699
  'ip_address' => $this->get_user_ip_address(),
 
700
  'version' => $this->client->project_version,
701
  );
702
 
 
 
 
 
 
703
  $this->client->send_request( $data, 'deactivate' );
704
 
705
  wp_send_json_success();
@@ -890,6 +899,7 @@ class Insights {
890
  'server' => $this->get_server_info(),
891
  'wp' => $this->get_wp_info(),
892
  'ip_address' => $this->get_user_ip_address(),
 
893
  'version' => $this->client->project_version,
894
  );
895
 
44
  * @param AppSero\Client
45
  */
46
  public function __construct( $client, $name = null, $file = null ) {
47
+
48
  if ( is_string( $client ) && ! empty( $name ) && ! empty( $file ) ) {
49
  $client = new Client( $client, $name, $file );
50
  }
124
  public function init_plugin() {
125
  // plugin deactivate popup
126
  if ( ! $this->is_local_server() ) {
127
+ add_filter( 'plugin_action_links_' . $this->client->basename, array( $this, 'plugin_action_links' ) );
128
  add_action( 'admin_footer', array( $this, 'deactivate_scripts' ) );
129
  }
130
 
154
  // cron events
155
  add_action( 'cron_schedules', array( $this, 'add_weekly_schedule' ) );
156
  add_action( $this->client->slug . '_tracker_send_event', array( $this, 'send_tracking_data' ) );
157
+ // add_action( 'admin_init', array( $this, 'send_tracking_data' ) ); // test
158
  }
159
 
160
  /**
181
  return;
182
  }
183
 
184
+ $response = $this->client->send_request( $this->get_tracking_data(), 'track' );
185
 
186
  update_option( $this->client->slug . '_tracking_last_send', time() );
187
  }
225
  'inactive_plugins' => count( $all_plugins['inactive_plugins'] ),
226
  'ip_address' => $this->get_user_ip_address(),
227
  'theme' => get_stylesheet(),
228
+ 'version' => $this->client->project_version,
229
  );
230
 
231
+ // Add metadata
232
  if ( $extra = $this->get_extra_data() ) {
233
  $data['extra'] = $extra;
234
  }
700
  'server' => $this->get_server_info(),
701
  'wp' => $this->get_wp_info(),
702
  'ip_address' => $this->get_user_ip_address(),
703
+ 'theme' => get_stylesheet(),
704
  'version' => $this->client->project_version,
705
  );
706
 
707
+ // Add metadata
708
+ if ( $extra = $this->get_extra_data() ) {
709
+ $data['extra'] = $extra;
710
+ }
711
+
712
  $this->client->send_request( $data, 'deactivate' );
713
 
714
  wp_send_json_success();
899
  'server' => $this->get_server_info(),
900
  'wp' => $this->get_wp_info(),
901
  'ip_address' => $this->get_user_ip_address(),
902
+ 'theme' => get_stylesheet(),
903
  'version' => $this->client->project_version,
904
  );
905
 
lib/appsero/License.php ADDED
@@ -0,0 +1,345 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Appsero;
3
+
4
+ /**
5
+ * AppSero License Checker
6
+ *
7
+ * This class will check, active and deactive license
8
+ */
9
+ class License {
10
+
11
+ /**
12
+ * AppSero\Client
13
+ *
14
+ * @var object
15
+ */
16
+ protected $client;
17
+
18
+ /**
19
+ * Arguments of create menu
20
+ *
21
+ * @var array
22
+ */
23
+ protected $menu_args;
24
+
25
+ /**
26
+ * `option_name` of `wp_options` table
27
+ *
28
+ * @var string
29
+ */
30
+ protected $option_key;
31
+
32
+ /**
33
+ * Error message of HTTP request
34
+ *
35
+ * @var string
36
+ */
37
+ protected $error;
38
+
39
+ /**
40
+ * Success message on form submit
41
+ *
42
+ * @var string
43
+ */
44
+ protected $success;
45
+
46
+ /**
47
+ * Set value for valid licnese
48
+ *
49
+ * @var boolean
50
+ */
51
+ private $is_valid_licnese = null;
52
+
53
+ /**
54
+ * Initialize the class
55
+ *
56
+ * @param Appsero\Client
57
+ */
58
+ public function __construct( Client $client ) {
59
+ $this->client = $client;
60
+
61
+ $this->option_key = 'appsero_' . md5( $this->client->slug ) . '_licenses';
62
+ }
63
+
64
+ /**
65
+ * Check license
66
+ *
67
+ * @return boolean
68
+ */
69
+ public function check( $license_key ) {
70
+ $route = 'public/license/' . $this->client->hash . '/check';
71
+
72
+ return $this->send_request( $license_key, $route );
73
+ }
74
+
75
+ /**
76
+ * Active a license
77
+ *
78
+ * @return boolean
79
+ */
80
+ public function activate( $license_key ) {
81
+ $route = 'public/license/' . $this->client->hash . '/activate';
82
+
83
+ return $this->send_request( $license_key, $route );
84
+ }
85
+
86
+ /**
87
+ * Deactivate a license
88
+ *
89
+ * @return boolean
90
+ */
91
+ public function deactivate( $license_key ) {
92
+ $route = 'public/license/' . $this->client->hash . '/deactivate';
93
+
94
+ return $this->send_request( $license_key, $route );
95
+ }
96
+
97
+ /**
98
+ * Send common request
99
+ *
100
+ * @param $license_key
101
+ * @param $route
102
+ *
103
+ * @return array
104
+ */
105
+ protected function send_request( $license_key, $route ) {
106
+ $params = array(
107
+ 'license_key' => $license_key,
108
+ 'url' => esc_url( home_url() ),
109
+ );
110
+
111
+ $response = $this->client->send_request( $params, $route, true );
112
+
113
+ if ( is_wp_error( $response ) ) {
114
+ return array(
115
+ 'success' => false,
116
+ 'error' => $response->get_error_message()
117
+ );
118
+ }
119
+
120
+ $response = json_decode( wp_remote_retrieve_body( $response ), true );
121
+
122
+ if ( empty( $response ) || isset( $response['exception'] )) {
123
+ return array(
124
+ 'success' => false,
125
+ 'error' => 'Unknown error occurred, Please try again.'
126
+ );
127
+ }
128
+
129
+ if ( isset( $response['errors'] ) && isset( $response['errors']['license_key'] ) ) {
130
+ $response = array(
131
+ 'success' => false,
132
+ 'error' => $response['errors']['license_key'][0]
133
+ );
134
+ }
135
+
136
+ return $response;
137
+ }
138
+
139
+ /**
140
+ * Add settings page for license
141
+ *
142
+ * @param array $args
143
+ *
144
+ * @return void
145
+ */
146
+ public function add_settings_page( $args = array() ) {
147
+ $defaults = array(
148
+ 'type' => 'menu', // Can be: menu, options, submenu
149
+ 'page_title' => 'Manage License',
150
+ 'menu_title' => 'Manage License',
151
+ 'capability' => 'manage_options',
152
+ 'menu_slug' => 'manage-license',
153
+ 'icon_url' => '',
154
+ 'position' => null,
155
+ 'parent_slug' => '',
156
+ );
157
+
158
+ $this->menu_args = wp_parse_args( $args, $defaults );
159
+
160
+ add_action( 'admin_menu', array( $this, 'admin_menu' ) );
161
+
162
+ add_action( $this->client->slug . '_license_check_event', array( $this, 'check_license_status' ) );
163
+ }
164
+
165
+ /**
166
+ * Admin Menu hook
167
+ *
168
+ * @return void
169
+ */
170
+ public function admin_menu() {
171
+ $add_page = 'add_' . $this->menu_args['type'] . '_page';
172
+
173
+ switch ( $this->menu_args['type'] ) {
174
+ case 'menu':
175
+ $add_page(
176
+ $this->menu_args['page_title'],
177
+ $this->menu_args['menu_title'],
178
+ $this->menu_args['capability'],
179
+ $this->menu_args['menu_slug'],
180
+ array( $this, 'menu_output' ),
181
+ $this->menu_args['icon_url'],
182
+ $this->menu_args['position']
183
+ );
184
+ break;
185
+
186
+ case 'submenu':
187
+ $add_page(
188
+ $this->menu_args['parent_slug'],
189
+ $this->menu_args['page_title'],
190
+ $this->menu_args['menu_title'],
191
+ $this->menu_args['capability'],
192
+ $this->menu_args['menu_slug'],
193
+ array( $this, 'menu_output' )
194
+ );
195
+ break;
196
+
197
+ case 'options':
198
+ $add_page(
199
+ $this->menu_args['page_title'],
200
+ $this->menu_args['menu_title'],
201
+ $this->menu_args['capability'],
202
+ $this->menu_args['menu_slug'],
203
+ array( $this, 'menu_output' )
204
+ );
205
+ break;
206
+ }
207
+ }
208
+
209
+ /**
210
+ * License menu output
211
+ */
212
+ public function menu_output() {
213
+
214
+ if ( isset( $_POST['submit'] ) ) {
215
+ $this->license_page_form( $_POST );
216
+ }
217
+
218
+ $license = get_option( $this->option_key, null );
219
+ $action = ( $license && isset( $license['status'] ) && 'activate' == $license['status'] ) ? 'Deactive' : 'Active';
220
+ ?>
221
+
222
+ <div class="wrap">
223
+ <h1><?php echo $this->menu_args['menu_title']; ?></h1>
224
+
225
+ <?php if ( ! empty( $this->error ) ) : ?>
226
+ <div class="notice notice-error is-dismissible" style="max-width: 745px;">
227
+ <p><?php echo $this->error; ?></p>
228
+ </div>
229
+ <?php endif; ?>
230
+
231
+ <?php if ( ! empty( $this->success ) ) : ?>
232
+ <div class="notice notice-success is-dismissible" style="max-width: 745px;">
233
+ <p><?php echo $this->success; ?></p>
234
+ </div>
235
+ <?php endif; ?>
236
+
237
+ <br />
238
+
239
+ <div class="widget open" style="max-width: 800px; margin: 0;">
240
+ <div class="widget-top">
241
+ <div class="widget-title"><h3>License Settings</h3></div>
242
+ </div>
243
+ <div class="widget-inside" style="display: block; padding: 5px 15px;">
244
+ <form method="post" action="<?php echo home_url( $_SERVER['REQUEST_URI'] ); ?>" novalidate="novalidate">
245
+ <table class="form-table">
246
+ <tbody>
247
+ <tr>
248
+ <th scope="row">
249
+ <label>License key</label>
250
+ </th>
251
+ <td>
252
+ <input type="text" class="regular-text code" value="<?php echo $license['key']; ?>"
253
+ placeholder="Enter your license key" name="license_key"
254
+ <?php echo ( 'Deactive' == $action ) ? 'readonly="readonly"' : ''; ?> />
255
+ </td>
256
+ </tr>
257
+ </tbody>
258
+ </table>
259
+ <input type="hidden" name="_action" value="<?php echo $action; ?>">
260
+ <p>
261
+ <button type="submit" name="submit" class="button button-primary"><?php echo $action; ?></button>
262
+ </p>
263
+ </form>
264
+ </div>
265
+ </div> <!-- /.widget -->
266
+ </div>
267
+
268
+ <?php
269
+ }
270
+
271
+ /**
272
+ * License form submit
273
+ */
274
+ private function license_page_form( $form ) {
275
+ if ( $form['_action'] == 'Active' ) {
276
+ $response = $this->activate( $form['license_key'] );
277
+
278
+ if ( ! empty( $response['success'] ) ) {
279
+ $data = array(
280
+ 'key' => $form['license_key'],
281
+ 'status' => 'activate',
282
+ );
283
+ update_option( $this->option_key, $data, false );
284
+ $this->success = 'License activated successfully.';
285
+ }
286
+ } else if ( $form['_action'] == 'Deactive' ) {
287
+ $response = $this->deactivate( $form['license_key'] );
288
+
289
+ if ( ! empty( $response['success'] ) ) {
290
+ $this->success = 'License deactivated successfully.';
291
+ }
292
+
293
+ $data = array(
294
+ 'key' => '',
295
+ 'status' => 'deactivate',
296
+ );
297
+
298
+ update_option( $this->option_key, $data, false );
299
+ }
300
+
301
+ if ( isset( $response['error'] ) && ! empty( $response['error'] ) ) {
302
+ $this->error = $response['error'];
303
+ }
304
+
305
+ // var_export( $response );
306
+ }
307
+
308
+ /**
309
+ * Check license status on schedule
310
+ */
311
+ public function check_license_status() {
312
+ $license = get_option( $this->option_key, null );
313
+
314
+ if ( isset( $license['key'] ) && ! empty( $license['key'] ) ) {
315
+ $response = $this->check( $license['key'] );
316
+
317
+ if ( isset( $response['success'] ) && $response['success'] ) {
318
+ $license['status'] = 'activate';
319
+ } else {
320
+ $license['status'] = 'deactivate';
321
+ }
322
+
323
+ update_option( $this->option_key, $license, false );
324
+ }
325
+ }
326
+
327
+ /**
328
+ * Check this is a valid license
329
+ */
330
+ public function is_valid() {
331
+ if ( null !== $this->is_valid_licnese ) {
332
+ return $this->is_valid_licnese;
333
+ }
334
+
335
+ $license = get_option( $this->option_key, null );
336
+ if ( ! empty( $license['key'] ) && isset( $license['status'] ) && $license['status'] == 'activate' ) {
337
+ $this->is_valid_licnese = true;
338
+ } else {
339
+ $this->is_valid_licnese = false;
340
+ }
341
+
342
+ return $this->is_valid_licnese;
343
+ }
344
+
345
+ }
lib/appsero/Updater.php ADDED
@@ -0,0 +1,247 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Appsero;
3
+
4
+ /**
5
+ * Appsero Updater
6
+ *
7
+ * This class will show new updates project
8
+ */
9
+ class Updater {
10
+
11
+ /**
12
+ * Appsero\Client
13
+ *
14
+ * @var object
15
+ */
16
+ protected $client;
17
+
18
+ /**
19
+ * Initialize the class
20
+ *
21
+ * @param Appsero\Client
22
+ */
23
+ public function __construct( Client $client ) {
24
+
25
+ $this->client = $client;
26
+ $this->cache_key = 'appsero_' . md5( $this->client->slug ) . '_version_info';
27
+
28
+ // Run hooks.
29
+ if ( $this->client->type == 'plugin' ) {
30
+ $this->run_plugin_hooks();
31
+ } elseif ( $this->client->type == 'theme' ) {
32
+ $this->run_theme_hooks();
33
+ }
34
+ }
35
+
36
+ /**
37
+ * Set up WordPress filter to hooks to get update.
38
+ *
39
+ * @return void
40
+ */
41
+ public function run_plugin_hooks() {
42
+ add_filter( 'pre_set_site_transient_update_plugins', array( $this, 'check_plugin_update' ) );
43
+ add_filter( 'plugins_api', array( $this, 'plugins_api_filter' ), 10, 3 );
44
+ }
45
+
46
+ /**
47
+ * Set up WordPress filter to hooks to get update.
48
+ *
49
+ * @return void
50
+ */
51
+ public function run_theme_hooks() {
52
+ add_filter( 'pre_set_site_transient_update_themes', array( $this, 'check_theme_update' ) );
53
+ }
54
+
55
+ /**
56
+ * Check for Update for this specific project
57
+ */
58
+ public function check_plugin_update( $transient_data ) {
59
+ global $pagenow;
60
+
61
+ if ( ! is_object( $transient_data ) ) {
62
+ $transient_data = new \stdClass;
63
+ }
64
+
65
+ if ( 'plugins.php' == $pagenow && is_multisite() ) {
66
+ return $transient_data;
67
+ }
68
+
69
+ if ( ! empty( $transient_data->response ) && ! empty( $transient_data->response[ $this->client->basename ] ) ) {
70
+ return $transient_data;
71
+ }
72
+
73
+ $version_info = $this->get_cached_version_info();
74
+
75
+ if ( false === $version_info ) {
76
+ $version_info = $this->get_project_latest_version();
77
+ $this->set_cached_version_info( $version_info );
78
+ }
79
+
80
+ if ( false !== $version_info && is_object( $version_info ) && isset( $version_info->new_version ) ) {
81
+
82
+ if ( version_compare( $this->client->project_version, $version_info->new_version, '<' ) ) {
83
+ unset( $version_info->sections );
84
+ $transient_data->response[ $this->client->basename ] = $version_info;
85
+ }
86
+
87
+ $transient_data->last_checked = time();
88
+ $transient_data->checked[ $this->client->basename ] = $this->client->project_version;
89
+ }
90
+
91
+ return $transient_data;
92
+ }
93
+
94
+ /**
95
+ * Get version info from database
96
+ *
97
+ * @return Object or Boolean
98
+ */
99
+ private function get_cached_version_info() {
100
+
101
+ $value = get_transient( $this->cache_key );
102
+
103
+ if( ! $value && ! isset( $value->name ) ) {
104
+ return false; // Cache is expired
105
+ }
106
+
107
+ // We need to turn the icons into an array
108
+ if ( isset( $value->icons ) ) {
109
+ $value->icons = (array) $value->icons;
110
+ }
111
+
112
+ // We need to turn the banners into an array
113
+ if ( isset( $value->banners ) ) {
114
+ $value->banners = (array) $value->banners;
115
+ }
116
+
117
+ if ( isset( $value->sections ) ) {
118
+ $value->sections = (array) $value->sections;
119
+ }
120
+
121
+ return $value;
122
+ }
123
+
124
+ /**
125
+ * Set version info to database
126
+ */
127
+ private function set_cached_version_info( $value ) {
128
+ if ( ! $value ) {
129
+ return;
130
+ }
131
+
132
+ set_transient( $this->cache_key, $value, 3 * HOUR_IN_SECONDS );
133
+ }
134
+
135
+ /**
136
+ * Get plugin info from Appsero
137
+ */
138
+ private function get_project_latest_version() {
139
+
140
+ $license_option_key = 'appsero_' . md5( $this->client->slug ) . '_manage_license';
141
+ $license = get_option( $license_option_key, null );
142
+
143
+ $params = array(
144
+ 'version' => $this->client->project_version,
145
+ 'name' => $this->client->name,
146
+ 'slug' => $this->client->slug,
147
+ 'basename' => $this->client->basename,
148
+ 'license_key' => ! empty( $license ) && isset( $license['key'] ) ? $license['key'] : '',
149
+ );
150
+
151
+ $route = 'update/' . $this->client->hash . '/check';
152
+
153
+ $response = $this->client->send_request( $params, $route, true );
154
+
155
+ if ( is_wp_error( $response ) ) {
156
+ return false;
157
+ }
158
+
159
+ $response = json_decode( wp_remote_retrieve_body( $response ) );
160
+
161
+ if ( ! isset( $response->slug ) ) {
162
+ return false;
163
+ }
164
+
165
+ if ( isset( $response->icons ) ) {
166
+ $response->icons = (array) $response->icons;
167
+ }
168
+
169
+ if ( isset( $response->banners ) ) {
170
+ $response->banners = (array) $response->banners;
171
+ }
172
+
173
+ if ( isset( $response->sections ) ) {
174
+ $response->sections = (array) $response->sections;
175
+ }
176
+
177
+ return $response;
178
+ }
179
+
180
+ /**
181
+ * Updates information on the "View version x.x details" page with custom data.
182
+ *
183
+ * @param mixed $data
184
+ * @param string $action
185
+ * @param object $args
186
+ *
187
+ * @return object $data
188
+ */
189
+ public function plugins_api_filter( $data, $action = '', $args = null ) {
190
+
191
+ if ( $action != 'plugin_information' ) {
192
+ return $data;
193
+ }
194
+
195
+ if ( ! isset( $args->slug ) || ( $args->slug != $this->client->slug ) ) {
196
+ return $data;
197
+ }
198
+
199
+ $version_info = $this->get_cached_version_info();
200
+
201
+ if ( false === $version_info ) {
202
+ $version_info = $this->get_project_latest_version();
203
+ $this->set_cached_version_info( $version_info );
204
+ }
205
+
206
+ return $version_info;
207
+ }
208
+
209
+ /**
210
+ * Check theme upate
211
+ */
212
+ public function check_theme_update( $transient_data ) {
213
+ global $pagenow;
214
+
215
+ if ( ! is_object( $transient_data ) ) {
216
+ $transient_data = new \stdClass;
217
+ }
218
+
219
+ if ( 'themes.php' == $pagenow && is_multisite() ) {
220
+ return $transient_data;
221
+ }
222
+
223
+ if ( ! empty( $transient_data->response ) && ! empty( $transient_data->response[ $this->client->slug ] ) ) {
224
+ return $transient_data;
225
+ }
226
+
227
+ $version_info = $this->get_cached_version_info();
228
+
229
+ if ( false === $version_info ) {
230
+ $version_info = $this->get_project_latest_version();
231
+ $this->set_cached_version_info( $version_info );
232
+ }
233
+
234
+ if ( false !== $version_info && is_object( $version_info ) && isset( $version_info->new_version ) ) {
235
+
236
+ if ( version_compare( $this->client->project_version, $version_info->new_version, '<' ) ) {
237
+ $transient_data->response[ $this->client->slug ] = (array) $version_info;
238
+ }
239
+
240
+ $transient_data->last_checked = time();
241
+ $transient_data->checked[ $this->client->slug ] = $this->client->project_version;
242
+ }
243
+
244
+ return $transient_data;
245
+ }
246
+
247
+ }
readme.txt CHANGED
@@ -5,7 +5,7 @@ Tags: Forms, registration, profile-builder, login, membership
5
  Requires at least: 4.0
6
  Tested up to: 5.1.1
7
  Requires PHP: 5.4
8
- Stable tag: 3.1.5
9
  License: GPLv2
10
  License URI: https://www.gnu.org/licenses/gpl-2.0.html
11
 
@@ -257,6 +257,14 @@ redirected to the edit page with that post id. Then you'll see the edit post for
257
 
258
  == Changelog ==
259
 
 
 
 
 
 
 
 
 
260
  = v3.1.5 (02 May, 2019) =
261
 
262
  * **Fix:** Conflict weDevs insight library with WP Project Manager plugin.
5
  Requires at least: 4.0
6
  Tested up to: 5.1.1
7
  Requires PHP: 5.4
8
+ Stable tag: 3.1.6
9
  License: GPLv2
10
  License URI: https://www.gnu.org/licenses/gpl-2.0.html
11
 
257
 
258
  == Changelog ==
259
 
260
+ = v3.1.6 (23 May, 2019) =
261
+
262
+ * **Fix:** URL field empty value was not saving.
263
+ * **Fix:** Custom taxonomy field empty data were not updating.
264
+ * **Fix:** Added translation function for missing strings.
265
+ * **Improvement:** Added active class to account page menu items.
266
+ * **Improvement:** Responsive frontend pages.
267
+
268
  = v3.1.5 (02 May, 2019) =
269
 
270
  * **Fix:** Conflict weDevs insight library with WP Project Manager plugin.
templates/account.php CHANGED
@@ -14,8 +14,10 @@
14
  continue;
15
  }
16
  }
 
17
  echo sprintf(
18
- '<li><a href="%s">%s</a></li>',
 
19
  add_query_arg( array( 'section' => $section['slug'] ), get_permalink() ),
20
  $section['label']
21
  );
14
  continue;
15
  }
16
  }
17
+
18
  echo sprintf(
19
+ '<li class="wpuf-menu-item %s"><a href="%s">%s</a></li>',
20
+ ( isset( $_GET['section'] ) && $_GET['section'] == $section['slug'] ) ? $section['slug'] . ' active' : $section['slug'],
21
  add_query_arg( array( 'section' => $section['slug'] ), get_permalink() ),
22
  $section['label']
23
  );
templates/dashboard.php CHANGED
@@ -7,7 +7,7 @@
7
  <?php if ( wpuf_get_option( 'show_post_count', 'wpuf_dashboard', 'on' ) == 'on' ) { ?>
8
  <?php if ( !empty( $post_type_obj )): ?>
9
  <div class="post_count">
10
- <?php
11
  $labels = array();
12
  foreach ($post_type_obj as $key => $post_type_name) {
13
  if ( isset( $post_type_name->label ) ) {
@@ -15,7 +15,7 @@
15
  }
16
  }
17
  printf( __( 'You have created <span>%d</span> (%s)', 'wp-user-frontend' ), $dashboard_query->found_posts, implode( ', ', $labels ) );
18
- ?>
19
  </div>
20
  <?php endif ?>
21
  <?php } ?>
@@ -23,16 +23,16 @@
23
  <?php if ( !empty( $post_type_obj ) ) do_action( 'wpuf_dashboard_top', $userdata->ID, $post_type_obj ) ?>
24
  <?php
25
 
26
- $meta_label = array();
27
- $meta_name = array();
28
- $meta_id = array();
29
- $meta_key = array();
30
- if ( !empty( $meta ) ) {
31
- $arr = explode(',', $meta);
32
- foreach ($arr as $mkey) {
33
- $meta_key[] = trim($mkey);
34
- }
35
  }
 
36
  ?>
37
  <?php if ( $dashboard_query->have_posts() ) {
38
 
@@ -75,228 +75,230 @@
75
  $current_user = wpuf_get_user();
76
  ?>
77
 
78
- <table class="items-table <?php echo implode( ' ', $post_type ); ?>" cellpadding="0" cellspacing="0">
79
- <thead>
80
- <tr class="items-list-header">
81
- <?php
82
- if ((( 'on' == $featured_img || 'on' == $featured_image ) || ( 'off' == $featured_img && 'on' == $featured_image ) || ( 'on' == $featured_img && 'default' == $featured_image )) && !( 'on' == $featured_img && 'off' == $featured_image )) {
83
- echo '<th>' . __( 'Featured Image', 'wp-user-frontend' ) . '</th>';
84
- }
85
- ?>
86
- <th><?php _e( 'Title', 'wp-user-frontend' ); ?></th>
 
87
 
88
- <?php
89
- if ( 'on' == $category ) {
90
- echo '<th>' . __( 'Category', 'wp-user-frontend' ) . '</th>';
91
- }
92
- ?>
93
 
94
- <?php
95
  // populate meta column headers
96
 
97
- if ( $meta != 'off' ) {
98
- for ( $i = 0; $i < $len_label; $i++ ) {
99
- for ( $j = 0; $j < $len; $j++ ) {
100
- if ( $meta_key[$j] == $meta_name[$i] ) {
101
- echo '<th>';
102
- echo __( $meta_label[$i], 'wp-user-frontend' );
103
- echo '</th>';
 
104
  }
105
  }
106
  }
107
- }
108
- ?>
109
-
110
- <?php
111
- if ( 'on' == $excerpt ) {
112
- echo '<th>' . __( 'Excerpt', 'wp-user-frontend' ) . '</th>';
113
- }
114
- ?>
115
-
116
- <th><?php _e( 'Status', 'wp-user-frontend' ); ?></th>
117
 
118
- <?php do_action( 'wpuf_dashboard_head_col', $args ) ?>
 
 
 
 
119
 
120
- <?php if( 'on' == $enable_payment && 'off' != $payment_column ): ?>
121
- <th><?php _e( 'Payment', 'wp-user-frontend' ); ?></th>
122
- <?php endif; ?>
123
 
124
- <th><?php _e( 'Options', 'wp-user-frontend' ); ?></th>
125
- </tr>
126
- </thead>
127
- <tbody>
128
- <?php
129
- global $post;
130
 
131
- while ( $dashboard_query->have_posts() ) {
132
- $dashboard_query->the_post();
133
- $show_link = !in_array( $post->post_status, array('draft', 'future', 'pending') );
134
- $payment_status = get_post_meta( $post->ID, '_wpuf_payment_status', true );
135
- ?>
136
- <tr>
137
- <?php if ((( 'on' == $featured_img || 'on' == $featured_image ) || ( 'off' == $featured_img && 'on' == $featured_image ) || ( 'on' == $featured_img && 'default' == $featured_image )) && !( 'on' == $featured_img && 'off' == $featured_image )) { ?>
138
- <td>
139
- <?php
140
- echo $show_link ? '<a href="' . get_permalink( $post->ID ) . '">' : '';
141
 
142
- if ( has_post_thumbnail() ) {
143
- the_post_thumbnail( $featured_img_size );
144
- } else {
145
- printf( '<img src="%1$s" class="attachment-thumbnail wp-post-image" alt="%2$s" title="%2$s" />', apply_filters( 'wpuf_no_image', plugins_url( '/assets/images/no-image.png', dirname( __FILE__ ) ) ), __( 'No Image', 'wp-user-frontend' ) );
146
- }
 
147
 
148
- echo $show_link ? '</a>' : '';
149
- ?>
150
- </td>
151
- <?php } ?>
152
- <td>
153
- <?php if ( !$show_link ) { ?>
 
 
 
 
154
 
155
- <?php the_title(); ?>
 
 
 
 
156
 
157
- <?php } else { ?>
 
 
 
 
 
158
 
159
- <a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'wp-user-frontend' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_title(); ?></a>
160
 
161
- <?php } ?>
162
- </td>
163
 
164
- <?php if ( 'on' == $category ) { ?>
165
- <td>
166
- <?php
167
 
168
- $taxonomies = get_object_taxonomies( get_post_type(), 'objects' );
169
- $post_tax_terms = array();
170
 
171
- foreach ( $taxonomies as $taxonomy_slug => $taxonomy ) {
172
- if ( $taxonomy->hierarchical == 1 ) {
173
- $terms = get_the_terms( $post->ID, $taxonomy_slug );
174
 
175
- if ( ! empty( $terms ) ) {
176
- foreach ( $terms as $term ) {
177
- $post_tax_terms[] = sprintf( '<a href="%1$s">%2$s</a>',
178
- esc_url( get_term_link( $term->slug, $taxonomy_slug ) ),
179
- esc_html( $term->name )
180
- );
 
 
 
 
 
 
 
 
 
181
  }
182
  }
183
- }
184
- }
185
- echo apply_filters( 'wpuf_dashboard_post_taxonomy', implode( ',', $post_tax_terms ) );
186
 
187
- ?>
188
- </td>
189
- <?php }
190
 
191
  //populate meta column fields
192
- ?>
193
- <?php if ( $meta != 'off' ) {
194
- for ( $i = 0; $i < $len_label; $i++ ) {
195
- for ( $j = 0; $j < $len; $j++ ) {
196
- if ( $meta_key[$j] == $meta_name[$i] ) {
197
- echo '<td>';
198
- $m_val = get_post_meta( $post->ID, $meta_name[$i], true );
199
- echo $m_val;
200
- echo '</td>';
 
201
  }
202
  }
203
- }
204
- } ?>
205
-
206
- <?php if ( 'on' == $excerpt ) { ?>
207
- <td>
208
- <?php the_excerpt(); ?>
209
- </td>
210
- <?php } ?>
211
- <td>
212
- <?php wpuf_show_post_status( $post->post_status ) ?>
213
- </td>
214
-
215
- <?php do_action( 'wpuf_dashboard_row_col', $args, $post ) ?>
216
 
217
- <?php if( 'on' == $enable_payment && 'off' != $payment_column ): ?>
 
 
 
 
218
  <td>
219
- <?php if( empty( $payment_status ) ) : ?>
220
- <?php _e( 'Not Applicable', 'wp-user-frontend' ); ?>
221
- <?php elseif( $payment_status != 'completed' ) : ?>
222
- <a href="<?php echo trailingslashit( get_permalink( wpuf_get_option( 'payment_page', 'wpuf_payment' ) ) ); ?>?action=wpuf_pay&type=post&post_id=<?php echo $post->ID; ?>"><?php _e( 'Pay Now', 'wp-user-frontend' ); ?></a>
223
- <?php elseif( $payment_status == 'completed' ) : ?>
224
- <?php _e( 'Completed', 'wp-user-frontend' ); ?>
225
- <?php endif; ?>
226
  </td>
227
- <?php endif; ?>
228
-
229
- <td>
230
- <?php
231
- if ( wpuf_get_option( 'enable_post_edit', 'wpuf_dashboard', 'yes' ) == 'yes' ) {
232
- $disable_pending_edit = wpuf_get_option( 'disable_pending_edit', 'wpuf_dashboard', 'on' );
233
- $edit_page = (int) wpuf_get_option( 'edit_page_id', 'wpuf_frontend_posting' );
234
- $post_id = $post->ID;
235
- $url = add_query_arg( array('pid' => $post->ID), get_permalink( $edit_page ) );
236
-
237
- $edit_page_url = apply_filters( 'wpuf_edit_post_link', $url );
238
-
239
-
240
- $show_edit = true;
241
-
242
- if ( $post->post_status == 'pending' && $disable_pending_edit == 'on' ) {
243
- $show_edit = false;
244
- }
245
-
246
- if ( ($post->post_status =='draft' || $post->post_status =='pending') && ( !empty( $payment_status ) && $payment_status != 'completed' ) ) {
247
- $show_edit = false;
248
- }
249
 
250
- if ( $show_edit ) {
251
- ?>
252
- <a href="<?php echo wp_nonce_url( $edit_page_url, 'wpuf_edit' ); ?>"><?php _e( 'Edit', 'wp-user-frontend' ); ?></a>
253
- <?php
254
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
255
  }
 
 
256
  ?>
257
 
258
- <?php
259
- if ( wpuf_get_option( 'enable_post_del', 'wpuf_dashboard', 'yes' ) == 'yes' ) {
260
- $del_url = add_query_arg( array('action' => 'del', 'pid' => $post->ID) );
261
- $message = __( 'Are you sure to delete?', 'wp-user-frontend' );
262
- ?>
263
- <a href="<?php echo wp_nonce_url( $del_url, 'wpuf_del' ) ?>" onclick="return confirm('<?php echo $message ?>');"><span style="color: red;"><?php _e( 'Delete', 'wp-user-frontend' ); ?></span></a>
264
- <?php } ?>
265
- </td>
266
- </tr>
267
  <?php
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
268
  }
269
-
270
- wp_reset_postdata();
271
- ?>
272
-
273
- </tbody>
274
- </table>
275
-
276
- <div class="wpuf-pagination">
277
- <?php
278
- $pagination = paginate_links( array(
279
- 'base' => add_query_arg( 'pagenum', '%#%' ),
280
- 'format' => '',
281
- 'prev_text' => __( '&laquo;', 'wp-user-frontend' ),
282
- 'next_text' => __( '&raquo;', 'wp-user-frontend' ),
283
- 'total' => $dashboard_query->max_num_pages,
284
- 'current' => $pagenum,
285
- 'add_args' => false
286
- ) );
287
-
288
- if ( $pagination ) {
289
- echo $pagination;
290
  }
291
- ?>
292
- </div>
293
- <?php
294
- } else {
295
- if ( !empty( $post_type_obj ) && !empty( $labels ) ) {
296
- printf( '<div class="wpuf-message">' . __( 'No %s found', 'wp-user-frontend' ) . '</div>', implode( ', ', $labels ) );
297
- do_action( 'wpuf_dashboard_nopost', $userdata->ID, $post_type_obj );
298
- }
299
- }
300
- if ( !empty( $post_type_obj ) ) do_action( 'wpuf_dashboard_bottom', $userdata->ID, $post_type_obj ); ?>
301
 
302
- </div>
7
  <?php if ( wpuf_get_option( 'show_post_count', 'wpuf_dashboard', 'on' ) == 'on' ) { ?>
8
  <?php if ( !empty( $post_type_obj )): ?>
9
  <div class="post_count">
10
+ <?php
11
  $labels = array();
12
  foreach ($post_type_obj as $key => $post_type_name) {
13
  if ( isset( $post_type_name->label ) ) {
15
  }
16
  }
17
  printf( __( 'You have created <span>%d</span> (%s)', 'wp-user-frontend' ), $dashboard_query->found_posts, implode( ', ', $labels ) );
18
+ ?>
19
  </div>
20
  <?php endif ?>
21
  <?php } ?>
23
  <?php if ( !empty( $post_type_obj ) ) do_action( 'wpuf_dashboard_top', $userdata->ID, $post_type_obj ) ?>
24
  <?php
25
 
26
+ $meta_label = array();
27
+ $meta_name = array();
28
+ $meta_id = array();
29
+ $meta_key = array();
30
+ if ( !empty( $meta ) ) {
31
+ $arr = explode(',', $meta);
32
+ foreach ($arr as $mkey) {
33
+ $meta_key[] = trim($mkey);
 
34
  }
35
+ }
36
  ?>
37
  <?php if ( $dashboard_query->have_posts() ) {
38
 
75
  $current_user = wpuf_get_user();
76
  ?>
77
 
78
+ <div class="items-table-container">
79
+ <table class="items-table <?php echo implode( ' ', $post_type ); ?>" cellpadding="0" cellspacing="0">
80
+ <thead>
81
+ <tr class="items-list-header">
82
+ <?php
83
+ if ((( 'on' == $featured_img || 'on' == $featured_image ) || ( 'off' == $featured_img && 'on' == $featured_image ) || ( 'on' == $featured_img && 'default' == $featured_image )) && !( 'on' == $featured_img && 'off' == $featured_image )) {
84
+ echo '<th>' . __( 'Featured Image', 'wp-user-frontend' ) . '</th>';
85
+ }
86
+ ?>
87
+ <th><?php _e( 'Title', 'wp-user-frontend' ); ?></th>
88
 
89
+ <?php
90
+ if ( 'on' == $category ) {
91
+ echo '<th>' . __( 'Category', 'wp-user-frontend' ) . '</th>';
92
+ }
93
+ ?>
94
 
95
+ <?php
96
  // populate meta column headers
97
 
98
+ if ( $meta != 'off' ) {
99
+ for ( $i = 0; $i < $len_label; $i++ ) {
100
+ for ( $j = 0; $j < $len; $j++ ) {
101
+ if ( $meta_key[$j] == $meta_name[$i] ) {
102
+ echo '<th>';
103
+ echo __( $meta_label[$i], 'wp-user-frontend' );
104
+ echo '</th>';
105
+ }
106
  }
107
  }
108
  }
109
+ ?>
 
 
 
 
 
 
 
 
 
110
 
111
+ <?php
112
+ if ( 'on' == $excerpt ) {
113
+ echo '<th>' . __( 'Excerpt', 'wp-user-frontend' ) . '</th>';
114
+ }
115
+ ?>
116
 
117
+ <th><?php _e( 'Status', 'wp-user-frontend' ); ?></th>
 
 
118
 
119
+ <?php do_action( 'wpuf_dashboard_head_col', $args ) ?>
 
 
 
 
 
120
 
121
+ <?php if( 'on' == $enable_payment && 'off' != $payment_column ): ?>
122
+ <th><?php _e( 'Payment', 'wp-user-frontend' ); ?></th>
123
+ <?php endif; ?>
 
 
 
 
 
 
 
124
 
125
+ <th><?php _e( 'Options', 'wp-user-frontend' ); ?></th>
126
+ </tr>
127
+ </thead>
128
+ <tbody>
129
+ <?php
130
+ global $post;
131
 
132
+ while ( $dashboard_query->have_posts() ) {
133
+ $dashboard_query->the_post();
134
+ $show_link = !in_array( $post->post_status, array('draft', 'future', 'pending') );
135
+ $payment_status = get_post_meta( $post->ID, '_wpuf_payment_status', true );
136
+ ?>
137
+ <tr>
138
+ <?php if ((( 'on' == $featured_img || 'on' == $featured_image ) || ( 'off' == $featured_img && 'on' == $featured_image ) || ( 'on' == $featured_img && 'default' == $featured_image )) && !( 'on' == $featured_img && 'off' == $featured_image )) { ?>
139
+ <td>
140
+ <?php
141
+ echo $show_link ? '<a href="' . get_permalink( $post->ID ) . '">' : '';
142
 
143
+ if ( has_post_thumbnail() ) {
144
+ the_post_thumbnail( $featured_img_size );
145
+ } else {
146
+ printf( '<img src="%1$s" class="attachment-thumbnail wp-post-image" alt="%2$s" title="%2$s" />', apply_filters( 'wpuf_no_image', plugins_url( '/assets/images/no-image.png', dirname( __FILE__ ) ) ), __( 'No Image', 'wp-user-frontend' ) );
147
+ }
148
 
149
+ echo $show_link ? '</a>' : '';
150
+ ?>
151
+ </td>
152
+ <?php } ?>
153
+ <td>
154
+ <?php if ( !$show_link ) { ?>
155
 
156
+ <?php the_title(); ?>
157
 
158
+ <?php } else { ?>
 
159
 
160
+ <a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'wp-user-frontend' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_title(); ?></a>
 
 
161
 
162
+ <?php } ?>
163
+ </td>
164
 
165
+ <?php if ( 'on' == $category ) { ?>
166
+ <td>
167
+ <?php
168
 
169
+ $taxonomies = get_object_taxonomies( get_post_type(), 'objects' );
170
+ $post_tax_terms = array();
171
+
172
+ foreach ( $taxonomies as $taxonomy_slug => $taxonomy ) {
173
+ if ( $taxonomy->hierarchical == 1 ) {
174
+ $terms = get_the_terms( $post->ID, $taxonomy_slug );
175
+
176
+ if ( ! empty( $terms ) ) {
177
+ foreach ( $terms as $term ) {
178
+ $post_tax_terms[] = sprintf( '<a href="%1$s">%2$s</a>',
179
+ esc_url( get_term_link( $term->slug, $taxonomy_slug ) ),
180
+ esc_html( $term->name )
181
+ );
182
+ }
183
+ }
184
  }
185
  }
186
+ echo apply_filters( 'wpuf_dashboard_post_taxonomy', implode( ',', $post_tax_terms ) );
 
 
187
 
188
+ ?>
189
+ </td>
190
+ <?php }
191
 
192
  //populate meta column fields
193
+ ?>
194
+ <?php if ( $meta != 'off' ) {
195
+ for ( $i = 0; $i < $len_label; $i++ ) {
196
+ for ( $j = 0; $j < $len; $j++ ) {
197
+ if ( $meta_key[$j] == $meta_name[$i] ) {
198
+ echo '<td>';
199
+ $m_val = get_post_meta( $post->ID, $meta_name[$i], true );
200
+ echo $m_val;
201
+ echo '</td>';
202
+ }
203
  }
204
  }
205
+ } ?>
 
 
 
 
 
 
 
 
 
 
 
 
206
 
207
+ <?php if ( 'on' == $excerpt ) { ?>
208
+ <td>
209
+ <?php the_excerpt(); ?>
210
+ </td>
211
+ <?php } ?>
212
  <td>
213
+ <?php wpuf_show_post_status( $post->post_status ) ?>
 
 
 
 
 
 
214
  </td>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
215
 
216
+ <?php do_action( 'wpuf_dashboard_row_col', $args, $post ) ?>
217
+
218
+ <?php if( 'on' == $enable_payment && 'off' != $payment_column ): ?>
219
+ <td>
220
+ <?php if( empty( $payment_status ) ) : ?>
221
+ <?php _e( 'Not Applicable', 'wp-user-frontend' ); ?>
222
+ <?php elseif( $payment_status != 'completed' ) : ?>
223
+ <a href="<?php echo trailingslashit( get_permalink( wpuf_get_option( 'payment_page', 'wpuf_payment' ) ) ); ?>?action=wpuf_pay&type=post&post_id=<?php echo $post->ID; ?>"><?php _e( 'Pay Now', 'wp-user-frontend' ); ?></a>
224
+ <?php elseif( $payment_status == 'completed' ) : ?>
225
+ <?php _e( 'Completed', 'wp-user-frontend' ); ?>
226
+ <?php endif; ?>
227
+ </td>
228
+ <?php endif; ?>
229
+
230
+ <td>
231
+ <?php
232
+ if ( wpuf_get_option( 'enable_post_edit', 'wpuf_dashboard', 'yes' ) == 'yes' ) {
233
+ $disable_pending_edit = wpuf_get_option( 'disable_pending_edit', 'wpuf_dashboard', 'on' );
234
+ $edit_page = (int) wpuf_get_option( 'edit_page_id', 'wpuf_frontend_posting' );
235
+ $post_id = $post->ID;
236
+ $url = add_query_arg( array('pid' => $post->ID), get_permalink( $edit_page ) );
237
+
238
+ $edit_page_url = apply_filters( 'wpuf_edit_post_link', $url );
239
+
240
+
241
+ $show_edit = true;
242
+
243
+ if ( $post->post_status == 'pending' && $disable_pending_edit == 'on' ) {
244
+ $show_edit = false;
245
+ }
246
+
247
+ if ( ($post->post_status =='draft' || $post->post_status =='pending') && ( !empty( $payment_status ) && $payment_status != 'completed' ) ) {
248
+ $show_edit = false;
249
+ }
250
+
251
+ if ( $show_edit ) {
252
+ ?>
253
+ <a href="<?php echo wp_nonce_url( $edit_page_url, 'wpuf_edit' ); ?>"><?php _e( 'Edit', 'wp-user-frontend' ); ?></a>
254
+ <?php
255
+ }
256
+ }
257
+ ?>
258
+
259
+ <?php
260
+ if ( wpuf_get_option( 'enable_post_del', 'wpuf_dashboard', 'yes' ) == 'yes' ) {
261
+ $del_url = add_query_arg( array('action' => 'del', 'pid' => $post->ID) );
262
+ $message = __( 'Are you sure to delete?', 'wp-user-frontend' );
263
+ ?>
264
+ <a href="<?php echo wp_nonce_url( $del_url, 'wpuf_del' ) ?>" onclick="return confirm('<?php echo $message ?>');"><span style="color: red;"><?php _e( 'Delete', 'wp-user-frontend' ); ?></span></a>
265
+ <?php } ?>
266
+ </td>
267
+ </tr>
268
+ <?php
269
  }
270
+
271
+ wp_reset_postdata();
272
  ?>
273
 
274
+ </tbody>
275
+ </table>
276
+ </div>
277
+
278
+ <div class="wpuf-pagination">
 
 
 
 
279
  <?php
280
+ $pagination = paginate_links( array(
281
+ 'base' => add_query_arg( 'pagenum', '%#%' ),
282
+ 'format' => '',
283
+ 'prev_text' => __( '&laquo;', 'wp-user-frontend' ),
284
+ 'next_text' => __( '&raquo;', 'wp-user-frontend' ),
285
+ 'total' => $dashboard_query->max_num_pages,
286
+ 'current' => $pagenum,
287
+ 'add_args' => false
288
+ ) );
289
+
290
+ if ( $pagination ) {
291
+ echo $pagination;
292
+ }
293
+ ?>
294
+ </div>
295
+ <?php
296
+ } else {
297
+ if ( !empty( $post_type_obj ) && !empty( $labels ) ) {
298
+ printf( '<div class="wpuf-message">' . __( 'No %s found', 'wp-user-frontend' ) . '</div>', implode( ', ', $labels ) );
299
+ do_action( 'wpuf_dashboard_nopost', $userdata->ID, $post_type_obj );
300
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
301
  }
302
+ if ( !empty( $post_type_obj ) ) do_action( 'wpuf_dashboard_bottom', $userdata->ID, $post_type_obj ); ?>
 
 
 
 
 
 
 
 
 
303
 
304
+ </div>
templates/dashboard/posts.php CHANGED
@@ -65,145 +65,147 @@ $post_type_obj = get_post_type_object( $post_type );
65
  $enable_payment = wpuf_get_option( 'enable_payment', 'wpuf_payment', 'on' );
66
  $current_user = wpuf_get_user();
67
  ?>
68
- <table class="items-table <?php echo $post_type; ?>" cellpadding="0" cellspacing="0">
69
- <thead>
70
- <tr class="items-list-header">
71
- <?php
72
- if ( 'on' == $featured_img ) {
73
- echo '<th>' . __( 'Featured Image', 'wp-user-frontend' ) . '</th>';
74
- }
75
- ?>
76
- <th><?php _e( 'Title', 'wp-user-frontend' ); ?></th>
77
- <th><?php _e( 'Status', 'wp-user-frontend' ); ?></th>
 
 
 
78
 
79
- <?php do_action( 'wpuf_account_posts_head_col', $args ) ?>
 
 
80
 
81
- <?php if( 'on' == $enable_payment && 'off' != $payment_column ): ?>
82
- <th><?php _e( 'Payment', 'wp-user-frontend' ); ?></th>
83
- <?php endif; ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
84
 
85
- <th><?php _e( 'Options', 'wp-user-frontend' ); ?></th>
86
- </tr>
87
- </thead>
88
- <tbody>
89
- <?php
90
- global $post;
91
 
92
- while ( $dashboard_query->have_posts() ) {
93
- $dashboard_query->the_post();
94
- $show_link = !in_array( $post->post_status, array('draft', 'future', 'pending') );
95
- $payment_status = get_post_meta( $post->ID, '_wpuf_payment_status', true );
96
- ?>
97
- <tr>
98
- <?php if ( 'on' == $featured_img ) { ?>
99
  <td>
100
- <?php
101
- echo $show_link ? '<a href="' . get_permalink( $post->ID ) . '">' : '';
102
-
103
- if ( has_post_thumbnail() ) {
104
- the_post_thumbnail( $featured_img_size );
105
- } else {
106
- printf( '<img src="%1$s" class="attachment-thumbnail wp-post-image" alt="%2$s" title="%2$s" />', apply_filters( 'wpuf_no_image', plugins_url( '../assets/images/no-image.png', dirname( __FILE__ ) ) ), __( 'No Image', 'wp-user-frontend' ) );
107
- }
108
-
109
- echo $show_link ? '</a>' : '';
110
- ?>
111
- </td>
112
- <?php } ?>
113
- <td>
114
- <?php if ( !$show_link ) { ?>
115
-
116
- <?php the_title(); ?>
117
 
118
- <?php } else { ?>
119
 
120
- <a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'wp-user-frontend' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_title(); ?></a>
121
 
122
- <?php } ?>
123
- </td>
124
- <td>
125
- <?php wpuf_show_post_status( $post->post_status ) ?>
126
- </td>
127
 
128
- <?php do_action( 'wpuf_account_posts_row_col', $args, $post ) ?>
129
-
130
- <?php if( 'on' == $enable_payment && 'off' != $payment_column ): ?>
131
  <td>
132
- <?php if( empty( $payment_status ) ) : ?>
133
- <?php _e( 'Not Applicable', 'wp-user-frontend' ); ?>
134
- <?php elseif( $payment_status != 'completed' ) : ?>
135
- <a href="<?php echo trailingslashit( get_permalink( wpuf_get_option( 'payment_page', 'wpuf_payment' ) ) ); ?>?action=wpuf_pay&type=post&post_id=<?php echo $post->ID; ?>"><?php _e( 'Pay Now', 'wp-user-frontend' ); ?></a>
136
- <?php elseif( $payment_status == 'completed' ) : ?>
137
- <?php _e( 'Completed', 'wp-user-frontend' ); ?>
138
- <?php endif; ?>
139
  </td>
140
- <?php endif; ?>
141
-
142
- <td>
143
- <?php
144
- if ( wpuf_get_option( 'enable_post_edit', 'wpuf_dashboard', 'yes' ) == 'yes' ) {
145
- $disable_pending_edit = wpuf_get_option( 'disable_pending_edit', 'wpuf_dashboard', 'on' );
146
- $edit_page = (int) wpuf_get_option( 'edit_page_id', 'wpuf_frontend_posting' );
147
- $url = add_query_arg( array('pid' => $post->ID), get_permalink( $edit_page ) );
148
-
149
- $show_edit = true;
150
-
151
- if ( $post->post_status == 'pending' && $disable_pending_edit == 'on' ) {
152
- $show_edit = false;
153
- }
154
 
155
- if ( ($post->post_status =='draft' || $post->post_status =='pending') && ( !empty( $payment_status ) && $payment_status != 'completed' ) ) {
156
- $show_edit = false;
157
- }
158
-
159
- if ( $show_edit ) {
160
- ?>
161
- <a class="wpuf-posts-options wpuf-posts-edit" href="<?php echo wp_nonce_url( $url, 'wpuf_edit' ); ?>"><?php _e( 'Edit', 'wp-user-frontend' ); ?></a>
162
- <?php
163
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
164
  }
 
 
165
  ?>
166
 
167
- <?php
168
- if ( wpuf_get_option( 'enable_post_del', 'wpuf_dashboard', 'yes' ) == 'yes' ) {
169
- $del_url = add_query_arg( array('action' => 'del', 'pid' => $post->ID) );
170
- $message = __( 'Are you sure to delete?', 'wp-user-frontend' );
171
- ?>
172
- <a class="wpuf-posts-options wpuf-posts-delete" style="color: red;" href="<?php echo wp_nonce_url( $del_url, 'wpuf_del' ) ?>" onclick="return confirm('<?php echo $message ?>');"><?php _e( 'Delete', 'wp-user-frontend' ); ?></a>
173
- <?php } ?>
174
- </td>
175
- </tr>
176
  <?php
177
- }
178
-
179
- wp_reset_postdata();
180
- ?>
181
-
182
- </tbody>
183
- </table>
184
-
185
- <div class="wpuf-pagination">
186
- <?php
187
- $pagination = paginate_links( array(
188
- 'base' => add_query_arg( 'pagenum', '%#%' ),
189
- 'format' => '',
190
- 'prev_text' => __( '&laquo;', 'wp-user-frontend' ),
191
- 'next_text' => __( '&raquo;', 'wp-user-frontend' ),
192
- 'total' => $dashboard_query->max_num_pages,
193
- 'current' => $pagenum,
194
- 'add_args' => false
195
- ) );
196
-
197
- if ( $pagination ) {
198
- echo $pagination;
199
- }
200
- ?>
201
- </div>
202
 
203
- <?php
204
- } else {
205
- printf( '<div class="wpuf-message">' . __( 'No %s found', 'wp-user-frontend' ) . '</div>', $post_type_obj->label );
206
- do_action( 'wpuf_account_posts_nopost', $userdata->ID, $post_type_obj );
207
- }
208
 
209
- wp_reset_postdata();
65
  $enable_payment = wpuf_get_option( 'enable_payment', 'wpuf_payment', 'on' );
66
  $current_user = wpuf_get_user();
67
  ?>
68
+ <div class="items-table-container">
69
+ <table class="items-table <?php echo $post_type; ?>" cellpadding="0" cellspacing="0">
70
+ <thead>
71
+ <tr class="items-list-header">
72
+ <?php
73
+ if ( 'on' == $featured_img ) {
74
+ echo '<th>' . __( 'Featured Image', 'wp-user-frontend' ) . '</th>';
75
+ }
76
+ ?>
77
+ <th><?php _e( 'Title', 'wp-user-frontend' ); ?></th>
78
+ <th><?php _e( 'Status', 'wp-user-frontend' ); ?></th>
79
+
80
+ <?php do_action( 'wpuf_account_posts_head_col', $args ) ?>
81
 
82
+ <?php if( 'on' == $enable_payment && 'off' != $payment_column ): ?>
83
+ <th><?php _e( 'Payment', 'wp-user-frontend' ); ?></th>
84
+ <?php endif; ?>
85
 
86
+ <th><?php _e( 'Options', 'wp-user-frontend' ); ?></th>
87
+ </tr>
88
+ </thead>
89
+ <tbody>
90
+ <?php
91
+ global $post;
92
+
93
+ while ( $dashboard_query->have_posts() ) {
94
+ $dashboard_query->the_post();
95
+ $show_link = !in_array( $post->post_status, array('draft', 'future', 'pending') );
96
+ $payment_status = get_post_meta( $post->ID, '_wpuf_payment_status', true );
97
+ ?>
98
+ <tr>
99
+ <?php if ( 'on' == $featured_img ) { ?>
100
+ <td>
101
+ <?php
102
+ echo $show_link ? '<a href="' . get_permalink( $post->ID ) . '">' : '';
103
 
104
+ if ( has_post_thumbnail() ) {
105
+ the_post_thumbnail( $featured_img_size );
106
+ } else {
107
+ printf( '<img src="%1$s" class="attachment-thumbnail wp-post-image" alt="%2$s" title="%2$s" />', apply_filters( 'wpuf_no_image', plugins_url( '../assets/images/no-image.png', dirname( __FILE__ ) ) ), __( 'No Image', 'wp-user-frontend' ) );
108
+ }
 
109
 
110
+ echo $show_link ? '</a>' : '';
111
+ ?>
112
+ </td>
113
+ <?php } ?>
 
 
 
114
  <td>
115
+ <?php if ( !$show_link ) { ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
116
 
117
+ <?php the_title(); ?>
118
 
119
+ <?php } else { ?>
120
 
121
+ <a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'wp-user-frontend' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_title(); ?></a>
 
 
 
 
122
 
123
+ <?php } ?>
124
+ </td>
 
125
  <td>
126
+ <?php wpuf_show_post_status( $post->post_status ) ?>
 
 
 
 
 
 
127
  </td>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
128
 
129
+ <?php do_action( 'wpuf_account_posts_row_col', $args, $post ) ?>
130
+
131
+ <?php if( 'on' == $enable_payment && 'off' != $payment_column ): ?>
132
+ <td>
133
+ <?php if( empty( $payment_status ) ) : ?>
134
+ <?php _e( 'Not Applicable', 'wp-user-frontend' ); ?>
135
+ <?php elseif( $payment_status != 'completed' ) : ?>
136
+ <a href="<?php echo trailingslashit( get_permalink( wpuf_get_option( 'payment_page', 'wpuf_payment' ) ) ); ?>?action=wpuf_pay&type=post&post_id=<?php echo $post->ID; ?>"><?php _e( 'Pay Now', 'wp-user-frontend' ); ?></a>
137
+ <?php elseif( $payment_status == 'completed' ) : ?>
138
+ <?php _e( 'Completed', 'wp-user-frontend' ); ?>
139
+ <?php endif; ?>
140
+ </td>
141
+ <?php endif; ?>
142
+
143
+ <td>
144
+ <?php
145
+ if ( wpuf_get_option( 'enable_post_edit', 'wpuf_dashboard', 'yes' ) == 'yes' ) {
146
+ $disable_pending_edit = wpuf_get_option( 'disable_pending_edit', 'wpuf_dashboard', 'on' );
147
+ $edit_page = (int) wpuf_get_option( 'edit_page_id', 'wpuf_frontend_posting' );
148
+ $url = add_query_arg( array('pid' => $post->ID), get_permalink( $edit_page ) );
149
+
150
+ $show_edit = true;
151
+
152
+ if ( $post->post_status == 'pending' && $disable_pending_edit == 'on' ) {
153
+ $show_edit = false;
154
+ }
155
+
156
+ if ( ($post->post_status =='draft' || $post->post_status =='pending') && ( !empty( $payment_status ) && $payment_status != 'completed' ) ) {
157
+ $show_edit = false;
158
+ }
159
+
160
+ if ( $show_edit ) {
161
+ ?>
162
+ <a class="wpuf-posts-options wpuf-posts-edit" href="<?php echo wp_nonce_url( $url, 'wpuf_edit' ); ?>"><?php _e( 'Edit', 'wp-user-frontend' ); ?></a>
163
+ <?php
164
+ }
165
+ }
166
+ ?>
167
+
168
+ <?php
169
+ if ( wpuf_get_option( 'enable_post_del', 'wpuf_dashboard', 'yes' ) == 'yes' ) {
170
+ $del_url = add_query_arg( array('action' => 'del', 'pid' => $post->ID) );
171
+ $message = __( 'Are you sure to delete?', 'wp-user-frontend' );
172
+ ?>
173
+ <a class="wpuf-posts-options wpuf-posts-delete" style="color: red;" href="<?php echo wp_nonce_url( $del_url, 'wpuf_del' ) ?>" onclick="return confirm('<?php echo $message ?>');"><?php _e( 'Delete', 'wp-user-frontend' ); ?></a>
174
+ <?php } ?>
175
+ </td>
176
+ </tr>
177
+ <?php
178
  }
179
+
180
+ wp_reset_postdata();
181
  ?>
182
 
183
+ </tbody>
184
+ </table>
185
+ </div>
186
+
187
+ <div class="wpuf-pagination">
 
 
 
 
188
  <?php
189
+ $pagination = paginate_links( array(
190
+ 'base' => add_query_arg( 'pagenum', '%#%' ),
191
+ 'format' => '',
192
+ 'prev_text' => __( '&laquo;', 'wp-user-frontend' ),
193
+ 'next_text' => __( '&raquo;', 'wp-user-frontend' ),
194
+ 'total' => $dashboard_query->max_num_pages,
195
+ 'current' => $pagenum,
196
+ 'add_args' => false
197
+ ) );
198
+
199
+ if ( $pagination ) {
200
+ echo $pagination;
201
+ }
202
+ ?>
203
+ </div>
 
 
 
 
 
 
 
 
 
 
204
 
205
+ <?php
206
+ } else {
207
+ printf( '<div class="wpuf-message">' . __( 'No %s found', 'wp-user-frontend' ) . '</div>', $post_type_obj->label );
208
+ do_action( 'wpuf_account_posts_nopost', $userdata->ID, $post_type_obj );
209
+ }
210
 
211
+ wp_reset_postdata();
wpuf-functions.php CHANGED
@@ -2166,6 +2166,17 @@ function wpuf_create_sample_form( $post_title = 'Sample Form', $post_type = 'wpu
2166
  'url' => '',
2167
  'comment_status' => 'open',
2168
  'submit_text' => 'Submit',
 
 
 
 
 
 
 
 
 
 
 
2169
  'draft_post' => 'false',
2170
  'edit_post_status' => 'publish',
2171
  'edit_redirect_to' => 'same',
2166
  'url' => '',
2167
  'comment_status' => 'open',
2168
  'submit_text' => 'Submit',
2169
+ 'submit_button_cond' => array(
2170
+ 'condition_status' => 'no',
2171
+ 'cond_logic' => 'any',
2172
+ 'conditions' => array(
2173
+ array(
2174
+ 'name' => '',
2175
+ 'operator' => '=',
2176
+ 'option' => ''
2177
+ )
2178
+ )
2179
+ ),
2180
  'draft_post' => 'false',
2181
  'edit_post_status' => 'publish',
2182
  'edit_redirect_to' => 'same',
wpuf.php CHANGED
@@ -4,7 +4,7 @@ Plugin Name: WP User Frontend
4
  Plugin URI: https://wordpress.org/plugins/wp-user-frontend/
5
  Description: Create, edit, delete, manages your post, pages or custom post types from frontend. Create registration forms, frontend profile and more...
6
  Author: Tareq Hasan
7
- Version: 3.1.5
8
  Author URI: https://tareq.co
9
  License: GPL2 or later
10
  License URI: https://www.gnu.org/licenses/gpl-2.0.html
@@ -12,7 +12,7 @@ Text Domain: wp-user-frontend
12
  Domain Path: /languages
13
  */
14
 
15
- define( 'WPUF_VERSION', '3.1.5' );
16
  define( 'WPUF_FILE', __FILE__ );
17
  define( 'WPUF_ROOT', dirname( __FILE__ ) );
18
  define( 'WPUF_ROOT_URI', plugins_url( '', __FILE__ ) );
4
  Plugin URI: https://wordpress.org/plugins/wp-user-frontend/
5
  Description: Create, edit, delete, manages your post, pages or custom post types from frontend. Create registration forms, frontend profile and more...
6
  Author: Tareq Hasan
7
+ Version: 3.1.6
8
  Author URI: https://tareq.co
9
  License: GPL2 or later
10
  License URI: https://www.gnu.org/licenses/gpl-2.0.html
12
  Domain Path: /languages
13
  */
14
 
15
+ define( 'WPUF_VERSION', '3.1.6' );
16
  define( 'WPUF_FILE', __FILE__ );
17
  define( 'WPUF_ROOT', dirname( __FILE__ ) );
18
  define( 'WPUF_ROOT_URI', plugins_url( '', __FILE__ ) );