Version Description
- Fixed issue where bulk delete wasn't working in some cases.
- Scoped wp_list actions to manage_options capability.
- Fixed typos in admin setting and My Account pages.
- Improved sanitization and escaping of data.
- Added file upload field support to profile-cpf shortcode.
- Added missing bio support to profile-hide-empty-data shortcode.
- Fixed bug where profileslug + slash in a post slug redirected to homepage.
- Fixed bug where custom processing labels wasnt working for password reset forms.
Download this release
Release Info
Developer | Collizo4sky |
Plugin | WP User Avatar |
Version | 3.1.9 |
Comparing to | |
See all releases |
Code changes from version 3.1.8 to 3.1.9
- assets/js/admin.js +0 -2
- changelog.txt +11 -1
- deprecated/wp-user-avatar/includes/class-wp-user-avatar-admin.php +1 -2
- languages/wp-user-avatar.pot +68 -72
- readme.txt +11 -1
- src/Admin/SettingsPages/DragDropBuilder/Controls/IconPicker.php +2 -2
- src/Admin/SettingsPages/DragDropBuilder/Controls/Input.php +5 -5
- src/Admin/SettingsPages/DragDropBuilder/Controls/Select.php +8 -8
- src/Admin/SettingsPages/DragDropBuilder/Controls/Textarea.php +6 -6
- src/Admin/SettingsPages/DragDropBuilder/Controls/WPEditor.php +4 -4
- src/Admin/SettingsPages/DragDropBuilder/DragDropBuilder.php +10 -10
- src/Admin/SettingsPages/DragDropBuilder/FieldBase.php +1 -1
- src/Admin/SettingsPages/DragDropBuilder/Metabox.php +12 -11
- src/Admin/SettingsPages/EmailSettings/WPListTable.php +3 -3
- src/Admin/SettingsPages/ExtensionsSettingsPage.php +6 -6
- src/Admin/SettingsPages/FormList.php +20 -21
- src/Admin/SettingsPages/Forms.php +2 -2
- src/Admin/SettingsPages/MemberDirectories.php +5 -4
- src/Admin/SettingsPages/MembersDirectoryList.php +1 -1
- src/AdminBarDashboardAccess/include.settings-page.php +4 -4
- src/Classes/AdminNotices.php +2 -2
- src/Classes/AjaxHandler.php +7 -5
- src/Classes/BuddyPressBbPress.php +2 -2
- src/Classes/FormPreviewHandler.php +1 -1
- src/Classes/LoginAuth.php +1 -1
- src/Classes/ModifyRedirectDefaultLinks.php +13 -13
- src/Classes/PasswordReset.php +3 -3
- src/ContentProtection/Frontend/Redirect.php +1 -1
- src/ContentProtection/WPListTable.php +7 -3
- src/Functions/custom-settings-api.php +2 -2
- src/ShortcodeParser/Builder/FieldsShortcodeCallback.php +0 -1
- src/ShortcodeParser/Builder/FrontendProfileBuilder.php +11 -3
- src/ShortcodeParser/Builder/GlobalShortcodes.php +7 -4
- src/ShortcodeParser/Builder/PasswordResetBuilder.php +14 -12
- src/ShortcodeParser/FrontendProfileTag.php +2 -4
- src/ShortcodeParser/MyAccount/dashboard.tmpl.php +1 -1
- src/ShortcodeParser/PasswordResetTag.php +10 -12
- src/Themes/DragDrop/AbstractMemberDirectoryTheme.php +3 -3
- vendor/autoload.php +1 -1
- vendor/composer/InstalledVersions.php +2 -2
- vendor/composer/autoload_real.php +7 -7
- vendor/composer/autoload_static.php +4 -4
- vendor/composer/installed.php +2 -2
- wp-user-avatar.php +2 -2
assets/js/admin.js
CHANGED
@@ -1,7 +1,5 @@
|
|
1 |
(function ($) {
|
2 |
|
3 |
-
/** @todo add nonce to all ajax requests */
|
4 |
-
|
5 |
var sb = {
|
6 |
ajax_flag: false,
|
7 |
ajax_queue: []
|
1 |
(function ($) {
|
2 |
|
|
|
|
|
3 |
var sb = {
|
4 |
ajax_flag: false,
|
5 |
ajax_queue: []
|
changelog.txt
CHANGED
@@ -1,4 +1,14 @@
|
|
1 |
-
= 3.1.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
* Fixed issue with global site access not correctly working.
|
3 |
* Added success color to registration form notice.
|
4 |
* Fixed bug admin bar control wasn't working.
|
1 |
+
= 3.1.9 =
|
2 |
+
* Fixed issue where bulk delete wasn't working in some cases.
|
3 |
+
* Scoped wp_list actions to manage_options capability.
|
4 |
+
* Fixed typos in admin setting and My Account pages.
|
5 |
+
* Improved sanitization and escaping of data.
|
6 |
+
* Added file upload field support to profile-cpf shortcode.
|
7 |
+
* Added missing bio support to profile-hide-empty-data shortcode.
|
8 |
+
* Fixed bug where profile-slug + slash in a post slug redirected to homepage.
|
9 |
+
* Fixed bug where custom processing labels wasn’t working for password reset forms.
|
10 |
+
|
11 |
+
= 3.1.8 =
|
12 |
* Fixed issue with global site access not correctly working.
|
13 |
* Added success color to registration form notice.
|
14 |
* Fixed bug admin bar control wasn't working.
|
deprecated/wp-user-avatar/includes/class-wp-user-avatar-admin.php
CHANGED
@@ -105,8 +105,7 @@ class WP_User_Avatar_Admin extends AbstractSettingsPage
|
|
105 |
$content .= '</p>';
|
106 |
|
107 |
$content .= '<p>';
|
108 |
-
|
109 |
-
$content .= '<strong><a href="#" target="_blank">' . esc_html__('Learn more', 'wp-user-avatar') . '</a></strong>';
|
110 |
$content .= '</p>';
|
111 |
|
112 |
return $content;
|
105 |
$content .= '</p>';
|
106 |
|
107 |
$content .= '<p>';
|
108 |
+
$content .= '<strong><a href="https://profilepress.net/article/avatar-shortcode/?utm_source=wp_dashboard&utm_medium=ppress-settings-page&utm_campaign=profile-cover-photo" target="_blank">' . esc_html__('Learn more', 'wp-user-avatar') . '</a></strong>';
|
|
|
109 |
$content .= '</p>';
|
110 |
|
111 |
return $content;
|
languages/wp-user-avatar.pot
CHANGED
@@ -2,9 +2,9 @@
|
|
2 |
# This file is distributed under the same license as the ProfilePress package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"Project-Id-Version: ProfilePress 3.1.
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wp-user-avatar\n"
|
7 |
-
"POT-Creation-Date: 2021-
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
@@ -36,11 +36,11 @@ msgid ""
|
|
36 |
"in users."
|
37 |
msgstr ""
|
38 |
|
39 |
-
#: deprecated/wp-user-avatar/includes/class-wp-user-avatar-admin.php:
|
40 |
msgid "Learn more"
|
41 |
msgstr ""
|
42 |
|
43 |
-
#: deprecated/wp-user-avatar/includes/class-wp-user-avatar-admin.php:
|
44 |
#: deprecated/wp-user-avatar/includes/wpua-functions.php:65
|
45 |
#: deprecated/wp-user-avatar/includes/wpua-functions.php:73
|
46 |
#: deprecated/wp-user-avatar/includes/wpua-functions.php:78
|
@@ -50,54 +50,54 @@ msgstr ""
|
|
50 |
msgid "Profile Picture"
|
51 |
msgstr ""
|
52 |
|
53 |
-
#: deprecated/wp-user-avatar/includes/class-wp-user-avatar-admin.php:
|
54 |
msgid "Mystery Man"
|
55 |
msgstr ""
|
56 |
|
57 |
-
#: deprecated/wp-user-avatar/includes/class-wp-user-avatar-admin.php:
|
58 |
msgid "Blank"
|
59 |
msgstr ""
|
60 |
|
61 |
-
#: deprecated/wp-user-avatar/includes/class-wp-user-avatar-admin.php:
|
62 |
msgid "Gravatar Logo"
|
63 |
msgstr ""
|
64 |
|
65 |
-
#: deprecated/wp-user-avatar/includes/class-wp-user-avatar-admin.php:
|
66 |
msgid "Identicon (Generated)"
|
67 |
msgstr ""
|
68 |
|
69 |
-
#: deprecated/wp-user-avatar/includes/class-wp-user-avatar-admin.php:
|
70 |
msgid "Wavatar (Generated)"
|
71 |
msgstr ""
|
72 |
|
73 |
-
#: deprecated/wp-user-avatar/includes/class-wp-user-avatar-admin.php:
|
74 |
msgid "MonsterID (Generated)"
|
75 |
msgstr ""
|
76 |
|
77 |
-
#: deprecated/wp-user-avatar/includes/class-wp-user-avatar-admin.php:
|
78 |
msgid "Retro (Generated)"
|
79 |
msgstr ""
|
80 |
|
|
|
81 |
#: deprecated/wp-user-avatar/includes/class-wp-user-avatar-admin.php:252
|
82 |
-
#: deprecated/wp-user-avatar/includes/class-wp-user-avatar-admin.php:253
|
83 |
#: deprecated/wp-user-avatar/includes/wpua-options-page.php:119
|
84 |
#: deprecated/wp-user-avatar/includes/wpua-options-page.php:123
|
85 |
msgid "Default Profile Picture"
|
86 |
msgstr ""
|
87 |
|
88 |
-
#: deprecated/wp-user-avatar/includes/class-wp-user-avatar-admin.php:
|
89 |
#: deprecated/wp-user-avatar/includes/class-wp-user-avatar.php:142
|
90 |
msgid "Choose Image"
|
91 |
msgstr ""
|
92 |
|
93 |
-
#: deprecated/wp-user-avatar/includes/class-wp-user-avatar-admin.php:
|
94 |
#: src/Admin/SettingsPages/EmailSettings/DefaultTemplateCustomizer.php:283
|
95 |
#: src/ShortcodeParser/MyAccount/edit-profile.tmpl.php:98
|
96 |
#: src/ShortcodeParser/MyAccount/edit-profile.tmpl.php:117
|
97 |
msgid "Remove"
|
98 |
msgstr ""
|
99 |
|
100 |
-
#: deprecated/wp-user-avatar/includes/class-wp-user-avatar-admin.php:
|
101 |
#: deprecated/wp-user-avatar/includes/class-wp-user-avatar.php:168
|
102 |
msgid "Undo"
|
103 |
msgstr ""
|
@@ -491,7 +491,7 @@ msgid ""
|
|
491 |
"shortcodes."
|
492 |
msgstr ""
|
493 |
|
494 |
-
#: src/Admin/SettingsPages/AddNewForm.php:66 src/Classes/AjaxHandler.php:
|
495 |
msgid "Build Now"
|
496 |
msgstr ""
|
497 |
|
@@ -566,6 +566,7 @@ msgstr ""
|
|
566 |
#: src/Admin/SettingsPages/EmailSettings/CustomizerTrait.php:11
|
567 |
#: src/AdminBarDashboardAccess/include.settings-page.php:54
|
568 |
#: src/AdminBarDashboardAccess/include.settings-page.php:109
|
|
|
569 |
#: src/ShortcodeParser/Builder/FieldsShortcodeCallback.php:1018
|
570 |
msgid "Save Changes"
|
571 |
msgstr ""
|
@@ -1727,8 +1728,8 @@ msgstr ""
|
|
1727 |
#: src/Admin/SettingsPages/Forms.php:99
|
1728 |
#: src/Admin/SettingsPages/GeneralSettings.php:133
|
1729 |
#: src/Admin/SettingsPages/GeneralSettings.php:248
|
1730 |
-
#: src/Classes/AjaxHandler.php:
|
1731 |
-
#: src/ShortcodeParser/Builder/GlobalShortcodes.php:
|
1732 |
#: src/Themes/DragDrop/AbstractBuildScratch.php:180
|
1733 |
#: src/Widgets/TabbedWidget.php:108
|
1734 |
msgid "Login"
|
@@ -1736,27 +1737,27 @@ msgstr ""
|
|
1736 |
|
1737 |
#: src/Admin/SettingsPages/Forms.php:104
|
1738 |
#: src/Admin/SettingsPages/GeneralSettings.php:119
|
1739 |
-
#: src/Classes/AjaxHandler.php:
|
1740 |
msgid "Registration"
|
1741 |
msgstr ""
|
1742 |
|
1743 |
#: src/Admin/SettingsPages/Forms.php:110
|
1744 |
#: src/Admin/SettingsPages/GeneralSettings.php:265
|
1745 |
-
#: src/Classes/AjaxHandler.php:
|
1746 |
msgid "Password Reset"
|
1747 |
msgstr ""
|
1748 |
|
1749 |
-
#: src/Admin/SettingsPages/Forms.php:115 src/Classes/AjaxHandler.php:
|
1750 |
#: src/NavigationMenuLinks/Backend.php:32
|
1751 |
-
#: src/ShortcodeParser/Builder/GlobalShortcodes.php:
|
1752 |
msgid "Edit Profile"
|
1753 |
msgstr ""
|
1754 |
|
1755 |
-
#: src/Admin/SettingsPages/Forms.php:122 src/Classes/AjaxHandler.php:
|
1756 |
msgid "Melange"
|
1757 |
msgstr ""
|
1758 |
|
1759 |
-
#: src/Admin/SettingsPages/Forms.php:130 src/Classes/AjaxHandler.php:
|
1760 |
msgid "User Profile"
|
1761 |
msgstr ""
|
1762 |
|
@@ -1770,7 +1771,7 @@ msgid "Live Preview"
|
|
1770 |
msgstr ""
|
1771 |
|
1772 |
#: src/Admin/SettingsPages/Forms.php:285
|
1773 |
-
#: src/Admin/SettingsPages/MemberDirectories.php:
|
1774 |
msgid "Add New"
|
1775 |
msgstr ""
|
1776 |
|
@@ -2505,55 +2506,55 @@ msgid ""
|
|
2505 |
"\""
|
2506 |
msgstr ""
|
2507 |
|
2508 |
-
#: src/Classes/AjaxHandler.php:
|
2509 |
msgid ""
|
2510 |
"Melange is a way to combine login, registration & password reset forms in a "
|
2511 |
"single form."
|
2512 |
msgstr ""
|
2513 |
|
2514 |
-
#: src/Classes/AjaxHandler.php:
|
2515 |
msgid "Select Form Type"
|
2516 |
msgstr ""
|
2517 |
|
2518 |
-
#: src/Classes/AjaxHandler.php:
|
2519 |
msgid "Loading..."
|
2520 |
msgstr ""
|
2521 |
|
2522 |
-
#: src/Classes/AjaxHandler.php:
|
2523 |
msgid "Create from Scratch"
|
2524 |
msgstr ""
|
2525 |
|
2526 |
-
#: src/Classes/AjaxHandler.php:
|
2527 |
msgid "Do it Yourself"
|
2528 |
msgstr ""
|
2529 |
|
2530 |
-
#: src/Classes/AjaxHandler.php:
|
2531 |
msgid "Get Started Creating Your Own Form"
|
2532 |
msgstr ""
|
2533 |
|
2534 |
-
#: src/Classes/AjaxHandler.php:
|
2535 |
msgid "Select this template"
|
2536 |
msgstr ""
|
2537 |
|
2538 |
-
#: src/Classes/AjaxHandler.php:
|
2539 |
#: src/ContentProtection/ContentConditions.php:274
|
2540 |
msgid "Select Template"
|
2541 |
msgstr ""
|
2542 |
|
2543 |
-
#: src/Classes/AjaxHandler.php:
|
2544 |
msgid "Enter a Name"
|
2545 |
msgstr ""
|
2546 |
|
2547 |
-
#: src/Classes/AjaxHandler.php:
|
2548 |
#: src/Classes/PasswordReset.php:359
|
2549 |
msgid "Unexpected error. Please try again."
|
2550 |
msgstr ""
|
2551 |
|
2552 |
-
#: src/Classes/AjaxHandler.php:
|
2553 |
msgid "Form with similar name exist already."
|
2554 |
msgstr ""
|
2555 |
|
2556 |
-
#: src/Classes/AjaxHandler.php:
|
2557 |
msgid "Security validation failed. Try again"
|
2558 |
msgstr ""
|
2559 |
|
@@ -3056,7 +3057,6 @@ msgid "Add Protection Rule"
|
|
3056 |
msgstr ""
|
3057 |
|
3058 |
#: src/ContentProtection/SettingsPage.php:61
|
3059 |
-
#: src/ContentProtection/WPListTable.php:14
|
3060 |
msgid "Protection Rules"
|
3061 |
msgstr ""
|
3062 |
|
@@ -3073,10 +3073,6 @@ msgstr ""
|
|
3073 |
msgid "Add a Protection Rule"
|
3074 |
msgstr ""
|
3075 |
|
3076 |
-
#: src/ContentProtection/WPListTable.php:13
|
3077 |
-
msgid "Protection Rule"
|
3078 |
-
msgstr ""
|
3079 |
-
|
3080 |
#: src/ContentProtection/WPListTable.php:21
|
3081 |
msgid "No protection rule found."
|
3082 |
msgstr ""
|
@@ -4253,14 +4249,14 @@ msgstr ""
|
|
4253 |
|
4254 |
#: src/NavigationMenuLinks/Backend.php:30
|
4255 |
#: src/NavigationMenuLinks/Backend.php:34
|
4256 |
-
#: src/ShortcodeParser/Builder/GlobalShortcodes.php:
|
4257 |
#: src/Widgets/UserPanel.php:30 src/Widgets/UserPanel.php:71
|
4258 |
msgid "Log Out"
|
4259 |
msgstr ""
|
4260 |
|
4261 |
#: src/NavigationMenuLinks/Backend.php:31 src/RegisterActivation/Base.php:159
|
4262 |
#: src/ShortcodeParser/Builder/FieldsShortcodeCallback.php:1015
|
4263 |
-
#: src/ShortcodeParser/Builder/GlobalShortcodes.php:
|
4264 |
#: src/Widgets/TabbedWidget.php:90
|
4265 |
msgid "Sign Up"
|
4266 |
msgstr ""
|
@@ -4313,7 +4309,7 @@ msgid "Lucid Tab Widget"
|
|
4313 |
msgstr ""
|
4314 |
|
4315 |
#: src/RegisterActivation/Base.php:163
|
4316 |
-
#: src/ShortcodeParser/Builder/GlobalShortcodes.php:
|
4317 |
#: src/Themes/DragDrop/AbstractTheme.php:117
|
4318 |
msgid "Reset Password"
|
4319 |
msgstr ""
|
@@ -4336,40 +4332,40 @@ msgstr ""
|
|
4336 |
|
4337 |
#: src/ShortcodeParser/Builder/EditProfileBuilder.php:82
|
4338 |
#: src/ShortcodeParser/Builder/EditProfileBuilder.php:95
|
4339 |
-
#: src/ShortcodeParser/Builder/PasswordResetBuilder.php:
|
4340 |
-
#: src/ShortcodeParser/Builder/PasswordResetBuilder.php:
|
4341 |
#: src/ShortcodeParser/Builder/RegistrationFormBuilder.php:137
|
4342 |
#: src/ShortcodeParser/Builder/RegistrationFormBuilder.php:150
|
4343 |
msgid "Strength indicator"
|
4344 |
msgstr ""
|
4345 |
|
4346 |
#: src/ShortcodeParser/Builder/EditProfileBuilder.php:83
|
4347 |
-
#: src/ShortcodeParser/Builder/PasswordResetBuilder.php:
|
4348 |
#: src/ShortcodeParser/Builder/RegistrationFormBuilder.php:138
|
4349 |
msgid "Very weak"
|
4350 |
msgstr ""
|
4351 |
|
4352 |
#: src/ShortcodeParser/Builder/EditProfileBuilder.php:84
|
4353 |
-
#: src/ShortcodeParser/Builder/PasswordResetBuilder.php:
|
4354 |
#: src/ShortcodeParser/Builder/RegistrationFormBuilder.php:139
|
4355 |
msgid "Weak"
|
4356 |
msgstr ""
|
4357 |
|
4358 |
#: src/ShortcodeParser/Builder/EditProfileBuilder.php:85
|
4359 |
-
#: src/ShortcodeParser/Builder/PasswordResetBuilder.php:
|
4360 |
#: src/ShortcodeParser/Builder/RegistrationFormBuilder.php:140
|
4361 |
msgctxt "password strength"
|
4362 |
msgid "Medium"
|
4363 |
msgstr ""
|
4364 |
|
4365 |
#: src/ShortcodeParser/Builder/EditProfileBuilder.php:86
|
4366 |
-
#: src/ShortcodeParser/Builder/PasswordResetBuilder.php:
|
4367 |
#: src/ShortcodeParser/Builder/RegistrationFormBuilder.php:141
|
4368 |
msgid "Strong"
|
4369 |
msgstr ""
|
4370 |
|
4371 |
#: src/ShortcodeParser/Builder/EditProfileBuilder.php:87
|
4372 |
-
#: src/ShortcodeParser/Builder/PasswordResetBuilder.php:
|
4373 |
#: src/ShortcodeParser/Builder/RegistrationFormBuilder.php:142
|
4374 |
msgid "Mismatch"
|
4375 |
msgstr ""
|
@@ -4418,7 +4414,7 @@ msgstr ""
|
|
4418 |
#: src/ShortcodeParser/Builder/FieldsShortcodeCallback.php:814
|
4419 |
#: src/ShortcodeParser/Builder/FieldsShortcodeCallback.php:873
|
4420 |
#: src/ShortcodeParser/Builder/FieldsShortcodeCallback.php:922
|
4421 |
-
#: src/ShortcodeParser/Builder/FrontendProfileBuilder.php:
|
4422 |
msgid "Field key is missing"
|
4423 |
msgstr ""
|
4424 |
|
@@ -4442,36 +4438,36 @@ msgstr ""
|
|
4442 |
msgid "custom field not defined"
|
4443 |
msgstr ""
|
4444 |
|
4445 |
-
#: src/ShortcodeParser/Builder/FieldsShortcodeCallback.php:
|
4446 |
msgid "Delete Avatar"
|
4447 |
msgstr ""
|
4448 |
|
4449 |
-
#: src/ShortcodeParser/Builder/FieldsShortcodeCallback.php:
|
4450 |
msgid "Delete Cover Image"
|
4451 |
msgstr ""
|
4452 |
|
4453 |
-
#: src/ShortcodeParser/Builder/FrontendProfileBuilder.php:
|
4454 |
msgid "This user has not created any post."
|
4455 |
msgstr ""
|
4456 |
|
4457 |
-
#: src/ShortcodeParser/Builder/FrontendProfileBuilder.php:
|
4458 |
msgid "You have not created any post."
|
4459 |
msgstr ""
|
4460 |
|
4461 |
-
#: src/ShortcodeParser/Builder/FrontendProfileBuilder.php:
|
4462 |
msgid "This user has not made any comment."
|
4463 |
msgstr ""
|
4464 |
|
4465 |
-
#: src/ShortcodeParser/Builder/FrontendProfileBuilder.php:
|
4466 |
msgid "You have not made any comment."
|
4467 |
msgstr ""
|
4468 |
|
4469 |
-
#: src/ShortcodeParser/Builder/FrontendProfileBuilder.php:
|
4470 |
msgid "No post written yet."
|
4471 |
msgstr ""
|
4472 |
|
4473 |
-
#: src/ShortcodeParser/Builder/PasswordResetBuilder.php:
|
4474 |
-
#: src/ShortcodeParser/Builder/PasswordResetBuilder.php:
|
4475 |
#: src/Widgets/TabbedWidget.php:91
|
4476 |
msgid "Get New Password"
|
4477 |
msgstr ""
|
@@ -4492,23 +4488,23 @@ msgstr ""
|
|
4492 |
msgid "Authentication failed. Please try again"
|
4493 |
msgstr ""
|
4494 |
|
4495 |
-
#: src/ShortcodeParser/FrontendProfileTag.php:
|
4496 |
msgid ""
|
4497 |
"This content is available to members only. Please <a href=\"%1$s\">login</a> "
|
4498 |
"or <a href=\"%2$s\">register</a> to view this area."
|
4499 |
msgstr ""
|
4500 |
|
4501 |
-
#: src/ShortcodeParser/FrontendProfileTag.php:
|
4502 |
msgid "You are not authorized to access this area."
|
4503 |
msgstr ""
|
4504 |
|
4505 |
-
#: src/ShortcodeParser/FrontendProfileTag.php:
|
4506 |
msgid ""
|
4507 |
"Form class not found. Please check if this user profile actually exist in "
|
4508 |
"ProfilePress."
|
4509 |
msgstr ""
|
4510 |
|
4511 |
-
#: src/ShortcodeParser/FrontendProfileTag.php:
|
4512 |
#: src/Themes/DragDrop/UserProfile/Dixon.php:121
|
4513 |
msgid "Profile"
|
4514 |
msgstr ""
|
@@ -4582,8 +4578,8 @@ msgstr ""
|
|
4582 |
|
4583 |
#: src/ShortcodeParser/MyAccount/dashboard.tmpl.php:26
|
4584 |
msgid ""
|
4585 |
-
"From your account dashboard you can
|
4586 |
-
"
|
4587 |
msgstr ""
|
4588 |
|
4589 |
#: src/ShortcodeParser/MyAccount/edit-profile.tmpl.php:32
|
@@ -4611,11 +4607,11 @@ msgstr ""
|
|
4611 |
msgid "Enter your new password below"
|
4612 |
msgstr ""
|
4613 |
|
4614 |
-
#: src/ShortcodeParser/PasswordResetTag.php:
|
4615 |
msgid "Re-enter new password"
|
4616 |
msgstr ""
|
4617 |
|
4618 |
-
#: src/ShortcodeParser/PasswordResetTag.php:
|
4619 |
msgid "Save"
|
4620 |
msgstr ""
|
4621 |
|
@@ -5419,9 +5415,9 @@ msgstr ""
|
|
5419 |
msgid "ProfilePress"
|
5420 |
msgstr ""
|
5421 |
|
5422 |
-
#. #-#-#-#-# wp-user-avatar.pot (ProfilePress 3.1.
|
5423 |
#. Plugin URI of the plugin/theme
|
5424 |
-
#. #-#-#-#-# wp-user-avatar.pot (ProfilePress 3.1.
|
5425 |
#. Author URI of the plugin/theme
|
5426 |
msgid "https://profilepress.net"
|
5427 |
msgstr ""
|
2 |
# This file is distributed under the same license as the ProfilePress package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: ProfilePress 3.1.9\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wp-user-avatar\n"
|
7 |
+
"POT-Creation-Date: 2021-07-04 11:58:20+00:00\n"
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
36 |
"in users."
|
37 |
msgstr ""
|
38 |
|
39 |
+
#: deprecated/wp-user-avatar/includes/class-wp-user-avatar-admin.php:108
|
40 |
msgid "Learn more"
|
41 |
msgstr ""
|
42 |
|
43 |
+
#: deprecated/wp-user-avatar/includes/class-wp-user-avatar-admin.php:131
|
44 |
#: deprecated/wp-user-avatar/includes/wpua-functions.php:65
|
45 |
#: deprecated/wp-user-avatar/includes/wpua-functions.php:73
|
46 |
#: deprecated/wp-user-avatar/includes/wpua-functions.php:78
|
50 |
msgid "Profile Picture"
|
51 |
msgstr ""
|
52 |
|
53 |
+
#: deprecated/wp-user-avatar/includes/class-wp-user-avatar-admin.php:211
|
54 |
msgid "Mystery Man"
|
55 |
msgstr ""
|
56 |
|
57 |
+
#: deprecated/wp-user-avatar/includes/class-wp-user-avatar-admin.php:212
|
58 |
msgid "Blank"
|
59 |
msgstr ""
|
60 |
|
61 |
+
#: deprecated/wp-user-avatar/includes/class-wp-user-avatar-admin.php:213
|
62 |
msgid "Gravatar Logo"
|
63 |
msgstr ""
|
64 |
|
65 |
+
#: deprecated/wp-user-avatar/includes/class-wp-user-avatar-admin.php:214
|
66 |
msgid "Identicon (Generated)"
|
67 |
msgstr ""
|
68 |
|
69 |
+
#: deprecated/wp-user-avatar/includes/class-wp-user-avatar-admin.php:215
|
70 |
msgid "Wavatar (Generated)"
|
71 |
msgstr ""
|
72 |
|
73 |
+
#: deprecated/wp-user-avatar/includes/class-wp-user-avatar-admin.php:216
|
74 |
msgid "MonsterID (Generated)"
|
75 |
msgstr ""
|
76 |
|
77 |
+
#: deprecated/wp-user-avatar/includes/class-wp-user-avatar-admin.php:217
|
78 |
msgid "Retro (Generated)"
|
79 |
msgstr ""
|
80 |
|
81 |
+
#: deprecated/wp-user-avatar/includes/class-wp-user-avatar-admin.php:251
|
82 |
#: deprecated/wp-user-avatar/includes/class-wp-user-avatar-admin.php:252
|
|
|
83 |
#: deprecated/wp-user-avatar/includes/wpua-options-page.php:119
|
84 |
#: deprecated/wp-user-avatar/includes/wpua-options-page.php:123
|
85 |
msgid "Default Profile Picture"
|
86 |
msgstr ""
|
87 |
|
88 |
+
#: deprecated/wp-user-avatar/includes/class-wp-user-avatar-admin.php:252
|
89 |
#: deprecated/wp-user-avatar/includes/class-wp-user-avatar.php:142
|
90 |
msgid "Choose Image"
|
91 |
msgstr ""
|
92 |
|
93 |
+
#: deprecated/wp-user-avatar/includes/class-wp-user-avatar-admin.php:253
|
94 |
#: src/Admin/SettingsPages/EmailSettings/DefaultTemplateCustomizer.php:283
|
95 |
#: src/ShortcodeParser/MyAccount/edit-profile.tmpl.php:98
|
96 |
#: src/ShortcodeParser/MyAccount/edit-profile.tmpl.php:117
|
97 |
msgid "Remove"
|
98 |
msgstr ""
|
99 |
|
100 |
+
#: deprecated/wp-user-avatar/includes/class-wp-user-avatar-admin.php:253
|
101 |
#: deprecated/wp-user-avatar/includes/class-wp-user-avatar.php:168
|
102 |
msgid "Undo"
|
103 |
msgstr ""
|
491 |
"shortcodes."
|
492 |
msgstr ""
|
493 |
|
494 |
+
#: src/Admin/SettingsPages/AddNewForm.php:66 src/Classes/AjaxHandler.php:116
|
495 |
msgid "Build Now"
|
496 |
msgstr ""
|
497 |
|
566 |
#: src/Admin/SettingsPages/EmailSettings/CustomizerTrait.php:11
|
567 |
#: src/AdminBarDashboardAccess/include.settings-page.php:54
|
568 |
#: src/AdminBarDashboardAccess/include.settings-page.php:109
|
569 |
+
#: src/Functions/custom-settings-api.php:1077
|
570 |
#: src/ShortcodeParser/Builder/FieldsShortcodeCallback.php:1018
|
571 |
msgid "Save Changes"
|
572 |
msgstr ""
|
1728 |
#: src/Admin/SettingsPages/Forms.php:99
|
1729 |
#: src/Admin/SettingsPages/GeneralSettings.php:133
|
1730 |
#: src/Admin/SettingsPages/GeneralSettings.php:248
|
1731 |
+
#: src/Classes/AjaxHandler.php:54 src/NavigationMenuLinks/Backend.php:34
|
1732 |
+
#: src/ShortcodeParser/Builder/GlobalShortcodes.php:237
|
1733 |
#: src/Themes/DragDrop/AbstractBuildScratch.php:180
|
1734 |
#: src/Widgets/TabbedWidget.php:108
|
1735 |
msgid "Login"
|
1737 |
|
1738 |
#: src/Admin/SettingsPages/Forms.php:104
|
1739 |
#: src/Admin/SettingsPages/GeneralSettings.php:119
|
1740 |
+
#: src/Classes/AjaxHandler.php:59
|
1741 |
msgid "Registration"
|
1742 |
msgstr ""
|
1743 |
|
1744 |
#: src/Admin/SettingsPages/Forms.php:110
|
1745 |
#: src/Admin/SettingsPages/GeneralSettings.php:265
|
1746 |
+
#: src/Classes/AjaxHandler.php:64
|
1747 |
msgid "Password Reset"
|
1748 |
msgstr ""
|
1749 |
|
1750 |
+
#: src/Admin/SettingsPages/Forms.php:115 src/Classes/AjaxHandler.php:69
|
1751 |
#: src/NavigationMenuLinks/Backend.php:32
|
1752 |
+
#: src/ShortcodeParser/Builder/GlobalShortcodes.php:302
|
1753 |
msgid "Edit Profile"
|
1754 |
msgstr ""
|
1755 |
|
1756 |
+
#: src/Admin/SettingsPages/Forms.php:122 src/Classes/AjaxHandler.php:75
|
1757 |
msgid "Melange"
|
1758 |
msgstr ""
|
1759 |
|
1760 |
+
#: src/Admin/SettingsPages/Forms.php:130 src/Classes/AjaxHandler.php:82
|
1761 |
msgid "User Profile"
|
1762 |
msgstr ""
|
1763 |
|
1771 |
msgstr ""
|
1772 |
|
1773 |
#: src/Admin/SettingsPages/Forms.php:285
|
1774 |
+
#: src/Admin/SettingsPages/MemberDirectories.php:201
|
1775 |
msgid "Add New"
|
1776 |
msgstr ""
|
1777 |
|
2506 |
"\""
|
2507 |
msgstr ""
|
2508 |
|
2509 |
+
#: src/Classes/AjaxHandler.php:45
|
2510 |
msgid ""
|
2511 |
"Melange is a way to combine login, registration & password reset forms in a "
|
2512 |
"single form."
|
2513 |
msgstr ""
|
2514 |
|
2515 |
+
#: src/Classes/AjaxHandler.php:49
|
2516 |
msgid "Select Form Type"
|
2517 |
msgstr ""
|
2518 |
|
2519 |
+
#: src/Classes/AjaxHandler.php:50
|
2520 |
msgid "Loading..."
|
2521 |
msgstr ""
|
2522 |
|
2523 |
+
#: src/Classes/AjaxHandler.php:101
|
2524 |
msgid "Create from Scratch"
|
2525 |
msgstr ""
|
2526 |
|
2527 |
+
#: src/Classes/AjaxHandler.php:107
|
2528 |
msgid "Do it Yourself"
|
2529 |
msgstr ""
|
2530 |
|
2531 |
+
#: src/Classes/AjaxHandler.php:110
|
2532 |
msgid "Get Started Creating Your Own Form"
|
2533 |
msgstr ""
|
2534 |
|
2535 |
+
#: src/Classes/AjaxHandler.php:151
|
2536 |
msgid "Select this template"
|
2537 |
msgstr ""
|
2538 |
|
2539 |
+
#: src/Classes/AjaxHandler.php:152
|
2540 |
#: src/ContentProtection/ContentConditions.php:274
|
2541 |
msgid "Select Template"
|
2542 |
msgstr ""
|
2543 |
|
2544 |
+
#: src/Classes/AjaxHandler.php:161
|
2545 |
msgid "Enter a Name"
|
2546 |
msgstr ""
|
2547 |
|
2548 |
+
#: src/Classes/AjaxHandler.php:217 src/Classes/AjaxHandler.php:240
|
2549 |
#: src/Classes/PasswordReset.php:359
|
2550 |
msgid "Unexpected error. Please try again."
|
2551 |
msgstr ""
|
2552 |
|
2553 |
+
#: src/Classes/AjaxHandler.php:249
|
2554 |
msgid "Form with similar name exist already."
|
2555 |
msgstr ""
|
2556 |
|
2557 |
+
#: src/Classes/AjaxHandler.php:527
|
2558 |
msgid "Security validation failed. Try again"
|
2559 |
msgstr ""
|
2560 |
|
3057 |
msgstr ""
|
3058 |
|
3059 |
#: src/ContentProtection/SettingsPage.php:61
|
|
|
3060 |
msgid "Protection Rules"
|
3061 |
msgstr ""
|
3062 |
|
3073 |
msgid "Add a Protection Rule"
|
3074 |
msgstr ""
|
3075 |
|
|
|
|
|
|
|
|
|
3076 |
#: src/ContentProtection/WPListTable.php:21
|
3077 |
msgid "No protection rule found."
|
3078 |
msgstr ""
|
4249 |
|
4250 |
#: src/NavigationMenuLinks/Backend.php:30
|
4251 |
#: src/NavigationMenuLinks/Backend.php:34
|
4252 |
+
#: src/ShortcodeParser/Builder/GlobalShortcodes.php:271
|
4253 |
#: src/Widgets/UserPanel.php:30 src/Widgets/UserPanel.php:71
|
4254 |
msgid "Log Out"
|
4255 |
msgstr ""
|
4256 |
|
4257 |
#: src/NavigationMenuLinks/Backend.php:31 src/RegisterActivation/Base.php:159
|
4258 |
#: src/ShortcodeParser/Builder/FieldsShortcodeCallback.php:1015
|
4259 |
+
#: src/ShortcodeParser/Builder/GlobalShortcodes.php:174
|
4260 |
#: src/Widgets/TabbedWidget.php:90
|
4261 |
msgid "Sign Up"
|
4262 |
msgstr ""
|
4309 |
msgstr ""
|
4310 |
|
4311 |
#: src/RegisterActivation/Base.php:163
|
4312 |
+
#: src/ShortcodeParser/Builder/GlobalShortcodes.php:206
|
4313 |
#: src/Themes/DragDrop/AbstractTheme.php:117
|
4314 |
msgid "Reset Password"
|
4315 |
msgstr ""
|
4332 |
|
4333 |
#: src/ShortcodeParser/Builder/EditProfileBuilder.php:82
|
4334 |
#: src/ShortcodeParser/Builder/EditProfileBuilder.php:95
|
4335 |
+
#: src/ShortcodeParser/Builder/PasswordResetBuilder.php:214
|
4336 |
+
#: src/ShortcodeParser/Builder/PasswordResetBuilder.php:226
|
4337 |
#: src/ShortcodeParser/Builder/RegistrationFormBuilder.php:137
|
4338 |
#: src/ShortcodeParser/Builder/RegistrationFormBuilder.php:150
|
4339 |
msgid "Strength indicator"
|
4340 |
msgstr ""
|
4341 |
|
4342 |
#: src/ShortcodeParser/Builder/EditProfileBuilder.php:83
|
4343 |
+
#: src/ShortcodeParser/Builder/PasswordResetBuilder.php:215
|
4344 |
#: src/ShortcodeParser/Builder/RegistrationFormBuilder.php:138
|
4345 |
msgid "Very weak"
|
4346 |
msgstr ""
|
4347 |
|
4348 |
#: src/ShortcodeParser/Builder/EditProfileBuilder.php:84
|
4349 |
+
#: src/ShortcodeParser/Builder/PasswordResetBuilder.php:216
|
4350 |
#: src/ShortcodeParser/Builder/RegistrationFormBuilder.php:139
|
4351 |
msgid "Weak"
|
4352 |
msgstr ""
|
4353 |
|
4354 |
#: src/ShortcodeParser/Builder/EditProfileBuilder.php:85
|
4355 |
+
#: src/ShortcodeParser/Builder/PasswordResetBuilder.php:217
|
4356 |
#: src/ShortcodeParser/Builder/RegistrationFormBuilder.php:140
|
4357 |
msgctxt "password strength"
|
4358 |
msgid "Medium"
|
4359 |
msgstr ""
|
4360 |
|
4361 |
#: src/ShortcodeParser/Builder/EditProfileBuilder.php:86
|
4362 |
+
#: src/ShortcodeParser/Builder/PasswordResetBuilder.php:218
|
4363 |
#: src/ShortcodeParser/Builder/RegistrationFormBuilder.php:141
|
4364 |
msgid "Strong"
|
4365 |
msgstr ""
|
4366 |
|
4367 |
#: src/ShortcodeParser/Builder/EditProfileBuilder.php:87
|
4368 |
+
#: src/ShortcodeParser/Builder/PasswordResetBuilder.php:219
|
4369 |
#: src/ShortcodeParser/Builder/RegistrationFormBuilder.php:142
|
4370 |
msgid "Mismatch"
|
4371 |
msgstr ""
|
4414 |
#: src/ShortcodeParser/Builder/FieldsShortcodeCallback.php:814
|
4415 |
#: src/ShortcodeParser/Builder/FieldsShortcodeCallback.php:873
|
4416 |
#: src/ShortcodeParser/Builder/FieldsShortcodeCallback.php:922
|
4417 |
+
#: src/ShortcodeParser/Builder/FrontendProfileBuilder.php:349
|
4418 |
msgid "Field key is missing"
|
4419 |
msgstr ""
|
4420 |
|
4438 |
msgid "custom field not defined"
|
4439 |
msgstr ""
|
4440 |
|
4441 |
+
#: src/ShortcodeParser/Builder/FieldsShortcodeCallback.php:1084
|
4442 |
msgid "Delete Avatar"
|
4443 |
msgstr ""
|
4444 |
|
4445 |
+
#: src/ShortcodeParser/Builder/FieldsShortcodeCallback.php:1120
|
4446 |
msgid "Delete Cover Image"
|
4447 |
msgstr ""
|
4448 |
|
4449 |
+
#: src/ShortcodeParser/Builder/FrontendProfileBuilder.php:112
|
4450 |
msgid "This user has not created any post."
|
4451 |
msgstr ""
|
4452 |
|
4453 |
+
#: src/ShortcodeParser/Builder/FrontendProfileBuilder.php:115
|
4454 |
msgid "You have not created any post."
|
4455 |
msgstr ""
|
4456 |
|
4457 |
+
#: src/ShortcodeParser/Builder/FrontendProfileBuilder.php:173
|
4458 |
msgid "This user has not made any comment."
|
4459 |
msgstr ""
|
4460 |
|
4461 |
+
#: src/ShortcodeParser/Builder/FrontendProfileBuilder.php:176
|
4462 |
msgid "You have not made any comment."
|
4463 |
msgstr ""
|
4464 |
|
4465 |
+
#: src/ShortcodeParser/Builder/FrontendProfileBuilder.php:664
|
4466 |
msgid "No post written yet."
|
4467 |
msgstr ""
|
4468 |
|
4469 |
+
#: src/ShortcodeParser/Builder/PasswordResetBuilder.php:104
|
4470 |
+
#: src/ShortcodeParser/Builder/PasswordResetBuilder.php:337
|
4471 |
#: src/Widgets/TabbedWidget.php:91
|
4472 |
msgid "Get New Password"
|
4473 |
msgstr ""
|
4488 |
msgid "Authentication failed. Please try again"
|
4489 |
msgstr ""
|
4490 |
|
4491 |
+
#: src/ShortcodeParser/FrontendProfileTag.php:86
|
4492 |
msgid ""
|
4493 |
"This content is available to members only. Please <a href=\"%1$s\">login</a> "
|
4494 |
"or <a href=\"%2$s\">register</a> to view this area."
|
4495 |
msgstr ""
|
4496 |
|
4497 |
+
#: src/ShortcodeParser/FrontendProfileTag.php:93
|
4498 |
msgid "You are not authorized to access this area."
|
4499 |
msgstr ""
|
4500 |
|
4501 |
+
#: src/ShortcodeParser/FrontendProfileTag.php:131
|
4502 |
msgid ""
|
4503 |
"Form class not found. Please check if this user profile actually exist in "
|
4504 |
"ProfilePress."
|
4505 |
msgstr ""
|
4506 |
|
4507 |
+
#: src/ShortcodeParser/FrontendProfileTag.php:196
|
4508 |
#: src/Themes/DragDrop/UserProfile/Dixon.php:121
|
4509 |
msgid "Profile"
|
4510 |
msgstr ""
|
4578 |
|
4579 |
#: src/ShortcodeParser/MyAccount/dashboard.tmpl.php:26
|
4580 |
msgid ""
|
4581 |
+
"From your account dashboard you can <a href=\"%1$s\">change your password</"
|
4582 |
+
"a> and <a href=\"%2$s\">edit your account details</a>."
|
4583 |
msgstr ""
|
4584 |
|
4585 |
#: src/ShortcodeParser/MyAccount/edit-profile.tmpl.php:32
|
4607 |
msgid "Enter your new password below"
|
4608 |
msgstr ""
|
4609 |
|
4610 |
+
#: src/ShortcodeParser/PasswordResetTag.php:104
|
4611 |
msgid "Re-enter new password"
|
4612 |
msgstr ""
|
4613 |
|
4614 |
+
#: src/ShortcodeParser/PasswordResetTag.php:107
|
4615 |
msgid "Save"
|
4616 |
msgstr ""
|
4617 |
|
5415 |
msgid "ProfilePress"
|
5416 |
msgstr ""
|
5417 |
|
5418 |
+
#. #-#-#-#-# wp-user-avatar.pot (ProfilePress 3.1.9) #-#-#-#-#
|
5419 |
#. Plugin URI of the plugin/theme
|
5420 |
+
#. #-#-#-#-# wp-user-avatar.pot (ProfilePress 3.1.9) #-#-#-#-#
|
5421 |
#. Author URI of the plugin/theme
|
5422 |
msgid "https://profilepress.net"
|
5423 |
msgstr ""
|
readme.txt
CHANGED
@@ -5,7 +5,7 @@ Tags: user registration, user profile, registration form, membership, login form
|
|
5 |
Requires at least: 4.7
|
6 |
Requires PHP: 5.6
|
7 |
Tested up to: 5.7
|
8 |
-
Stable tag: 3.1.
|
9 |
License: GPLv2 or later
|
10 |
|
11 |
Modern membership plugin for user registration, login form, user profile, member directories & content restriction.
|
@@ -117,6 +117,16 @@ No. You can create and manage your forms, user profiles and member directories w
|
|
117 |
|
118 |
== Changelog ==
|
119 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
120 |
= 3.1.8 =
|
121 |
* Fixed issue with global site access not correctly working.
|
122 |
* Added success color to registration form notice.
|
5 |
Requires at least: 4.7
|
6 |
Requires PHP: 5.6
|
7 |
Tested up to: 5.7
|
8 |
+
Stable tag: 3.1.9
|
9 |
License: GPLv2 or later
|
10 |
|
11 |
Modern membership plugin for user registration, login form, user profile, member directories & content restriction.
|
117 |
|
118 |
== Changelog ==
|
119 |
|
120 |
+
= 3.1.9 =
|
121 |
+
* Fixed issue where bulk delete wasn't working in some cases.
|
122 |
+
* Scoped wp_list actions to manage_options capability.
|
123 |
+
* Fixed typos in admin setting and My Account pages.
|
124 |
+
* Improved sanitization and escaping of data.
|
125 |
+
* Added file upload field support to profile-cpf shortcode.
|
126 |
+
* Added missing bio support to profile-hide-empty-data shortcode.
|
127 |
+
* Fixed bug where profileslug + slash in a post slug redirected to homepage.
|
128 |
+
* Fixed bug where custom processing labels wasn’t working for password reset forms.
|
129 |
+
|
130 |
= 3.1.8 =
|
131 |
* Fixed issue with global site access not correctly working.
|
132 |
* Added success color to registration form notice.
|
src/Admin/SettingsPages/DragDropBuilder/Controls/IconPicker.php
CHANGED
@@ -11,7 +11,7 @@ class IconPicker
|
|
11 |
{
|
12 |
$this->args = wp_parse_args(
|
13 |
$args,
|
14 |
-
['value' => sprintf('{{data.%s}}', $args['name'])]
|
15 |
);
|
16 |
}
|
17 |
|
@@ -28,7 +28,7 @@ class IconPicker
|
|
28 |
printf(
|
29 |
'<input style="display: none" class="pp-form-control" type="hidden" id="%1$s" name="%1$s" value="%2$s">',
|
30 |
$this->args['name'],
|
31 |
-
|
32 |
);
|
33 |
|
34 |
echo '<div class="pp-form-control pp-form-control-icon-picker">';
|
11 |
{
|
12 |
$this->args = wp_parse_args(
|
13 |
$args,
|
14 |
+
['value' => sprintf('{{data.%s}}', esc_attr($args['name']))]
|
15 |
);
|
16 |
}
|
17 |
|
28 |
printf(
|
29 |
'<input style="display: none" class="pp-form-control" type="hidden" id="%1$s" name="%1$s" value="%2$s">',
|
30 |
$this->args['name'],
|
31 |
+
ppress_var($this->args, 'value', '')
|
32 |
);
|
33 |
|
34 |
echo '<div class="pp-form-control pp-form-control-icon-picker">';
|
src/Admin/SettingsPages/DragDropBuilder/Controls/Input.php
CHANGED
@@ -11,7 +11,7 @@ class Input
|
|
11 |
{
|
12 |
$this->args = wp_parse_args(
|
13 |
$args,
|
14 |
-
['type' => 'text', 'name' => '', 'value' => sprintf('{{{data.%s}}}', $args['name'])]
|
15 |
);
|
16 |
}
|
17 |
|
@@ -27,10 +27,10 @@ class Input
|
|
27 |
|
28 |
printf(
|
29 |
'<input class="pp-form-control" type="%1$s" placeholder="%2$s" id="%3$s" name="%3$s" value="%4$s" %5$s>',
|
30 |
-
$this->args['type'],
|
31 |
-
|
32 |
-
$this->args['name'],
|
33 |
-
|
34 |
$this->args['type'] == 'checkbox' ? sprintf('<# if(data.%s === true) { #> checked <# } #>', $this->args['name']) : ''
|
35 |
);
|
36 |
|
11 |
{
|
12 |
$this->args = wp_parse_args(
|
13 |
$args,
|
14 |
+
['type' => 'text', 'name' => '', 'value' => sprintf('{{{data.%s}}}', esc_attr($args['name']))]
|
15 |
);
|
16 |
}
|
17 |
|
27 |
|
28 |
printf(
|
29 |
'<input class="pp-form-control" type="%1$s" placeholder="%2$s" id="%3$s" name="%3$s" value="%4$s" %5$s>',
|
30 |
+
esc_attr($this->args['type']),
|
31 |
+
esc_attr(ppress_var($this->args,'placeholder', '')),
|
32 |
+
esc_attr($this->args['name']),
|
33 |
+
$this->args['value'],
|
34 |
$this->args['type'] == 'checkbox' ? sprintf('<# if(data.%s === true) { #> checked <# } #>', $this->args['name']) : ''
|
35 |
);
|
36 |
|
src/Admin/SettingsPages/DragDropBuilder/Controls/Select.php
CHANGED
@@ -17,33 +17,33 @@ class Select
|
|
17 |
|
18 |
public function render()
|
19 |
{
|
20 |
-
echo sprintf('<label for="%s" class="pp-label">%s</label>', $this->args['name'], $this->args['label']);
|
21 |
|
22 |
-
echo sprintf('<select class="pp-form-control" id="%1$s" name="%1$s">', $this->args['name']);
|
23 |
|
24 |
foreach ($this->args['options'] as $key => $value) {
|
25 |
|
26 |
$selected = sprintf(
|
27 |
"<# if(data.%s == '%s') { #> selected <# } #>",
|
28 |
-
$this->args['name'],
|
29 |
-
$key
|
30 |
);
|
31 |
|
32 |
if (is_array($value)) {
|
33 |
-
echo "<optgroup label='$key'>";
|
34 |
foreach ($value as $key2 => $value2) {
|
35 |
-
echo sprintf('<option value="%s" %s>%s</option>', $key2, $selected, $value2);
|
36 |
}
|
37 |
echo '</optgroup>';
|
38 |
} else {
|
39 |
-
echo sprintf('<option value="%s" %s>%s</option>', $key, $selected, $value);
|
40 |
}
|
41 |
}
|
42 |
|
43 |
echo '</select>';
|
44 |
|
45 |
if (isset($this->args['description'])) {
|
46 |
-
printf('<div class="pp-form-control-description">%s</div>', $this->args['description']);
|
47 |
}
|
48 |
}
|
49 |
}
|
17 |
|
18 |
public function render()
|
19 |
{
|
20 |
+
echo sprintf('<label for="%s" class="pp-label">%s</label>', esc_attr($this->args['name']), esc_attr($this->args['label']));
|
21 |
|
22 |
+
echo sprintf('<select class="pp-form-control" id="%1$s" name="%1$s">', esc_attr($this->args['name']));
|
23 |
|
24 |
foreach ($this->args['options'] as $key => $value) {
|
25 |
|
26 |
$selected = sprintf(
|
27 |
"<# if(data.%s == '%s') { #> selected <# } #>",
|
28 |
+
esc_attr($this->args['name']),
|
29 |
+
esc_attr($key)
|
30 |
);
|
31 |
|
32 |
if (is_array($value)) {
|
33 |
+
echo "<optgroup label='" . esc_attr($key) . "'>";
|
34 |
foreach ($value as $key2 => $value2) {
|
35 |
+
echo sprintf('<option value="%s" %s>%s</option>', esc_attr($key2), $selected, esc_attr($value2));
|
36 |
}
|
37 |
echo '</optgroup>';
|
38 |
} else {
|
39 |
+
echo sprintf('<option value="%s" %s>%s</option>', esc_attr($key), $selected, esc_attr($value));
|
40 |
}
|
41 |
}
|
42 |
|
43 |
echo '</select>';
|
44 |
|
45 |
if (isset($this->args['description'])) {
|
46 |
+
printf('<div class="pp-form-control-description">%s</div>', esc_attr($this->args['description']));
|
47 |
}
|
48 |
}
|
49 |
}
|
src/Admin/SettingsPages/DragDropBuilder/Controls/Textarea.php
CHANGED
@@ -11,23 +11,23 @@ class Textarea
|
|
11 |
{
|
12 |
$this->args = wp_parse_args(
|
13 |
$args,
|
14 |
-
['name' => '', 'value' => sprintf('{{{data.%s}}}', $args['name'])]
|
15 |
);
|
16 |
}
|
17 |
|
18 |
public function render()
|
19 |
{
|
20 |
-
echo sprintf('<label for="%s" class="pp-label">%s</label>', $this->args['name'], $this->args['label']);
|
21 |
|
22 |
if (isset($this->args['description'])) {
|
23 |
-
printf('<div class="pp-form-control-description">%s</div>', $this->args['description']);
|
24 |
}
|
25 |
|
26 |
echo sprintf(
|
27 |
'<textarea placeholder="%3$s" id="%1$s" name="%1$s" class="pp-form-control">%2$s</textarea>',
|
28 |
-
$this->args['name'],
|
29 |
-
|
30 |
-
|
31 |
);
|
32 |
}
|
33 |
}
|
11 |
{
|
12 |
$this->args = wp_parse_args(
|
13 |
$args,
|
14 |
+
['name' => '', 'value' => sprintf('{{{data.%s}}}', esc_attr($args['name']))]
|
15 |
);
|
16 |
}
|
17 |
|
18 |
public function render()
|
19 |
{
|
20 |
+
echo sprintf('<label for="%s" class="pp-label">%s</label>', esc_attr($this->args['name']), esc_attr($this->args['label']));
|
21 |
|
22 |
if (isset($this->args['description'])) {
|
23 |
+
printf('<div class="pp-form-control-description">%s</div>', esc_attr($this->args['description']));
|
24 |
}
|
25 |
|
26 |
echo sprintf(
|
27 |
'<textarea placeholder="%3$s" id="%1$s" name="%1$s" class="pp-form-control">%2$s</textarea>',
|
28 |
+
esc_attr($this->args['name']),
|
29 |
+
$this->args['value'],
|
30 |
+
esc_attr(ppress_var($this->args, 'placeholder'))
|
31 |
);
|
32 |
}
|
33 |
}
|
src/Admin/SettingsPages/DragDropBuilder/Controls/WPEditor.php
CHANGED
@@ -11,7 +11,7 @@ class WPEditor
|
|
11 |
{
|
12 |
$this->args = wp_parse_args(
|
13 |
$args,
|
14 |
-
['name' => '', 'value' => sprintf('{{{data.%s}}}', $args['name'])]
|
15 |
);
|
16 |
}
|
17 |
|
@@ -26,9 +26,9 @@ class WPEditor
|
|
26 |
echo sprintf(
|
27 |
// 100%% double 1% cos we are escaping %
|
28 |
'<textarea style="height: 300px;padding: 10px;width: 100%%" placeholder="%3$s" id="%1$s" name="%1$s" class="pp-form-control pp-form-control-wpeditor">%2$s</textarea>',
|
29 |
-
$this->args['name'],
|
30 |
-
|
31 |
-
|
32 |
);
|
33 |
}
|
34 |
}
|
11 |
{
|
12 |
$this->args = wp_parse_args(
|
13 |
$args,
|
14 |
+
['name' => '', 'value' => sprintf('{{{data.%s}}}', esc_attr($args['name']))]
|
15 |
);
|
16 |
}
|
17 |
|
26 |
echo sprintf(
|
27 |
// 100%% double 1% cos we are escaping %
|
28 |
'<textarea style="height: 300px;padding: 10px;width: 100%%" placeholder="%3$s" id="%1$s" name="%1$s" class="pp-form-control pp-form-control-wpeditor">%2$s</textarea>',
|
29 |
+
esc_attr($this->args['name']),
|
30 |
+
$this->args['value'],
|
31 |
+
esc_attr(ppress_var($this->args, 'placeholder'))
|
32 |
);
|
33 |
}
|
34 |
}
|
src/Admin/SettingsPages/DragDropBuilder/DragDropBuilder.php
CHANGED
@@ -80,10 +80,10 @@ class DragDropBuilder
|
|
80 |
|
81 |
$fields[$key] = [
|
82 |
'definedFieldKey' => $field_key,
|
83 |
-
'definedFieldType' => $definedFieldType,
|
84 |
'fieldTitle' => ppress_decode_html_strip_tags($label),
|
85 |
-
'label' => $label,
|
86 |
-
'placeholder' => $label,
|
87 |
'fieldIcon' => '<span class="dashicons dashicons-portfolio"></span>',
|
88 |
];
|
89 |
}
|
@@ -123,11 +123,11 @@ class DragDropBuilder
|
|
123 |
|
124 |
$fields[$key] = [
|
125 |
'definedFieldKey' => $field_key,
|
126 |
-
'definedFieldType' => $definedFieldType,
|
127 |
'fieldTitle' => ppress_decode_html_strip_tags($title) . ($woocommerce_field !== false ? (sprintf(' (WC%s)', 'billing' == $woocommerce_field ? 'BA' : 'SA')) : ''),
|
128 |
'fieldBarTitle' => ppress_decode_html_strip_tags($title),
|
129 |
-
'label' => $title,
|
130 |
-
'placeholder' => $title,
|
131 |
'fieldIcon' => '<span class="dashicons dashicons-portfolio"></span>',
|
132 |
];
|
133 |
}
|
@@ -1249,12 +1249,12 @@ class DragDropBuilder
|
|
1249 |
{
|
1250 |
settings_errors('pp_drag_drop_builder_notice');
|
1251 |
$title = FR::get_name($this->form_id, $this->form_type);
|
1252 |
-
$shortcode = sprintf('
|
1253 |
?>
|
1254 |
<div id="titlediv">
|
1255 |
<div id="titlewrap">
|
1256 |
<label class="screen-reader-text" id="title-prompt-text" for="title"><?php _e('Enter title here', 'wp-user-avatar'); ?></label>
|
1257 |
-
<input type="text" name="pp_form_title" size="30" value="<?= $title ?>" id="title">
|
1258 |
<a class="pp-form-save-changes button button-primary button-large" style="margin: 2px 0 0 10px;text-align: center;" href="#"><?php _e('Save Changes', 'wp-user-avatar'); ?></a>
|
1259 |
</div>
|
1260 |
<div class="inside">
|
@@ -1263,7 +1263,7 @@ class DragDropBuilder
|
|
1263 |
<?php esc_html_e('Copy this shortcode and paste it into your post, page, or text widget content:', 'wp-user-avatar') ?>
|
1264 |
</label>
|
1265 |
<span class="shortcode wp-ui-highlight">
|
1266 |
-
<input type="text" id="ppress-shortcode" onfocus="this.select();" readonly="readonly" class="large-text code" value="<?= $shortcode ?>">
|
1267 |
</span>
|
1268 |
</p>
|
1269 |
</div>
|
@@ -1284,7 +1284,7 @@ class DragDropBuilder
|
|
1284 |
<a class="pp-form-save-changes button button-primary button-large" style="margin: 0 10px 0 0;vertical-align: middle;" href="#">
|
1285 |
<?php _e('Save Changes', 'wp-user-avatar'); ?>
|
1286 |
</a>
|
1287 |
-
<a href="
|
1288 |
<?php _e('Delete Form', 'wp-user-avatar'); ?>
|
1289 |
</a>
|
1290 |
</div>
|
80 |
|
81 |
$fields[$key] = [
|
82 |
'definedFieldKey' => $field_key,
|
83 |
+
'definedFieldType' => esc_attr($definedFieldType),
|
84 |
'fieldTitle' => ppress_decode_html_strip_tags($label),
|
85 |
+
'label' => esc_attr($label),
|
86 |
+
'placeholder' => esc_attr($label),
|
87 |
'fieldIcon' => '<span class="dashicons dashicons-portfolio"></span>',
|
88 |
];
|
89 |
}
|
123 |
|
124 |
$fields[$key] = [
|
125 |
'definedFieldKey' => $field_key,
|
126 |
+
'definedFieldType' => esc_attr($definedFieldType),
|
127 |
'fieldTitle' => ppress_decode_html_strip_tags($title) . ($woocommerce_field !== false ? (sprintf(' (WC%s)', 'billing' == $woocommerce_field ? 'BA' : 'SA')) : ''),
|
128 |
'fieldBarTitle' => ppress_decode_html_strip_tags($title),
|
129 |
+
'label' => esc_attr($title),
|
130 |
+
'placeholder' => esc_attr($title),
|
131 |
'fieldIcon' => '<span class="dashicons dashicons-portfolio"></span>',
|
132 |
];
|
133 |
}
|
1249 |
{
|
1250 |
settings_errors('pp_drag_drop_builder_notice');
|
1251 |
$title = FR::get_name($this->form_id, $this->form_type);
|
1252 |
+
$shortcode = sprintf('[profilepress-%s id="%s"]', $this->form_type, $this->form_id);
|
1253 |
?>
|
1254 |
<div id="titlediv">
|
1255 |
<div id="titlewrap">
|
1256 |
<label class="screen-reader-text" id="title-prompt-text" for="title"><?php _e('Enter title here', 'wp-user-avatar'); ?></label>
|
1257 |
+
<input type="text" name="pp_form_title" size="30" value="<?= esc_attr($title) ?>" id="title">
|
1258 |
<a class="pp-form-save-changes button button-primary button-large" style="margin: 2px 0 0 10px;text-align: center;" href="#"><?php _e('Save Changes', 'wp-user-avatar'); ?></a>
|
1259 |
</div>
|
1260 |
<div class="inside">
|
1263 |
<?php esc_html_e('Copy this shortcode and paste it into your post, page, or text widget content:', 'wp-user-avatar') ?>
|
1264 |
</label>
|
1265 |
<span class="shortcode wp-ui-highlight">
|
1266 |
+
<input type="text" id="ppress-shortcode" onfocus="this.select();" readonly="readonly" class="large-text code" value="<?= esc_attr($shortcode) ?>">
|
1267 |
</span>
|
1268 |
</p>
|
1269 |
</div>
|
1284 |
<a class="pp-form-save-changes button button-primary button-large" style="margin: 0 10px 0 0;vertical-align: middle;" href="#">
|
1285 |
<?php _e('Save Changes', 'wp-user-avatar'); ?>
|
1286 |
</a>
|
1287 |
+
<a href="<?= esc_url(FormList::delete_url($this->form_id, $this->form_type)) ?>" class="pp-form-delete button-link button-link-delete">
|
1288 |
<?php _e('Delete Form', 'wp-user-avatar'); ?>
|
1289 |
</a>
|
1290 |
</div>
|
src/Admin/SettingsPages/DragDropBuilder/FieldBase.php
CHANGED
@@ -122,7 +122,7 @@ abstract class FieldBase implements FieldInterface
|
|
122 |
<?php foreach ($tabs as $tab_id => $tab_title) {
|
123 |
if ( ! empty($field_settings[$tab_id])) {
|
124 |
?>
|
125 |
-
<a href="#<?= $tab_id ?>" class="pp-form-buider-settings-popup-tab-menu"><?= $tab_title ?></a>
|
126 |
<?php
|
127 |
}
|
128 |
}
|
122 |
<?php foreach ($tabs as $tab_id => $tab_title) {
|
123 |
if ( ! empty($field_settings[$tab_id])) {
|
124 |
?>
|
125 |
+
<a href="#<?= $tab_id ?>" class="pp-form-buider-settings-popup-tab-menu"><?= esc_html($tab_title) ?></a>
|
126 |
<?php
|
127 |
}
|
128 |
}
|
src/Admin/SettingsPages/DragDropBuilder/Metabox.php
CHANGED
@@ -65,7 +65,7 @@ class Metabox
|
|
65 |
$placeholder = isset($options['placeholder']) ? $options['placeholder'] : '';
|
66 |
printf(
|
67 |
'<input type="text" class="short" name="%1$s" id="%1$s" value="%3$s" placeholder="%2$s">',
|
68 |
-
esc_attr($name), esc_attr($placeholder), $this->saved_values_bucket($name)
|
69 |
);
|
70 |
}
|
71 |
|
@@ -74,7 +74,7 @@ class Metabox
|
|
74 |
$placeholder = isset($options['placeholder']) ? $options['placeholder'] : '';
|
75 |
printf(
|
76 |
'<input type="number" class="short" name="%1$s" id="%1$s" value="%3$s" placeholder="%2$s">',
|
77 |
-
esc_attr($name), esc_attr($placeholder), $this->saved_values_bucket($name)
|
78 |
);
|
79 |
}
|
80 |
|
@@ -84,7 +84,7 @@ class Metabox
|
|
84 |
|
85 |
printf(
|
86 |
'<input type="text" class="short pp-color-field" name="%1$s" id="%1$s" value="%3$s" placeholder="%2$s" data-default-color="%4$s">',
|
87 |
-
esc_attr($name), esc_attr($placeholder), $this->saved_values_bucket($name), $this->default_values()
|
88 |
);
|
89 |
}
|
90 |
|
@@ -94,7 +94,7 @@ class Metabox
|
|
94 |
echo '<div class="pp_upload_field_container">';
|
95 |
printf(
|
96 |
'<input type="text" class="pp_upload_field short large-text" name="%1$s" id="%1$s" value="%3$s" placeholder="%2$s">',
|
97 |
-
esc_attr($name), esc_attr($placeholder), $this->saved_values_bucket($name)
|
98 |
);
|
99 |
printf('<span class="pp_upload_file"><a href="#" class="pp_upload_button">%s</a></span>', esc_html__('Upload Image', 'wp-user-avatar'));
|
100 |
echo '</div>';
|
@@ -105,7 +105,7 @@ class Metabox
|
|
105 |
$placeholder = isset($options['placeholder']) ? $options['placeholder'] : '';
|
106 |
printf(
|
107 |
'<textarea class="short" name="%1$s" id="%1$s" placeholder="%2$s">%3$s</textarea>',
|
108 |
-
esc_attr($name), esc_attr($placeholder), $this->saved_values_bucket($name)
|
109 |
);
|
110 |
}
|
111 |
|
@@ -146,7 +146,7 @@ class Metabox
|
|
146 |
|
147 |
public function custom($name, $options)
|
148 |
{
|
149 |
-
echo isset($options['content']) ? $options['content'] : '';
|
150 |
}
|
151 |
|
152 |
private function select2_selected($id, $name)
|
@@ -274,12 +274,13 @@ class Metabox
|
|
274 |
?>
|
275 |
<div class="postbox-container" id="settings">
|
276 |
<div id="pp-form-builder-metabox" class="postbox">
|
277 |
-
<div class="postbox-header"><h2 class="hndle is-non-sortable"
|
|
|
278 |
</div>
|
279 |
<div class="inside">
|
280 |
<div class="panel-wrap pp-form-builder-mb-data">
|
281 |
<ul class="pp-form-builder-mb-data_tabs pp-tabs">
|
282 |
-
<?php foreach ($tabs as $key => $value) : ?>
|
283 |
<?php if (empty($tab_settings[$key])) continue; ?>
|
284 |
<li class="<?= $key ?>_options <?= $key ?>_tab">
|
285 |
<a href="#<?= $key ?>_data"><span><?= $value ?></span></a>
|
@@ -288,15 +289,15 @@ class Metabox
|
|
288 |
</ul>
|
289 |
|
290 |
<?php foreach ($tab_settings as $key => $fields) {
|
291 |
-
echo '<div id="' . $key . '_data" class="panel pp-form-builder_options_panel hidden">';
|
292 |
|
293 |
foreach ($fields as $options) {
|
294 |
$field_id = $options['id'];
|
295 |
|
296 |
echo sprintf('<div class="form-field %s_wrap">', $field_id);
|
297 |
-
echo "<label for=\"$field_id\">" . $options['label'] . '</label>';
|
298 |
if ( ! empty($options['description'])) {
|
299 |
-
printf('<span class="pp-form-builder-help-tip" title="%s"></span>', $options['description']);
|
300 |
}
|
301 |
echo '<div class="pp-field-row-content">';
|
302 |
$this->{$options['type']}($field_id, $options);
|
65 |
$placeholder = isset($options['placeholder']) ? $options['placeholder'] : '';
|
66 |
printf(
|
67 |
'<input type="text" class="short" name="%1$s" id="%1$s" value="%3$s" placeholder="%2$s">',
|
68 |
+
esc_attr($name), esc_attr($placeholder), esc_attr($this->saved_values_bucket($name))
|
69 |
);
|
70 |
}
|
71 |
|
74 |
$placeholder = isset($options['placeholder']) ? $options['placeholder'] : '';
|
75 |
printf(
|
76 |
'<input type="number" class="short" name="%1$s" id="%1$s" value="%3$s" placeholder="%2$s">',
|
77 |
+
esc_attr($name), esc_attr($placeholder), esc_attr($this->saved_values_bucket($name))
|
78 |
);
|
79 |
}
|
80 |
|
84 |
|
85 |
printf(
|
86 |
'<input type="text" class="short pp-color-field" name="%1$s" id="%1$s" value="%3$s" placeholder="%2$s" data-default-color="%4$s">',
|
87 |
+
esc_attr($name), esc_attr($placeholder), esc_attr($this->saved_values_bucket($name)), esc_attr(ppress_var($this->default_values(), $name))
|
88 |
);
|
89 |
}
|
90 |
|
94 |
echo '<div class="pp_upload_field_container">';
|
95 |
printf(
|
96 |
'<input type="text" class="pp_upload_field short large-text" name="%1$s" id="%1$s" value="%3$s" placeholder="%2$s">',
|
97 |
+
esc_attr($name), esc_attr($placeholder), esc_attr($this->saved_values_bucket($name))
|
98 |
);
|
99 |
printf('<span class="pp_upload_file"><a href="#" class="pp_upload_button">%s</a></span>', esc_html__('Upload Image', 'wp-user-avatar'));
|
100 |
echo '</div>';
|
105 |
$placeholder = isset($options['placeholder']) ? $options['placeholder'] : '';
|
106 |
printf(
|
107 |
'<textarea class="short" name="%1$s" id="%1$s" placeholder="%2$s">%3$s</textarea>',
|
108 |
+
esc_attr($name), esc_attr($placeholder), esc_textarea($this->saved_values_bucket($name))
|
109 |
);
|
110 |
}
|
111 |
|
146 |
|
147 |
public function custom($name, $options)
|
148 |
{
|
149 |
+
echo isset($options['content']) ? wp_kses_post($options['content']) : '';
|
150 |
}
|
151 |
|
152 |
private function select2_selected($id, $name)
|
274 |
?>
|
275 |
<div class="postbox-container" id="settings">
|
276 |
<div id="pp-form-builder-metabox" class="postbox">
|
277 |
+
<div class="postbox-header"><h2 class="hndle is-non-sortable">
|
278 |
+
<span><?= esc_html($metabox_title) ?></span></h2>
|
279 |
</div>
|
280 |
<div class="inside">
|
281 |
<div class="panel-wrap pp-form-builder-mb-data">
|
282 |
<ul class="pp-form-builder-mb-data_tabs pp-tabs">
|
283 |
+
<?php foreach ($tabs as $key => $value) : $key = esc_attr($key); ?>
|
284 |
<?php if (empty($tab_settings[$key])) continue; ?>
|
285 |
<li class="<?= $key ?>_options <?= $key ?>_tab">
|
286 |
<a href="#<?= $key ?>_data"><span><?= $value ?></span></a>
|
289 |
</ul>
|
290 |
|
291 |
<?php foreach ($tab_settings as $key => $fields) {
|
292 |
+
echo '<div id="' . esc_attr($key) . '_data" class="panel pp-form-builder_options_panel hidden">';
|
293 |
|
294 |
foreach ($fields as $options) {
|
295 |
$field_id = $options['id'];
|
296 |
|
297 |
echo sprintf('<div class="form-field %s_wrap">', $field_id);
|
298 |
+
echo "<label for=\"$field_id\">" . esc_html($options['label']) . '</label>';
|
299 |
if ( ! empty($options['description'])) {
|
300 |
+
printf('<span class="pp-form-builder-help-tip" title="%s"></span>', esc_attr($options['description']));
|
301 |
}
|
302 |
echo '<div class="pp-field-row-content">';
|
303 |
$this->{$options['type']}($field_id, $options);
|
src/Admin/SettingsPages/EmailSettings/WPListTable.php
CHANGED
@@ -41,7 +41,7 @@ class WPListTable extends \WP_List_Table
|
|
41 |
|
42 |
public function column_default($item, $column_name)
|
43 |
{
|
44 |
-
$url =
|
45 |
|
46 |
if ($column_name == 'configure') {
|
47 |
return '<a class="button pp-email-configure" href="' . $url . '"><span class="dashicons dashicons-admin-generic"></span></a>';
|
@@ -67,11 +67,11 @@ class WPListTable extends \WP_List_Table
|
|
67 |
if ( ! empty($item['description'])) {
|
68 |
$hint = sprintf(
|
69 |
' <span class="ppress-hint-tooltip hint--top hint--medium hint--bounce" aria-label="%s"><span class="dashicons dashicons-editor-help"></span></span>',
|
70 |
-
$item['description']
|
71 |
);
|
72 |
}
|
73 |
|
74 |
-
return sprintf('%s<strong><a href="%s">%s</a>%s</strong>', $flag, $url, $item['title'], $hint);
|
75 |
}
|
76 |
|
77 |
public function prepare_items()
|
41 |
|
42 |
public function column_default($item, $column_name)
|
43 |
{
|
44 |
+
$url = esc_url(add_query_arg('type', sanitize_text_field($item['key'])));
|
45 |
|
46 |
if ($column_name == 'configure') {
|
47 |
return '<a class="button pp-email-configure" href="' . $url . '"><span class="dashicons dashicons-admin-generic"></span></a>';
|
67 |
if ( ! empty($item['description'])) {
|
68 |
$hint = sprintf(
|
69 |
' <span class="ppress-hint-tooltip hint--top hint--medium hint--bounce" aria-label="%s"><span class="dashicons dashicons-editor-help"></span></span>',
|
70 |
+
esc_attr($item['description'])
|
71 |
);
|
72 |
}
|
73 |
|
74 |
+
return sprintf('%s<strong><a href="%s">%s</a>%s</strong>', $flag, $url, esc_html($item['title']), $hint);
|
75 |
}
|
76 |
|
77 |
public function prepare_items()
|
src/Admin/SettingsPages/ExtensionsSettingsPage.php
CHANGED
@@ -117,13 +117,13 @@ class ExtensionsSettingsPage extends AbstractSettingsPage
|
|
117 |
<div class="ppress-extension-card-body<?= EM::is_premium() && $extension_class::$instance_flag && (true !== $dependency_available) ? ' ppress-unavailable' : '' ?>">
|
118 |
<div class="ppress-extension-card-header">
|
119 |
<?= ppress_var($extension, 'icon', '') ?>
|
120 |
-
<?= $extension['title'] ?>
|
121 |
</div>
|
122 |
<div class="ppress-extension-card-description">
|
123 |
-
<div><?= $extension['description'] ?></div>
|
124 |
<div class="ppress-extension-card-learn-more">
|
125 |
-
<a href="<?= $extension['url'] ?>" target="_blank"><?= esc_html__('Learn More', 'wp-user-avatar') ?></a>
|
126 |
-
<a href="<?= $extension['url'] ?>" target="_blank" class="no-underline"> →</a>
|
127 |
</div>
|
128 |
</div>
|
129 |
</div>
|
@@ -150,8 +150,8 @@ class ExtensionsSettingsPage extends AbstractSettingsPage
|
|
150 |
|
151 |
<?php else : ?>
|
152 |
<div class="ppress-extensions-upgrade-cta">
|
153 |
-
<a class="button-primary ppress-extensions-button" href="<?= $upgrade_url ?>" target="_blank">
|
154 |
-
<?= $upgrade_label ?>
|
155 |
</a>
|
156 |
</div>
|
157 |
<?php endif; ?>
|
117 |
<div class="ppress-extension-card-body<?= EM::is_premium() && $extension_class::$instance_flag && (true !== $dependency_available) ? ' ppress-unavailable' : '' ?>">
|
118 |
<div class="ppress-extension-card-header">
|
119 |
<?= ppress_var($extension, 'icon', '') ?>
|
120 |
+
<?= esc_html($extension['title']) ?>
|
121 |
</div>
|
122 |
<div class="ppress-extension-card-description">
|
123 |
+
<div><?= esc_html($extension['description']) ?></div>
|
124 |
<div class="ppress-extension-card-learn-more">
|
125 |
+
<a href="<?= esc_url($extension['url']) ?>" target="_blank"><?= esc_html__('Learn More', 'wp-user-avatar') ?></a>
|
126 |
+
<a href="<?= esc_url($extension['url']) ?>" target="_blank" class="no-underline"> →</a>
|
127 |
</div>
|
128 |
</div>
|
129 |
</div>
|
150 |
|
151 |
<?php else : ?>
|
152 |
<div class="ppress-extensions-upgrade-cta">
|
153 |
+
<a class="button-primary ppress-extensions-button" href="<?= esc_url($upgrade_url) ?>" target="_blank">
|
154 |
+
<?= esc_html($upgrade_label) ?>
|
155 |
</a>
|
156 |
</div>
|
157 |
<?php endif; ?>
|
src/Admin/SettingsPages/FormList.php
CHANGED
@@ -120,8 +120,8 @@ class FormList extends \WP_List_Table
|
|
120 |
sprintf(
|
121 |
'admin.php?page=%s&view=edit-shortcode-%s&id=%d',
|
122 |
$slug,
|
123 |
-
$form_type,
|
124 |
-
$form_id
|
125 |
)
|
126 |
);
|
127 |
|
@@ -131,42 +131,42 @@ class FormList extends \WP_List_Table
|
|
131 |
sprintf(
|
132 |
'admin.php?page=%s&view=drag-drop-builder&form-type=%s&id=%d',
|
133 |
$slug,
|
134 |
-
$form_type,
|
135 |
-
$form_id
|
136 |
)
|
137 |
);
|
138 |
}
|
139 |
|
140 |
-
return $url;
|
141 |
}
|
142 |
|
143 |
public static function delete_url($form_id, $form_type)
|
144 |
{
|
145 |
-
return admin_url(
|
146 |
sprintf(
|
147 |
'admin.php?page=pp-forms&action=delete&form_type=%s&id=%d&_wpnonce=%s',
|
148 |
-
$form_type,
|
149 |
-
$form_id,
|
150 |
ppress_create_nonce()
|
151 |
)
|
152 |
-
);
|
153 |
}
|
154 |
|
155 |
public static function clone_url($form_id, $form_type)
|
156 |
{
|
157 |
-
return admin_url(
|
158 |
sprintf(
|
159 |
'admin.php?page=pp-forms&action=clone&form_type=%s&id=%d&_wpnonce=%s',
|
160 |
-
$form_type,
|
161 |
-
$form_id,
|
162 |
ppress_create_nonce()
|
163 |
)
|
164 |
-
);
|
165 |
}
|
166 |
|
167 |
public static function preview_url($form_id, $form_type)
|
168 |
{
|
169 |
-
return add_query_arg(['pp_preview_form' => $form_id, 'type' => $form_type], home_url());
|
170 |
}
|
171 |
|
172 |
/**
|
@@ -229,10 +229,10 @@ class FormList extends \WP_List_Table
|
|
229 |
$form_id = absint($item['form_id']);
|
230 |
$form_type = sanitize_text_field($item['form_type']);
|
231 |
$builder_type = sanitize_text_field($item['builder_type']);
|
232 |
-
$customize_url = self::customize_url($form_id, $form_type, $builder_type);
|
233 |
-
$delete_url = self::delete_url($form_id, $form_type);
|
234 |
-
$clone_url = self::clone_url($form_id, $form_type);
|
235 |
-
$preview_url = self::preview_url($form_id, $form_type);
|
236 |
|
237 |
$actions = array(
|
238 |
'edit' => sprintf("<a href='%s'>%s</a>", $customize_url, esc_attr__('Edit', 'wp-user-avatar')),
|
@@ -399,11 +399,10 @@ class FormList extends \WP_List_Table
|
|
399 |
|
400 |
// Detect when a bulk action is being triggered...
|
401 |
if ('bulk-delete' == $this->current_action()) {
|
402 |
-
check_admin_referer('bulk-
|
403 |
-
$form_ids = $_POST['form_id'];
|
404 |
|
405 |
foreach ($form_ids as $form_id) {
|
406 |
-
$form_id = absint($form_id);
|
407 |
$form_type = ! empty($_GET['form-type']) ? sanitize_text_field($_GET['form-type']) : FR::LOGIN_TYPE;
|
408 |
if (isset($_GET['page']) && $_GET['page'] == PPRESS_MEMBER_DIRECTORIES_SLUG) {
|
409 |
$form_type = FR::MEMBERS_DIRECTORY_TYPE;
|
120 |
sprintf(
|
121 |
'admin.php?page=%s&view=edit-shortcode-%s&id=%d',
|
122 |
$slug,
|
123 |
+
sanitize_text_field($form_type),
|
124 |
+
absint($form_id)
|
125 |
)
|
126 |
);
|
127 |
|
131 |
sprintf(
|
132 |
'admin.php?page=%s&view=drag-drop-builder&form-type=%s&id=%d',
|
133 |
$slug,
|
134 |
+
sanitize_text_field($form_type),
|
135 |
+
absint($form_id)
|
136 |
)
|
137 |
);
|
138 |
}
|
139 |
|
140 |
+
return esc_url($url);
|
141 |
}
|
142 |
|
143 |
public static function delete_url($form_id, $form_type)
|
144 |
{
|
145 |
+
return esc_url(admin_url(
|
146 |
sprintf(
|
147 |
'admin.php?page=pp-forms&action=delete&form_type=%s&id=%d&_wpnonce=%s',
|
148 |
+
sanitize_text_field($form_type),
|
149 |
+
absint($form_id),
|
150 |
ppress_create_nonce()
|
151 |
)
|
152 |
+
));
|
153 |
}
|
154 |
|
155 |
public static function clone_url($form_id, $form_type)
|
156 |
{
|
157 |
+
return esc_url(admin_url(
|
158 |
sprintf(
|
159 |
'admin.php?page=pp-forms&action=clone&form_type=%s&id=%d&_wpnonce=%s',
|
160 |
+
sanitize_text_field($form_type),
|
161 |
+
absint($form_id),
|
162 |
ppress_create_nonce()
|
163 |
)
|
164 |
+
));
|
165 |
}
|
166 |
|
167 |
public static function preview_url($form_id, $form_type)
|
168 |
{
|
169 |
+
return esc_url(add_query_arg(['pp_preview_form' => $form_id, 'type' => $form_type], home_url()));
|
170 |
}
|
171 |
|
172 |
/**
|
229 |
$form_id = absint($item['form_id']);
|
230 |
$form_type = sanitize_text_field($item['form_type']);
|
231 |
$builder_type = sanitize_text_field($item['builder_type']);
|
232 |
+
$customize_url = esc_url(self::customize_url($form_id, $form_type, $builder_type));
|
233 |
+
$delete_url = esc_url(self::delete_url($form_id, $form_type));
|
234 |
+
$clone_url = esc_url(self::clone_url($form_id, $form_type));
|
235 |
+
$preview_url = esc_url(self::preview_url($form_id, $form_type));
|
236 |
|
237 |
$actions = array(
|
238 |
'edit' => sprintf("<a href='%s'>%s</a>", $customize_url, esc_attr__('Edit', 'wp-user-avatar')),
|
399 |
|
400 |
// Detect when a bulk action is being triggered...
|
401 |
if ('bulk-delete' == $this->current_action()) {
|
402 |
+
check_admin_referer('bulk-' . $this->_args['plural']);
|
403 |
+
$form_ids = array_map('absint', $_POST['form_id']);
|
404 |
|
405 |
foreach ($form_ids as $form_id) {
|
|
|
406 |
$form_type = ! empty($_GET['form-type']) ? sanitize_text_field($_GET['form-type']) : FR::LOGIN_TYPE;
|
407 |
if (isset($_GET['page']) && $_GET['page'] == PPRESS_MEMBER_DIRECTORIES_SLUG) {
|
408 |
$form_type = FR::MEMBERS_DIRECTORY_TYPE;
|
src/Admin/SettingsPages/Forms.php
CHANGED
@@ -196,10 +196,10 @@ class Forms extends AbstractSettingsPage
|
|
196 |
break;
|
197 |
}
|
198 |
|
199 |
-
$preview_url = add_query_arg(
|
200 |
['pp_preview_form' => absint($_GET['id']), 'type' => $form_type],
|
201 |
home_url()
|
202 |
-
);
|
203 |
|
204 |
$html = "<a target='_blank' class=\"add-new-h2\" href=\"$preview_url\">" . esc_html__('Live Preview', 'wp-user-avatar') . '</a>';
|
205 |
|
196 |
break;
|
197 |
}
|
198 |
|
199 |
+
$preview_url = esc_url(add_query_arg(
|
200 |
['pp_preview_form' => absint($_GET['id']), 'type' => $form_type],
|
201 |
home_url()
|
202 |
+
));
|
203 |
|
204 |
$html = "<a target='_blank' class=\"add-new-h2\" href=\"$preview_url\">" . esc_html__('Live Preview', 'wp-user-avatar') . '</a>';
|
205 |
|
src/Admin/SettingsPages/MemberDirectories.php
CHANGED
@@ -96,10 +96,10 @@ class MemberDirectories extends AbstractSettingsPage
|
|
96 |
{
|
97 |
if ( ! isset($_GET['view'])) return;
|
98 |
|
99 |
-
$preview_url = add_query_arg(
|
100 |
['pp_preview_form' => absint($_GET['id']), 'type' => FR::MEMBERS_DIRECTORY_TYPE],
|
101 |
home_url()
|
102 |
-
);
|
103 |
|
104 |
$html = "<a target='_blank' class=\"add-new-h2\" href=\"$preview_url\">" . esc_html__('Live Preview', 'wp-user-avatar') . '</a>';
|
105 |
|
@@ -134,6 +134,7 @@ class MemberDirectories extends AbstractSettingsPage
|
|
134 |
|
135 |
if ( ! empty($_GET['view']) && $_GET['view'] == 'add-new') {
|
136 |
echo '<script type="text/javascript">var pp_is_member_directory = true;</script>';
|
|
|
137 |
return AddNewForm::get_instance()->settings_admin_page();
|
138 |
}
|
139 |
|
@@ -145,7 +146,7 @@ class MemberDirectories extends AbstractSettingsPage
|
|
145 |
|
146 |
$shortcode_builder_page_header = sprintf(
|
147 |
'<div class="wrap ppSCB"><h2>%s %s</h2><form method="post">%s',
|
148 |
-
$page_header,
|
149 |
$this->live_form_preview_btn(false),
|
150 |
ppress_nonce_field()
|
151 |
);
|
@@ -196,7 +197,7 @@ class MemberDirectories extends AbstractSettingsPage
|
|
196 |
|
197 |
public function add_new_form_button()
|
198 |
{
|
199 |
-
$url = add_query_arg('view', 'add-new', PPRESS_MEMBER_DIRECTORIES_SETTINGS_PAGE);
|
200 |
echo "<a class=\"add-new-h2\" href=\"$url\">" . esc_html__('Add New', 'wp-user-avatar') . '</a>';
|
201 |
}
|
202 |
|
96 |
{
|
97 |
if ( ! isset($_GET['view'])) return;
|
98 |
|
99 |
+
$preview_url = esc_url(add_query_arg(
|
100 |
['pp_preview_form' => absint($_GET['id']), 'type' => FR::MEMBERS_DIRECTORY_TYPE],
|
101 |
home_url()
|
102 |
+
));
|
103 |
|
104 |
$html = "<a target='_blank' class=\"add-new-h2\" href=\"$preview_url\">" . esc_html__('Live Preview', 'wp-user-avatar') . '</a>';
|
105 |
|
134 |
|
135 |
if ( ! empty($_GET['view']) && $_GET['view'] == 'add-new') {
|
136 |
echo '<script type="text/javascript">var pp_is_member_directory = true;</script>';
|
137 |
+
|
138 |
return AddNewForm::get_instance()->settings_admin_page();
|
139 |
}
|
140 |
|
146 |
|
147 |
$shortcode_builder_page_header = sprintf(
|
148 |
'<div class="wrap ppSCB"><h2>%s %s</h2><form method="post">%s',
|
149 |
+
esc_html($page_header),
|
150 |
$this->live_form_preview_btn(false),
|
151 |
ppress_nonce_field()
|
152 |
);
|
197 |
|
198 |
public function add_new_form_button()
|
199 |
{
|
200 |
+
$url = esc_url(add_query_arg('view', 'add-new', PPRESS_MEMBER_DIRECTORIES_SETTINGS_PAGE));
|
201 |
echo "<a class=\"add-new-h2\" href=\"$url\">" . esc_html__('Add New', 'wp-user-avatar') . '</a>';
|
202 |
}
|
203 |
|
src/Admin/SettingsPages/MembersDirectoryList.php
CHANGED
@@ -8,7 +8,7 @@ class MembersDirectoryList extends FormList
|
|
8 |
{
|
9 |
printf(
|
10 |
esc_html__('No members directory is currently available. %sConsider creating one%s', 'wp-user-avatar'),
|
11 |
-
'<a href="' . add_query_arg('view', 'add-new', PPRESS_MEMBER_DIRECTORIES_SETTINGS_PAGE) . '">',
|
12 |
'</a>'
|
13 |
);
|
14 |
}
|
8 |
{
|
9 |
printf(
|
10 |
esc_html__('No members directory is currently available. %sConsider creating one%s', 'wp-user-avatar'),
|
11 |
+
'<a href="' . esc_url(add_query_arg('view', 'add-new', PPRESS_MEMBER_DIRECTORIES_SETTINGS_PAGE)) . '">',
|
12 |
'</a>'
|
13 |
);
|
14 |
}
|
src/AdminBarDashboardAccess/include.settings-page.php
CHANGED
@@ -40,8 +40,8 @@ $disable_dashboard_access_roles = ppress_var($abdc_options, 'disable_dashboard_a
|
|
40 |
<?php foreach (ppress_get_editable_roles() as $role_key => $data) :
|
41 |
?>
|
42 |
<label>
|
43 |
-
<input id="admin-bar-<?php echo $role_key; ?>" type="checkbox" name="ppress_abdc_options[disable_admin_bar_roles][]" value="<?php echo $role_key; ?>" <?php checked(in_array($role_key, $disable_admin_bar_roles)); ?>>
|
44 |
-
<?php echo $data['name']; ?></label><br/>
|
45 |
<?php endforeach; ?>
|
46 |
<p class="description">
|
47 |
<?php _e('Select the user roles that the admin bar will be disabled for. It will be disabled for everyone except admins if none is checked.', 'wp-user-avatar'); ?>
|
@@ -84,7 +84,7 @@ $disable_dashboard_access_roles = ppress_var($abdc_options, 'disable_dashboard_a
|
|
84 |
<?php foreach (ppress_get_editable_roles() as $role_key => $data) :
|
85 |
?>
|
86 |
<label>
|
87 |
-
<input id="dashboard-access-<?php echo $role_key; ?>" type="checkbox" name="ppress_abdc_options[disable_dashboard_access_roles][]" value="<?php echo $role_key; ?>" <?php checked(in_array($role_key, $disable_dashboard_access_roles)); ?>>
|
88 |
<?php echo $data['name']; ?></label><br/>
|
89 |
<?php endforeach; ?>
|
90 |
<p class="description">
|
@@ -97,7 +97,7 @@ $disable_dashboard_access_roles = ppress_var($abdc_options, 'disable_dashboard_a
|
|
97 |
<label for="dashboard_redirect_url"><?php _e('Dashboard Redirect URL', 'wp-user-avatar'); ?></label>
|
98 |
</th>
|
99 |
<td>
|
100 |
-
<input id="dashboard_redirect_url" type="text" name="ppress_abdc_options[dashboard_redirect_url]" value="<?php echo $dashboard_redirect_url; ?>">
|
101 |
<p class="description">
|
102 |
<?php _e('Enter URL to redirect users to without dashboard access. If empty, users will be redirected to website homepage.', 'wp-user-avatar'); ?>
|
103 |
</p>
|
40 |
<?php foreach (ppress_get_editable_roles() as $role_key => $data) :
|
41 |
?>
|
42 |
<label>
|
43 |
+
<input id="admin-bar-<?php echo $role_key; ?>" type="checkbox" name="ppress_abdc_options[disable_admin_bar_roles][]" value="<?php echo esc_attr($role_key); ?>" <?php checked(in_array($role_key, $disable_admin_bar_roles)); ?>>
|
44 |
+
<?php echo esc_html($data['name']); ?></label><br/>
|
45 |
<?php endforeach; ?>
|
46 |
<p class="description">
|
47 |
<?php _e('Select the user roles that the admin bar will be disabled for. It will be disabled for everyone except admins if none is checked.', 'wp-user-avatar'); ?>
|
84 |
<?php foreach (ppress_get_editable_roles() as $role_key => $data) :
|
85 |
?>
|
86 |
<label>
|
87 |
+
<input id="dashboard-access-<?php echo esc_attr($role_key); ?>" type="checkbox" name="ppress_abdc_options[disable_dashboard_access_roles][]" value="<?php echo esc_attr($role_key); ?>" <?php checked(in_array($role_key, $disable_dashboard_access_roles)); ?>>
|
88 |
<?php echo $data['name']; ?></label><br/>
|
89 |
<?php endforeach; ?>
|
90 |
<p class="description">
|
97 |
<label for="dashboard_redirect_url"><?php _e('Dashboard Redirect URL', 'wp-user-avatar'); ?></label>
|
98 |
</th>
|
99 |
<td>
|
100 |
+
<input id="dashboard_redirect_url" type="text" name="ppress_abdc_options[dashboard_redirect_url]" value="<?php echo esc_url($dashboard_redirect_url); ?>">
|
101 |
<p class="description">
|
102 |
<?php _e('Enter URL to redirect users to without dashboard access. If empty, users will be redirected to website homepage.', 'wp-user-avatar'); ?>
|
103 |
</p>
|
src/Classes/AdminNotices.php
CHANGED
@@ -76,7 +76,7 @@ class AdminNotices
|
|
76 |
|
77 |
$review_url = 'https://wordpress.org/support/plugin/wp-user-avatar/reviews/?filter=5#new-post';
|
78 |
|
79 |
-
$dismiss_url =
|
80 |
|
81 |
$notice = sprintf(
|
82 |
__('Hey, I noticed you have been using ProfilePress for at least 7 days now - that\'s awesome! Could you please do us a BIG favor and give it a %1$s5-star rating on WordPress?%2$s This will help us spread the word and boost our motivation - thanks!', 'wp-user-avatar'),
|
@@ -104,7 +104,7 @@ class AdminNotices
|
|
104 |
|
105 |
if (get_option('ppress_is_from_wp_user_avatar', false) != 'true') return;
|
106 |
|
107 |
-
$dismiss_url =
|
108 |
|
109 |
$notice = sprintf(
|
110 |
__('Important news! %1$sWP User Avatar%2$s is now %1$sProfilePress%2$s. We added new features such as member directories, frontend user registration & login forms, user profile, content protection and more. %3$sCheck Them Out%5$s | %4$sDismiss Notice%5$s', 'wp-user-avatar'),
|
76 |
|
77 |
$review_url = 'https://wordpress.org/support/plugin/wp-user-avatar/reviews/?filter=5#new-post';
|
78 |
|
79 |
+
$dismiss_url = esc_url(add_query_arg('ppress_admin_action', 'dismiss_leave_review_forever'));
|
80 |
|
81 |
$notice = sprintf(
|
82 |
__('Hey, I noticed you have been using ProfilePress for at least 7 days now - that\'s awesome! Could you please do us a BIG favor and give it a %1$s5-star rating on WordPress?%2$s This will help us spread the word and boost our motivation - thanks!', 'wp-user-avatar'),
|
104 |
|
105 |
if (get_option('ppress_is_from_wp_user_avatar', false) != 'true') return;
|
106 |
|
107 |
+
$dismiss_url = esc_url(add_query_arg('ppress_admin_action', 'dismiss_wp_user_avatar_now_ppress'));
|
108 |
|
109 |
$notice = sprintf(
|
110 |
__('Important news! %1$sWP User Avatar%2$s is now %1$sProfilePress%2$s. We added new features such as member directories, frontend user registration & login forms, user profile, content protection and more. %3$sCheck Them Out%5$s | %4$sDismiss Notice%5$s', 'wp-user-avatar'),
|
src/Classes/AjaxHandler.php
CHANGED
@@ -41,6 +41,7 @@ class AjaxHandler
|
|
41 |
|
42 |
public function menu_bar($builder_type)
|
43 |
{
|
|
|
44 |
$melange_jbox = esc_html__('Melange is a way to combine login, registration & password reset forms in a single form.', 'wp-user-avatar');
|
45 |
?>
|
46 |
<div id="pp-sub-bar">
|
@@ -161,7 +162,7 @@ class AjaxHandler
|
|
161 |
$placeholder = ! empty($placeholder) ? $placeholder : '';
|
162 |
?>
|
163 |
<div class="pp-form-new-list pp-optin-clear">
|
164 |
-
<h4><?php echo $label; ?>
|
165 |
<input type="text" id="pp-add-form-title" placeholder="<?= $placeholder; ?>">
|
166 |
<span class="spinner pp-dash-spinner"></span>
|
167 |
</h4>
|
@@ -171,7 +172,7 @@ class AjaxHandler
|
|
171 |
|
172 |
public function get_forms_by_builder_type($form_type = FR::LOGIN_TYPE, $builder_type = false)
|
173 |
{
|
174 |
-
$form_type = ! empty($form_type) ? $form_type : FR::LOGIN_TYPE;
|
175 |
$builder_type = ! $builder_type ? sanitize_text_field($_POST['data']) : $builder_type;
|
176 |
|
177 |
$this->form_name_field();
|
@@ -267,13 +268,14 @@ class AjaxHandler
|
|
267 |
function ajax_delete_avatar()
|
268 |
{
|
269 |
if (current_user_can('read')) {
|
|
|
270 |
if ( ! wp_verify_nonce($_POST['nonce'], 'ppress-frontend-nonce')) {
|
271 |
wp_send_json(array('error' => 'nonce_failed'));
|
272 |
}
|
273 |
|
274 |
EditUserProfile::remove_avatar_core();
|
275 |
|
276 |
-
wp_send_json(array('success' => true, 'default' => get_avatar_url(get_current_user_id(), '300')));
|
277 |
}
|
278 |
}
|
279 |
|
@@ -289,7 +291,7 @@ class AjaxHandler
|
|
289 |
|
290 |
$default = get_option('wp_user_cover_default_image_url', '');
|
291 |
|
292 |
-
wp_send_json(['success' => true, 'default' => $default]);
|
293 |
}
|
294 |
}
|
295 |
|
@@ -404,7 +406,7 @@ class AjaxHandler
|
|
404 |
$ajax_response = array('success' => true, 'redirect' => $response);
|
405 |
|
406 |
if (isset($response) && is_wp_error($response)) {
|
407 |
-
$login_error = '<div class="' . $login_status_css_class . '">';
|
408 |
$login_error .= $response->get_error_message();
|
409 |
$login_error .= '</div>';
|
410 |
|
41 |
|
42 |
public function menu_bar($builder_type)
|
43 |
{
|
44 |
+
$builder_type = sanitize_text_field($builder_type);
|
45 |
$melange_jbox = esc_html__('Melange is a way to combine login, registration & password reset forms in a single form.', 'wp-user-avatar');
|
46 |
?>
|
47 |
<div id="pp-sub-bar">
|
162 |
$placeholder = ! empty($placeholder) ? $placeholder : '';
|
163 |
?>
|
164 |
<div class="pp-form-new-list pp-optin-clear">
|
165 |
+
<h4><?php echo esc_html($label); ?>
|
166 |
<input type="text" id="pp-add-form-title" placeholder="<?= $placeholder; ?>">
|
167 |
<span class="spinner pp-dash-spinner"></span>
|
168 |
</h4>
|
172 |
|
173 |
public function get_forms_by_builder_type($form_type = FR::LOGIN_TYPE, $builder_type = false)
|
174 |
{
|
175 |
+
$form_type = ! empty($form_type) ? sanitize_text_field($form_type) : FR::LOGIN_TYPE;
|
176 |
$builder_type = ! $builder_type ? sanitize_text_field($_POST['data']) : $builder_type;
|
177 |
|
178 |
$this->form_name_field();
|
268 |
function ajax_delete_avatar()
|
269 |
{
|
270 |
if (current_user_can('read')) {
|
271 |
+
|
272 |
if ( ! wp_verify_nonce($_POST['nonce'], 'ppress-frontend-nonce')) {
|
273 |
wp_send_json(array('error' => 'nonce_failed'));
|
274 |
}
|
275 |
|
276 |
EditUserProfile::remove_avatar_core();
|
277 |
|
278 |
+
wp_send_json(array('success' => true, 'default' => esc_url(get_avatar_url(get_current_user_id(), '300'))));
|
279 |
}
|
280 |
}
|
281 |
|
291 |
|
292 |
$default = get_option('wp_user_cover_default_image_url', '');
|
293 |
|
294 |
+
wp_send_json(['success' => true, 'default' => esc_url($default)]);
|
295 |
}
|
296 |
}
|
297 |
|
406 |
$ajax_response = array('success' => true, 'redirect' => $response);
|
407 |
|
408 |
if (isset($response) && is_wp_error($response)) {
|
409 |
+
$login_error = '<div class="' . esc_attr($login_status_css_class) . '">';
|
410 |
$login_error .= $response->get_error_message();
|
411 |
$login_error .= '</div>';
|
412 |
|
src/Classes/BuddyPressBbPress.php
CHANGED
@@ -58,7 +58,7 @@ class BuddyPressBbPress
|
|
58 |
if (UserAvatar::user_has_pp_avatar($user_id)) {
|
59 |
$avatar_url = UserAvatar::get_pp_avatar_url($user_id);
|
60 |
|
61 |
-
return preg_replace('/src=".+?"/', 'src="' . $avatar_url . '"', $image_in_html);
|
62 |
}
|
63 |
}
|
64 |
|
@@ -76,7 +76,7 @@ class BuddyPressBbPress
|
|
76 |
public static function override_avatar_url($image_url, $params)
|
77 |
{
|
78 |
if (isset($params['object']) && 'user' == $params['object']) {
|
79 |
-
$user_id = $params['item_id'];
|
80 |
if (UserAvatar::user_has_pp_avatar($user_id)) {
|
81 |
$image_url = UserAvatar::get_pp_avatar_url($user_id);
|
82 |
}
|
58 |
if (UserAvatar::user_has_pp_avatar($user_id)) {
|
59 |
$avatar_url = UserAvatar::get_pp_avatar_url($user_id);
|
60 |
|
61 |
+
return preg_replace('/src=".+?"/', 'src="' . esc_url($avatar_url) . '"', $image_in_html);
|
62 |
}
|
63 |
}
|
64 |
|
76 |
public static function override_avatar_url($image_url, $params)
|
77 |
{
|
78 |
if (isset($params['object']) && 'user' == $params['object']) {
|
79 |
+
$user_id = absint($params['item_id']);
|
80 |
if (UserAvatar::user_has_pp_avatar($user_id)) {
|
81 |
$image_url = UserAvatar::get_pp_avatar_url($user_id);
|
82 |
}
|
src/Classes/FormPreviewHandler.php
CHANGED
@@ -42,7 +42,7 @@ class FormPreviewHandler
|
|
42 |
|
43 |
$form_title = FormRepository::get_name($this->_form_id, $this->_form_type);
|
44 |
|
45 |
-
return $form_title . " " . esc_html__('Preview', 'wp-user-avatar');
|
46 |
}
|
47 |
|
48 |
/**
|
42 |
|
43 |
$form_title = FormRepository::get_name($this->_form_id, $this->_form_type);
|
44 |
|
45 |
+
return esc_html($form_title) . " " . esc_html__('Preview', 'wp-user-avatar');
|
46 |
}
|
47 |
|
48 |
/**
|
src/Classes/LoginAuth.php
CHANGED
@@ -95,7 +95,7 @@ class LoginAuth
|
|
95 |
$login_redirection = apply_filters('login_redirect', $login_redirect, $requested_redirect_to, $user);
|
96 |
|
97 |
/** Setup a custom location of the builder */
|
98 |
-
$login_redirection = apply_filters('ppress_login_redirect', $login_redirection, $login_form_id, $user);
|
99 |
|
100 |
// if ajax, return the url to redirect to
|
101 |
if (self::is_ajax()) return $login_redirection;
|
95 |
$login_redirection = apply_filters('login_redirect', $login_redirect, $requested_redirect_to, $user);
|
96 |
|
97 |
/** Setup a custom location of the builder */
|
98 |
+
$login_redirection = esc_url_raw(apply_filters('ppress_login_redirect', $login_redirection, $login_form_id, $user));
|
99 |
|
100 |
// if ajax, return the url to redirect to
|
101 |
if (self::is_ajax()) return $login_redirection;
|
src/Classes/ModifyRedirectDefaultLinks.php
CHANGED
@@ -51,7 +51,7 @@ class ModifyRedirectDefaultLinks
|
|
51 |
$val = get_permalink($page_id);
|
52 |
}
|
53 |
|
54 |
-
return apply_filters('ppress_password_reset_url', $val);
|
55 |
}
|
56 |
|
57 |
/**
|
@@ -65,7 +65,7 @@ class ModifyRedirectDefaultLinks
|
|
65 |
|
66 |
if (empty($page_id)) return;
|
67 |
|
68 |
-
$password_reset_url = get_permalink(absint($page_id));
|
69 |
|
70 |
wp_safe_redirect($password_reset_url);
|
71 |
exit;
|
@@ -97,7 +97,7 @@ class ModifyRedirectDefaultLinks
|
|
97 |
}
|
98 |
}
|
99 |
|
100 |
-
return apply_filters('ppress_login_url', $url, $redirect, $force_reauth);
|
101 |
}
|
102 |
|
103 |
|
@@ -124,7 +124,7 @@ class ModifyRedirectDefaultLinks
|
|
124 |
}
|
125 |
}
|
126 |
|
127 |
-
wp_safe_redirect($login_url);
|
128 |
exit;
|
129 |
}
|
130 |
|
@@ -141,7 +141,7 @@ class ModifyRedirectDefaultLinks
|
|
141 |
$val = get_permalink($page_id);
|
142 |
}
|
143 |
|
144 |
-
return apply_filters('ppress_registration_url', $val);
|
145 |
}
|
146 |
|
147 |
/**
|
@@ -155,7 +155,7 @@ class ModifyRedirectDefaultLinks
|
|
155 |
|
156 |
$reg_url = ppress_registration_url();
|
157 |
|
158 |
-
wp_safe_redirect($reg_url);
|
159 |
exit;
|
160 |
}
|
161 |
|
@@ -196,7 +196,7 @@ class ModifyRedirectDefaultLinks
|
|
196 |
$logout_url = add_query_arg('redirect_to', urlencode($set_redirect), $logout_url);
|
197 |
}
|
198 |
|
199 |
-
return $logout_url;
|
200 |
}
|
201 |
|
202 |
/**
|
@@ -213,7 +213,7 @@ class ModifyRedirectDefaultLinks
|
|
213 |
$url = get_permalink($page_id);
|
214 |
}
|
215 |
|
216 |
-
return $url;
|
217 |
}, 9999999999);
|
218 |
|
219 |
// Filter to disable edit profile redirect for administrator.
|
@@ -223,10 +223,10 @@ class ModifyRedirectDefaultLinks
|
|
223 |
if ( ! empty(ppress_get_setting('edit_user_profile_url'))) {
|
224 |
$edit_user_profile_url = ppress_edit_profile_url();
|
225 |
|
226 |
-
$page_viewed =
|
227 |
|
228 |
if (isset($page_viewed) && strpos($page_viewed, 'wp-admin/profile.php') !== false) {
|
229 |
-
wp_safe_redirect($edit_user_profile_url);
|
230 |
exit;
|
231 |
}
|
232 |
}
|
@@ -236,7 +236,7 @@ class ModifyRedirectDefaultLinks
|
|
236 |
public function author_link_func($url, $author_id)
|
237 |
{
|
238 |
if (ppress_settings_by_key('author_slug_to_profile') == 'on') {
|
239 |
-
$url = ppress_get_frontend_profile_url($author_id);
|
240 |
}
|
241 |
|
242 |
return $url;
|
@@ -256,7 +256,7 @@ class ModifyRedirectDefaultLinks
|
|
256 |
$email = $comment->comment_author_email;
|
257 |
$user = get_user_by('email', $email);
|
258 |
if (isset($user->user_login)) {
|
259 |
-
$url = ppress_get_frontend_profile_url($user->user_login);
|
260 |
}
|
261 |
}
|
262 |
}
|
@@ -269,7 +269,7 @@ class ModifyRedirectDefaultLinks
|
|
269 |
*/
|
270 |
public function redirect_logout_page()
|
271 |
{
|
272 |
-
$page_viewed = basename(
|
273 |
|
274 |
if ($page_viewed == "wp-login.php?loggedout=true" && $_SERVER['REQUEST_METHOD'] == 'GET') {
|
275 |
wp_safe_redirect(home_url());
|
51 |
$val = get_permalink($page_id);
|
52 |
}
|
53 |
|
54 |
+
return apply_filters('ppress_password_reset_url', esc_url_raw($val));
|
55 |
}
|
56 |
|
57 |
/**
|
65 |
|
66 |
if (empty($page_id)) return;
|
67 |
|
68 |
+
$password_reset_url = esc_url_raw(get_permalink(absint($page_id)));
|
69 |
|
70 |
wp_safe_redirect($password_reset_url);
|
71 |
exit;
|
97 |
}
|
98 |
}
|
99 |
|
100 |
+
return apply_filters('ppress_login_url', esc_url_raw($url), $redirect, $force_reauth);
|
101 |
}
|
102 |
|
103 |
|
124 |
}
|
125 |
}
|
126 |
|
127 |
+
wp_safe_redirect(esc_url_raw($login_url));
|
128 |
exit;
|
129 |
}
|
130 |
|
141 |
$val = get_permalink($page_id);
|
142 |
}
|
143 |
|
144 |
+
return apply_filters('ppress_registration_url', esc_url_raw($val));
|
145 |
}
|
146 |
|
147 |
/**
|
155 |
|
156 |
$reg_url = ppress_registration_url();
|
157 |
|
158 |
+
wp_safe_redirect(esc_url_raw($reg_url));
|
159 |
exit;
|
160 |
}
|
161 |
|
196 |
$logout_url = add_query_arg('redirect_to', urlencode($set_redirect), $logout_url);
|
197 |
}
|
198 |
|
199 |
+
return esc_url_raw($logout_url);
|
200 |
}
|
201 |
|
202 |
/**
|
213 |
$url = get_permalink($page_id);
|
214 |
}
|
215 |
|
216 |
+
return esc_url_raw($url);
|
217 |
}, 9999999999);
|
218 |
|
219 |
// Filter to disable edit profile redirect for administrator.
|
223 |
if ( ! empty(ppress_get_setting('edit_user_profile_url'))) {
|
224 |
$edit_user_profile_url = ppress_edit_profile_url();
|
225 |
|
226 |
+
$page_viewed = esc_url_raw($_SERVER['REQUEST_URI']);
|
227 |
|
228 |
if (isset($page_viewed) && strpos($page_viewed, 'wp-admin/profile.php') !== false) {
|
229 |
+
wp_safe_redirect(esc_url_raw($edit_user_profile_url));
|
230 |
exit;
|
231 |
}
|
232 |
}
|
236 |
public function author_link_func($url, $author_id)
|
237 |
{
|
238 |
if (ppress_settings_by_key('author_slug_to_profile') == 'on') {
|
239 |
+
$url = esc_url_raw(ppress_get_frontend_profile_url($author_id));
|
240 |
}
|
241 |
|
242 |
return $url;
|
256 |
$email = $comment->comment_author_email;
|
257 |
$user = get_user_by('email', $email);
|
258 |
if (isset($user->user_login)) {
|
259 |
+
$url = esc_url_raw(ppress_get_frontend_profile_url($user->user_login));
|
260 |
}
|
261 |
}
|
262 |
}
|
269 |
*/
|
270 |
public function redirect_logout_page()
|
271 |
{
|
272 |
+
$page_viewed = basename(esc_url_raw($_SERVER['REQUEST_URI']));
|
273 |
|
274 |
if ($page_viewed == "wp-login.php?loggedout=true" && $_SERVER['REQUEST_METHOD'] == 'GET') {
|
275 |
wp_safe_redirect(home_url());
|
src/Classes/PasswordReset.php
CHANGED
@@ -71,7 +71,7 @@ class PasswordReset
|
|
71 |
/**
|
72 |
* Callback function for filter
|
73 |
*
|
74 |
-
* @param
|
75 |
* @param $key
|
76 |
*
|
77 |
* @return string formatted message for use by the password reset form
|
@@ -215,8 +215,8 @@ class PasswordReset
|
|
215 |
*/
|
216 |
public static function do_password_reset()
|
217 |
{
|
218 |
-
$reset_key = $_REQUEST['reset_key'];
|
219 |
-
$reset_login = $_REQUEST['reset_login'];
|
220 |
|
221 |
$user = check_password_reset_key($reset_key, $reset_login);
|
222 |
|
71 |
/**
|
72 |
* Callback function for filter
|
73 |
*
|
74 |
+
* @param mixed $user_data
|
75 |
* @param $key
|
76 |
*
|
77 |
* @return string formatted message for use by the password reset form
|
215 |
*/
|
216 |
public static function do_password_reset()
|
217 |
{
|
218 |
+
$reset_key = wp_unslash($_REQUEST['reset_key']);
|
219 |
+
$reset_login = wp_unslash($_REQUEST['reset_login']);
|
220 |
|
221 |
$user = check_password_reset_key($reset_key, $reset_login);
|
222 |
|
src/ContentProtection/Frontend/Redirect.php
CHANGED
@@ -64,7 +64,7 @@ class Redirect
|
|
64 |
if (Checker::content_match($meta['content'], true)) {
|
65 |
|
66 |
if (Checker::is_blocked($who_can_access, $access_roles)) {
|
67 |
-
wp_safe_redirect($redirect_url);
|
68 |
exit;
|
69 |
}
|
70 |
|
64 |
if (Checker::content_match($meta['content'], true)) {
|
65 |
|
66 |
if (Checker::is_blocked($who_can_access, $access_roles)) {
|
67 |
+
wp_safe_redirect(esc_url_raw($redirect_url));
|
68 |
exit;
|
69 |
}
|
70 |
|
src/ContentProtection/WPListTable.php
CHANGED
@@ -10,8 +10,8 @@ class WPListTable extends \WP_List_Table
|
|
10 |
public function __construct()
|
11 |
{
|
12 |
parent::__construct(array(
|
13 |
-
'singular' =>
|
14 |
-
'plural' =>
|
15 |
'ajax' => false
|
16 |
));
|
17 |
}
|
@@ -313,6 +313,9 @@ class WPListTable extends \WP_List_Table
|
|
313 |
{
|
314 |
$rule_id = absint(ppress_var($_GET, 'id', 0));
|
315 |
|
|
|
|
|
|
|
316 |
if ('deactivate' === $this->current_action()) {
|
317 |
|
318 |
check_admin_referer('pp_content_protection_deactivate_rule');
|
@@ -377,7 +380,8 @@ class WPListTable extends \WP_List_Table
|
|
377 |
}
|
378 |
|
379 |
if ('bulk-delete' === $this->current_action()) {
|
380 |
-
|
|
|
381 |
|
382 |
$delete_ids = array_map('absint', $_POST['rule_id']);
|
383 |
|
10 |
public function __construct()
|
11 |
{
|
12 |
parent::__construct(array(
|
13 |
+
'singular' => 'ppress-protection-rule',
|
14 |
+
'plural' => 'ppress-protection-rules',
|
15 |
'ajax' => false
|
16 |
));
|
17 |
}
|
313 |
{
|
314 |
$rule_id = absint(ppress_var($_GET, 'id', 0));
|
315 |
|
316 |
+
// Bail if user is not an admin or without admin privileges.
|
317 |
+
if ( ! current_user_can('manage_options')) return;
|
318 |
+
|
319 |
if ('deactivate' === $this->current_action()) {
|
320 |
|
321 |
check_admin_referer('pp_content_protection_deactivate_rule');
|
380 |
}
|
381 |
|
382 |
if ('bulk-delete' === $this->current_action()) {
|
383 |
+
|
384 |
+
check_admin_referer('bulk-' . $this->_args['plural']);
|
385 |
|
386 |
$delete_ids = array_map('absint', $_POST['rule_id']);
|
387 |
|
src/Functions/custom-settings-api.php
CHANGED
@@ -418,7 +418,7 @@ class Custom_Settings_Page_Api
|
|
418 |
$pageURL .= $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"];
|
419 |
}
|
420 |
|
421 |
-
return apply_filters('wp_cspa_main_current_page_url', $pageURL);
|
422 |
}
|
423 |
|
424 |
|
@@ -1074,7 +1074,7 @@ public function _header($args)
|
|
1074 |
public function _footer($disable_submit_button = null)
|
1075 |
{
|
1076 |
return '</table>
|
1077 |
-
<p><input class="button-primary" type="submit" name="save_' . $this->option_name . '" value="Save Changes"></p>
|
1078 |
</div>
|
1079 |
</div>';
|
1080 |
}
|
418 |
$pageURL .= $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"];
|
419 |
}
|
420 |
|
421 |
+
return apply_filters('wp_cspa_main_current_page_url', esc_url_raw($pageURL));
|
422 |
}
|
423 |
|
424 |
|
1074 |
public function _footer($disable_submit_button = null)
|
1075 |
{
|
1076 |
return '</table>
|
1077 |
+
<p><input class="button-primary" type="submit" name="save_' . $this->option_name . '" value="'. esc_html__('Save Changes', 'wp-user-avatar'). '"></p>
|
1078 |
</div>
|
1079 |
</div>';
|
1080 |
}
|
src/ShortcodeParser/Builder/FieldsShortcodeCallback.php
CHANGED
@@ -1035,7 +1035,6 @@ class FieldsShortcodeCallback
|
|
1035 |
|
1036 |
$processing_label = ! empty($atts['processing_label']) ? $atts['processing_label'] : FormRepository::get_processing_label($form_id, $form_type);
|
1037 |
|
1038 |
-
|
1039 |
$attributes = $this->field_attributes($field_name, $atts);
|
1040 |
|
1041 |
$html = sprintf(
|
1035 |
|
1036 |
$processing_label = ! empty($atts['processing_label']) ? $atts['processing_label'] : FormRepository::get_processing_label($form_id, $form_type);
|
1037 |
|
|
|
1038 |
$attributes = $this->field_attributes($field_name, $atts);
|
1039 |
|
1040 |
$html = sprintf(
|
src/ShortcodeParser/Builder/FrontendProfileBuilder.php
CHANGED
@@ -3,6 +3,7 @@
|
|
3 |
namespace ProfilePress\Core\ShortcodeParser\Builder;
|
4 |
|
5 |
use ProfilePress\Core\Classes\ExtensionManager as EM;
|
|
|
6 |
|
7 |
class FrontendProfileBuilder
|
8 |
{
|
@@ -35,14 +36,12 @@ class FrontendProfileBuilder
|
|
35 |
add_shortcode('profile-bio', array($this, 'profile_bio'));
|
36 |
|
37 |
add_shortcode('profile-cpf', array($this, 'profile_custom_profile_field'));
|
38 |
-
|
39 |
add_shortcode('profile-file', array($this, 'profile_user_uploaded_file'));
|
40 |
|
41 |
add_shortcode('profile-cover-image-url', array($this, 'cover_image_url'));
|
42 |
|
43 |
add_shortcode('profile-avatar-url', array($this, 'user_avatar_url'));
|
44 |
-
// backward compat
|
45 |
-
add_shortcode('user-avatar-url', array($this, 'user_avatar_url'));
|
46 |
|
47 |
add_shortcode('profile-hide-empty-data', array($this, 'hide_empty_data'));
|
48 |
|
@@ -349,6 +348,12 @@ class FrontendProfileBuilder
|
|
349 |
|
350 |
if (empty($key)) return esc_html__('Field key is missing', 'wp-user-avatar');
|
351 |
|
|
|
|
|
|
|
|
|
|
|
|
|
352 |
$data = self::$user_data->{$key};
|
353 |
|
354 |
if (is_array($data)) {
|
@@ -444,6 +449,9 @@ class FrontendProfileBuilder
|
|
444 |
case 'last_name':
|
445 |
$key = 'last_name';
|
446 |
break;
|
|
|
|
|
|
|
447 |
}
|
448 |
|
449 |
if ( ! empty($key) && ! empty(self::$user_data->$key)) {
|
3 |
namespace ProfilePress\Core\ShortcodeParser\Builder;
|
4 |
|
5 |
use ProfilePress\Core\Classes\ExtensionManager as EM;
|
6 |
+
use ProfilePress\Core\Classes\PROFILEPRESS_sql;
|
7 |
|
8 |
class FrontendProfileBuilder
|
9 |
{
|
36 |
add_shortcode('profile-bio', array($this, 'profile_bio'));
|
37 |
|
38 |
add_shortcode('profile-cpf', array($this, 'profile_custom_profile_field'));
|
|
|
39 |
add_shortcode('profile-file', array($this, 'profile_user_uploaded_file'));
|
40 |
|
41 |
add_shortcode('profile-cover-image-url', array($this, 'cover_image_url'));
|
42 |
|
43 |
add_shortcode('profile-avatar-url', array($this, 'user_avatar_url'));
|
44 |
+
add_shortcode('user-avatar-url', array($this, 'user_avatar_url')); // backward compat
|
|
|
45 |
|
46 |
add_shortcode('profile-hide-empty-data', array($this, 'hide_empty_data'));
|
47 |
|
348 |
|
349 |
if (empty($key)) return esc_html__('Field key is missing', 'wp-user-avatar');
|
350 |
|
351 |
+
$type = PROFILEPRESS_sql::get_field_type($key);
|
352 |
+
|
353 |
+
if ('file' == $type) {
|
354 |
+
return $this->profile_user_uploaded_file($atts);
|
355 |
+
}
|
356 |
+
|
357 |
$data = self::$user_data->{$key};
|
358 |
|
359 |
if (is_array($data)) {
|
449 |
case 'last_name':
|
450 |
$key = 'last_name';
|
451 |
break;
|
452 |
+
case 'bio':
|
453 |
+
$key = 'description';
|
454 |
+
break;
|
455 |
}
|
456 |
|
457 |
if ( ! empty($key) && ! empty(self::$user_data->$key)) {
|
src/ShortcodeParser/Builder/GlobalShortcodes.php
CHANGED
@@ -20,7 +20,7 @@ class GlobalShortcodes
|
|
20 |
add_shortcode('link-lost-password', array(__CLASS__, 'link_lost_password'));
|
21 |
add_shortcode('link-login', array(__CLASS__, 'link_login'));
|
22 |
add_shortcode('link-logout', array(__CLASS__, 'link_logout'));
|
23 |
-
add_shortcode('link-edit-user-profile', array(__CLASS__, 'link_edit_profile'));
|
24 |
add_shortcode('link-my-account', array(__CLASS__, 'link_edit_profile'));
|
25 |
add_shortcode('pp-login-form', array(__CLASS__, 'login_form_tag'));
|
26 |
add_shortcode('pp-registration-form', array(__CLASS__, 'registration_form_tag'));
|
@@ -152,10 +152,12 @@ class GlobalShortcodes
|
|
152 |
{
|
153 |
$atts = shortcode_atts(['custom_html' => ''], $atts);
|
154 |
|
155 |
-
return do_shortcode(stripslashes($atts['custom_html']));
|
156 |
}
|
157 |
|
158 |
-
/**
|
|
|
|
|
159 |
public static function link_registration($atts)
|
160 |
{
|
161 |
$atts = ppress_normalize_attributes($atts);
|
@@ -285,7 +287,6 @@ class GlobalShortcodes
|
|
285 |
|
286 |
/**
|
287 |
* URL to user edit page
|
288 |
-
* @return string
|
289 |
*/
|
290 |
public static function link_edit_profile($atts)
|
291 |
{
|
@@ -425,6 +426,7 @@ class GlobalShortcodes
|
|
425 |
|
426 |
ob_start();
|
427 |
ppress_content_http_redirect($url);
|
|
|
428 |
return ob_get_clean();
|
429 |
}
|
430 |
|
@@ -453,6 +455,7 @@ class GlobalShortcodes
|
|
453 |
|
454 |
ob_start();
|
455 |
ppress_content_http_redirect($url);
|
|
|
456 |
return ob_get_clean();
|
457 |
}
|
458 |
|
20 |
add_shortcode('link-lost-password', array(__CLASS__, 'link_lost_password'));
|
21 |
add_shortcode('link-login', array(__CLASS__, 'link_login'));
|
22 |
add_shortcode('link-logout', array(__CLASS__, 'link_logout'));
|
23 |
+
add_shortcode('link-edit-user-profile', array(__CLASS__, 'link_edit_profile')); // backward compat
|
24 |
add_shortcode('link-my-account', array(__CLASS__, 'link_edit_profile'));
|
25 |
add_shortcode('pp-login-form', array(__CLASS__, 'login_form_tag'));
|
26 |
add_shortcode('pp-registration-form', array(__CLASS__, 'registration_form_tag'));
|
152 |
{
|
153 |
$atts = shortcode_atts(['custom_html' => ''], $atts);
|
154 |
|
155 |
+
return do_shortcode(stripslashes(wp_kses_post($atts['custom_html'])));
|
156 |
}
|
157 |
|
158 |
+
/**
|
159 |
+
* Registration url
|
160 |
+
*/
|
161 |
public static function link_registration($atts)
|
162 |
{
|
163 |
$atts = ppress_normalize_attributes($atts);
|
287 |
|
288 |
/**
|
289 |
* URL to user edit page
|
|
|
290 |
*/
|
291 |
public static function link_edit_profile($atts)
|
292 |
{
|
426 |
|
427 |
ob_start();
|
428 |
ppress_content_http_redirect($url);
|
429 |
+
|
430 |
return ob_get_clean();
|
431 |
}
|
432 |
|
455 |
|
456 |
ob_start();
|
457 |
ppress_content_http_redirect($url);
|
458 |
+
|
459 |
return ob_get_clean();
|
460 |
}
|
461 |
|
src/ShortcodeParser/Builder/PasswordResetBuilder.php
CHANGED
@@ -57,7 +57,7 @@ class PasswordResetBuilder
|
|
57 |
return apply_filters('ppress_password_reset_username_field', $html, $atts);
|
58 |
}
|
59 |
|
60 |
-
protected function get_processing_label()
|
61 |
{
|
62 |
$form_type = FormRepository::PASSWORD_RESET_TYPE;
|
63 |
$form_id = isset($GLOBALS['pp_password_reset_form_id']) ? $GLOBALS['pp_password_reset_form_id'] : 0;
|
@@ -84,11 +84,12 @@ class PasswordResetBuilder
|
|
84 |
|
85 |
$atts = shortcode_atts(
|
86 |
array(
|
87 |
-
'class'
|
88 |
-
'id'
|
89 |
-
'value'
|
90 |
-
'title'
|
91 |
-
'
|
|
|
92 |
),
|
93 |
$atts
|
94 |
);
|
@@ -108,7 +109,7 @@ class PasswordResetBuilder
|
|
108 |
'<input data-pp-submit-label="%2$s" data-pp-processing-label="%3$s" type="submit" value="%2$s" %1$s>',
|
109 |
"$name $title $class $id $other_atts_html",
|
110 |
$value,
|
111 |
-
$this->get_processing_label()
|
112 |
);
|
113 |
|
114 |
return apply_filters('ppress_password_reset_submit_field', $html, $atts);
|
@@ -319,10 +320,11 @@ class PasswordResetBuilder
|
|
319 |
|
320 |
$atts = shortcode_atts(
|
321 |
array(
|
322 |
-
'class'
|
323 |
-
'id'
|
324 |
-
'title'
|
325 |
-
'
|
|
|
326 |
),
|
327 |
$atts
|
328 |
);
|
@@ -342,7 +344,7 @@ class PasswordResetBuilder
|
|
342 |
'<input data-pp-submit-label="%2$s" data-pp-processing-label="%3$s" type="submit" value="%2$s" %1$s>',
|
343 |
"$name $title $class $id $other_atts_html",
|
344 |
$value,
|
345 |
-
$this->get_processing_label()
|
346 |
);
|
347 |
|
348 |
return apply_filters('ppress_password_reset_handler_submit_field', $html, $atts);
|
57 |
return apply_filters('ppress_password_reset_username_field', $html, $atts);
|
58 |
}
|
59 |
|
60 |
+
protected function get_processing_label($atts)
|
61 |
{
|
62 |
$form_type = FormRepository::PASSWORD_RESET_TYPE;
|
63 |
$form_id = isset($GLOBALS['pp_password_reset_form_id']) ? $GLOBALS['pp_password_reset_form_id'] : 0;
|
84 |
|
85 |
$atts = shortcode_atts(
|
86 |
array(
|
87 |
+
'class' => '',
|
88 |
+
'id' => '',
|
89 |
+
'value' => '',
|
90 |
+
'title' => '',
|
91 |
+
'processing_label' => '',
|
92 |
+
'name' => 'password_reset_submit',
|
93 |
),
|
94 |
$atts
|
95 |
);
|
109 |
'<input data-pp-submit-label="%2$s" data-pp-processing-label="%3$s" type="submit" value="%2$s" %1$s>',
|
110 |
"$name $title $class $id $other_atts_html",
|
111 |
$value,
|
112 |
+
$this->get_processing_label($atts)
|
113 |
);
|
114 |
|
115 |
return apply_filters('ppress_password_reset_submit_field', $html, $atts);
|
320 |
|
321 |
$atts = shortcode_atts(
|
322 |
array(
|
323 |
+
'class' => '',
|
324 |
+
'id' => '',
|
325 |
+
'title' => '',
|
326 |
+
'processing_label' => '',
|
327 |
+
'name' => 'reset_password',
|
328 |
),
|
329 |
$atts
|
330 |
);
|
344 |
'<input data-pp-submit-label="%2$s" data-pp-processing-label="%3$s" type="submit" value="%2$s" %1$s>',
|
345 |
"$name $title $class $id $other_atts_html",
|
346 |
$value,
|
347 |
+
$this->get_processing_label($atts)
|
348 |
);
|
349 |
|
350 |
return apply_filters('ppress_password_reset_handler_submit_field', $html, $atts);
|
src/ShortcodeParser/FrontendProfileTag.php
CHANGED
@@ -42,9 +42,8 @@ class FrontendProfileTag
|
|
42 |
if (is_user_logged_in()) {
|
43 |
$user = $this->get_current_user_data();
|
44 |
} else {
|
45 |
-
$profile_slug_with_slash = ppress_get_profile_slug() . '/';
|
46 |
|
47 |
-
if (strpos($_SERVER['REQUEST_URI'],
|
48 |
wp_safe_redirect(home_url());
|
49 |
exit;
|
50 |
}
|
@@ -205,8 +204,7 @@ class FrontendProfileTag
|
|
205 |
return $title;
|
206 |
}
|
207 |
|
208 |
-
|
209 |
-
static public function get_instance()
|
210 |
{
|
211 |
static $instance = false;
|
212 |
|
42 |
if (is_user_logged_in()) {
|
43 |
$user = $this->get_current_user_data();
|
44 |
} else {
|
|
|
45 |
|
46 |
+
if (strpos($_SERVER['REQUEST_URI'], '/' . ppress_get_profile_slug() . '/') !== false) {
|
47 |
wp_safe_redirect(home_url());
|
48 |
exit;
|
49 |
}
|
204 |
return $title;
|
205 |
}
|
206 |
|
207 |
+
public static function get_instance()
|
|
|
208 |
{
|
209 |
static $instance = false;
|
210 |
|
src/ShortcodeParser/MyAccount/dashboard.tmpl.php
CHANGED
@@ -23,7 +23,7 @@ $current_user = get_user_by('id', get_current_user_id());
|
|
23 |
<p>
|
24 |
<?php
|
25 |
printf(
|
26 |
-
__('From your account dashboard you can
|
27 |
esc_url(MyAccountTag::get_endpoint_url('change-password')),
|
28 |
esc_url(MyAccountTag::get_endpoint_url('edit-profile'))
|
29 |
);
|
23 |
<p>
|
24 |
<?php
|
25 |
printf(
|
26 |
+
__('From your account dashboard you can <a href="%1$s">change your password</a> and <a href="%2$s">edit your account details</a>.', 'wp-user-avatar'),
|
27 |
esc_url(MyAccountTag::get_endpoint_url('change-password')),
|
28 |
esc_url(MyAccountTag::get_endpoint_url('edit-profile'))
|
29 |
);
|
src/ShortcodeParser/PasswordResetTag.php
CHANGED
@@ -96,18 +96,16 @@ class PasswordResetTag extends FormProcessor
|
|
96 |
{
|
97 |
ob_start();
|
98 |
?>
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
[password-reset-submit class="pp-reset-button pp-reset-button-block" value="<?= esc_html__('Save', 'wp-user-avatar'); ?>"]
|
110 |
-
</div>
|
111 |
<?php
|
112 |
return apply_filters('ppress_form_default_handler_form', ob_get_clean());
|
113 |
}
|
96 |
{
|
97 |
ob_start();
|
98 |
?>
|
99 |
+
<div class="pp-reset-password-form">
|
100 |
+
<h3><?= esc_html__('Enter your new password below', 'wp-user-avatar'); ?></h3>
|
101 |
+
<label for="password1"><?= esc_html__('New password', 'wp-user-avatar'); ?> <span class="req">*</span></label>
|
102 |
+
[enter-password id="password1" required autocomplete="off"]
|
103 |
+
|
104 |
+
<label for="password2"><?= esc_html__('Re-enter new password', 'wp-user-avatar') ?> <span class="req">*</span></label>
|
105 |
+
[re-enter-password id="password2" required autocomplete="off"]
|
106 |
+
|
107 |
+
[password-reset-submit class="pp-reset-button pp-reset-button-block" value="<?= esc_html__('Save', 'wp-user-avatar'); ?>"]
|
108 |
+
</div>
|
|
|
|
|
109 |
<?php
|
110 |
return apply_filters('ppress_form_default_handler_form', ob_get_clean());
|
111 |
}
|
src/Themes/DragDrop/AbstractMemberDirectoryTheme.php
CHANGED
@@ -915,17 +915,17 @@ abstract class AbstractMemberDirectoryTheme extends AbstractTheme
|
|
915 |
|
916 |
protected function get_results_text()
|
917 |
{
|
918 |
-
return $this->get_meta('ppress_md_results_text');
|
919 |
}
|
920 |
|
921 |
protected function get_single_result_text()
|
922 |
{
|
923 |
-
return $this->get_meta('ppress_md_single_result_text');
|
924 |
}
|
925 |
|
926 |
protected function get_no_result_text()
|
927 |
{
|
928 |
-
return $this->get_meta('ppress_md_no_result_text');
|
929 |
}
|
930 |
|
931 |
protected function get_default_result_number_per_page()
|
915 |
|
916 |
protected function get_results_text()
|
917 |
{
|
918 |
+
return esc_html($this->get_meta('ppress_md_results_text'));
|
919 |
}
|
920 |
|
921 |
protected function get_single_result_text()
|
922 |
{
|
923 |
+
return esc_html($this->get_meta('ppress_md_single_result_text'));
|
924 |
}
|
925 |
|
926 |
protected function get_no_result_text()
|
927 |
{
|
928 |
+
return esc_html($this->get_meta('ppress_md_no_result_text'));
|
929 |
}
|
930 |
|
931 |
protected function get_default_result_number_per_page()
|
vendor/autoload.php
CHANGED
@@ -4,4 +4,4 @@
|
|
4 |
|
5 |
require_once __DIR__ . '/composer/autoload_real.php';
|
6 |
|
7 |
-
return
|
4 |
|
5 |
require_once __DIR__ . '/composer/autoload_real.php';
|
6 |
|
7 |
+
return ComposerAutoloaderInit0f0dfaf6382a05d192bd889e5f7168f9::getLoader();
|
vendor/composer/InstalledVersions.php
CHANGED
@@ -29,7 +29,7 @@ private static $installed = array (
|
|
29 |
'aliases' =>
|
30 |
array (
|
31 |
),
|
32 |
-
'reference' => '
|
33 |
'name' => '__root__',
|
34 |
),
|
35 |
'versions' =>
|
@@ -41,7 +41,7 @@ private static $installed = array (
|
|
41 |
'aliases' =>
|
42 |
array (
|
43 |
),
|
44 |
-
'reference' => '
|
45 |
),
|
46 |
'collizo4sky/persist-admin-notices-dismissal' =>
|
47 |
array (
|
29 |
'aliases' =>
|
30 |
array (
|
31 |
),
|
32 |
+
'reference' => '9b520d65a2664f9459fb4987528469dbcf6d2475',
|
33 |
'name' => '__root__',
|
34 |
),
|
35 |
'versions' =>
|
41 |
'aliases' =>
|
42 |
array (
|
43 |
),
|
44 |
+
'reference' => '9b520d65a2664f9459fb4987528469dbcf6d2475',
|
45 |
),
|
46 |
'collizo4sky/persist-admin-notices-dismissal' =>
|
47 |
array (
|
vendor/composer/autoload_real.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
-
class
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
@@ -24,15 +24,15 @@ class ComposerAutoloaderInitc340867a2b798d549ce71fca3e3b82ba
|
|
24 |
|
25 |
require __DIR__ . '/platform_check.php';
|
26 |
|
27 |
-
spl_autoload_register(array('
|
28 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
29 |
-
spl_autoload_unregister(array('
|
30 |
|
31 |
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
32 |
if ($useStaticLoader) {
|
33 |
require __DIR__ . '/autoload_static.php';
|
34 |
|
35 |
-
call_user_func(\Composer\Autoload\
|
36 |
} else {
|
37 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
38 |
foreach ($map as $namespace => $path) {
|
@@ -53,19 +53,19 @@ class ComposerAutoloaderInitc340867a2b798d549ce71fca3e3b82ba
|
|
53 |
$loader->register(true);
|
54 |
|
55 |
if ($useStaticLoader) {
|
56 |
-
$includeFiles = Composer\Autoload\
|
57 |
} else {
|
58 |
$includeFiles = require __DIR__ . '/autoload_files.php';
|
59 |
}
|
60 |
foreach ($includeFiles as $fileIdentifier => $file) {
|
61 |
-
|
62 |
}
|
63 |
|
64 |
return $loader;
|
65 |
}
|
66 |
}
|
67 |
|
68 |
-
function
|
69 |
{
|
70 |
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
71 |
require $file;
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
+
class ComposerAutoloaderInit0f0dfaf6382a05d192bd889e5f7168f9
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
24 |
|
25 |
require __DIR__ . '/platform_check.php';
|
26 |
|
27 |
+
spl_autoload_register(array('ComposerAutoloaderInit0f0dfaf6382a05d192bd889e5f7168f9', 'loadClassLoader'), true, true);
|
28 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
29 |
+
spl_autoload_unregister(array('ComposerAutoloaderInit0f0dfaf6382a05d192bd889e5f7168f9', 'loadClassLoader'));
|
30 |
|
31 |
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
32 |
if ($useStaticLoader) {
|
33 |
require __DIR__ . '/autoload_static.php';
|
34 |
|
35 |
+
call_user_func(\Composer\Autoload\ComposerStaticInit0f0dfaf6382a05d192bd889e5f7168f9::getInitializer($loader));
|
36 |
} else {
|
37 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
38 |
foreach ($map as $namespace => $path) {
|
53 |
$loader->register(true);
|
54 |
|
55 |
if ($useStaticLoader) {
|
56 |
+
$includeFiles = Composer\Autoload\ComposerStaticInit0f0dfaf6382a05d192bd889e5f7168f9::$files;
|
57 |
} else {
|
58 |
$includeFiles = require __DIR__ . '/autoload_files.php';
|
59 |
}
|
60 |
foreach ($includeFiles as $fileIdentifier => $file) {
|
61 |
+
composerRequire0f0dfaf6382a05d192bd889e5f7168f9($fileIdentifier, $file);
|
62 |
}
|
63 |
|
64 |
return $loader;
|
65 |
}
|
66 |
}
|
67 |
|
68 |
+
function composerRequire0f0dfaf6382a05d192bd889e5f7168f9($fileIdentifier, $file)
|
69 |
{
|
70 |
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
71 |
require $file;
|
vendor/composer/autoload_static.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
|
5 |
namespace Composer\Autoload;
|
6 |
|
7 |
-
class
|
8 |
{
|
9 |
public static $files = array (
|
10 |
'fda73876e8be17735f680f484cec1679' => __DIR__ . '/../..' . '/src/Functions/custom-settings-api.php',
|
@@ -286,9 +286,9 @@ class ComposerStaticInitc340867a2b798d549ce71fca3e3b82ba
|
|
286 |
public static function getInitializer(ClassLoader $loader)
|
287 |
{
|
288 |
return \Closure::bind(function () use ($loader) {
|
289 |
-
$loader->prefixLengthsPsr4 =
|
290 |
-
$loader->prefixDirsPsr4 =
|
291 |
-
$loader->classMap =
|
292 |
|
293 |
}, null, ClassLoader::class);
|
294 |
}
|
4 |
|
5 |
namespace Composer\Autoload;
|
6 |
|
7 |
+
class ComposerStaticInit0f0dfaf6382a05d192bd889e5f7168f9
|
8 |
{
|
9 |
public static $files = array (
|
10 |
'fda73876e8be17735f680f484cec1679' => __DIR__ . '/../..' . '/src/Functions/custom-settings-api.php',
|
286 |
public static function getInitializer(ClassLoader $loader)
|
287 |
{
|
288 |
return \Closure::bind(function () use ($loader) {
|
289 |
+
$loader->prefixLengthsPsr4 = ComposerStaticInit0f0dfaf6382a05d192bd889e5f7168f9::$prefixLengthsPsr4;
|
290 |
+
$loader->prefixDirsPsr4 = ComposerStaticInit0f0dfaf6382a05d192bd889e5f7168f9::$prefixDirsPsr4;
|
291 |
+
$loader->classMap = ComposerStaticInit0f0dfaf6382a05d192bd889e5f7168f9::$classMap;
|
292 |
|
293 |
}, null, ClassLoader::class);
|
294 |
}
|
vendor/composer/installed.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
'aliases' =>
|
7 |
array (
|
8 |
),
|
9 |
-
'reference' => '
|
10 |
'name' => '__root__',
|
11 |
),
|
12 |
'versions' =>
|
@@ -18,7 +18,7 @@
|
|
18 |
'aliases' =>
|
19 |
array (
|
20 |
),
|
21 |
-
'reference' => '
|
22 |
),
|
23 |
'collizo4sky/persist-admin-notices-dismissal' =>
|
24 |
array (
|
6 |
'aliases' =>
|
7 |
array (
|
8 |
),
|
9 |
+
'reference' => '9b520d65a2664f9459fb4987528469dbcf6d2475',
|
10 |
'name' => '__root__',
|
11 |
),
|
12 |
'versions' =>
|
18 |
'aliases' =>
|
19 |
array (
|
20 |
),
|
21 |
+
'reference' => '9b520d65a2664f9459fb4987528469dbcf6d2475',
|
22 |
),
|
23 |
'collizo4sky/persist-admin-notices-dismissal' =>
|
24 |
array (
|
wp-user-avatar.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Plugin Name: ProfilePress
|
4 |
* Plugin URI: https://profilepress.net
|
5 |
* Description: The modern WordPress membership and user profile plugin.
|
6 |
-
* Version: 3.1.
|
7 |
* Author: ProfilePress Team
|
8 |
* Author URI: https://profilepress.net
|
9 |
* Text Domain: wp-user-avatar
|
@@ -14,7 +14,7 @@
|
|
14 |
defined('ABSPATH') or die("No script kiddies please!");
|
15 |
|
16 |
define('PROFILEPRESS_SYSTEM_FILE_PATH', __FILE__);
|
17 |
-
define('PPRESS_VERSION_NUMBER', '3.1.
|
18 |
|
19 |
require __DIR__ . '/vendor/autoload.php';
|
20 |
|
3 |
* Plugin Name: ProfilePress
|
4 |
* Plugin URI: https://profilepress.net
|
5 |
* Description: The modern WordPress membership and user profile plugin.
|
6 |
+
* Version: 3.1.9
|
7 |
* Author: ProfilePress Team
|
8 |
* Author URI: https://profilepress.net
|
9 |
* Text Domain: wp-user-avatar
|
14 |
defined('ABSPATH') or die("No script kiddies please!");
|
15 |
|
16 |
define('PROFILEPRESS_SYSTEM_FILE_PATH', __FILE__);
|
17 |
+
define('PPRESS_VERSION_NUMBER', '3.1.9');
|
18 |
|
19 |
require __DIR__ . '/vendor/autoload.php';
|
20 |
|