diff --git a/includes/admin/core/class-admin-builder.php b/includes/admin/core/class-admin-builder.php index 803b71a2..26107e4a 100644 --- a/includes/admin/core/class-admin-builder.php +++ b/includes/admin/core/class-admin-builder.php @@ -870,6 +870,13 @@ if ( ! class_exists( 'um\admin\core\Admin_Builder' ) ) { builtin()->predefined_fields ) { foreach ( UM()->builtin()->predefined_fields as $field_key => $array ) { + if ( $_POST['form_mode'] == 'profile' ) { + $restricted_fields = UM()->fields()->get_restricted_fields_for_edit(); + if ( is_array( $restricted_fields ) && in_array( $field_key, $restricted_fields ) ) { + continue; + } + } + if ( ! isset( $array['account_only'] ) && ! isset( $array['private_use'] ) ) { ?> data-silent_action="um_admin_add_field_from_predefined" data-arg1="" data-arg2=""> diff --git a/includes/core/class-fields.php b/includes/core/class-fields.php index ced4251c..c9d0cf74 100644 --- a/includes/core/class-fields.php +++ b/includes/core/class-fields.php @@ -1769,6 +1769,22 @@ if ( ! class_exists( 'um\core\Fields' ) ) { } + /** + * Getting the fields that need to be disabled in edit mode (profile) + * + * @param bool $_um_profile_id + * + * @return array + */ + function get_restricted_fields_for_edit( $_um_profile_id = false ) { + // fields that need to be disabled in edit mode (profile) + $arr_restricted_fields = array( 'user_email', 'username', 'user_login', 'user_password' ); + $arr_restricted_fields = apply_filters( 'um_user_profile_restricted_edit_fields', $arr_restricted_fields, $_um_profile_id ); + + return $arr_restricted_fields; + } + + /** * Gets a field in 'input mode' * @@ -1899,9 +1915,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) { um_fetch_user( $_um_profile_id ); // fields that need to be disabled in edit mode (profile) - $arr_restricted_fields = array( 'user_email', 'username', 'user_login', 'user_password' ); - $arr_restricted_fields = apply_filters( 'um_user_profile_restricted_edit_fields', $arr_restricted_fields, $key, $data, $_um_profile_id ); - + $arr_restricted_fields = $this->get_restricted_fields_for_edit( $_um_profile_id ); if ( in_array( $key, $arr_restricted_fields ) && $this->editing == true && $this->set_mode == 'profile' ) { return; } diff --git a/includes/core/um-actions-form.php b/includes/core/um-actions-form.php index 49aab0d0..95919266 100644 --- a/includes/core/um-actions-form.php +++ b/includes/core/um-actions-form.php @@ -372,6 +372,13 @@ function um_submit_form_errors_hook_( $args ) { if ( ! empty( $fields ) ) { foreach ( $fields as $key => $array ) { + if ( $mode == 'profile' ) { + $restricted_fields = UM()->fields()->get_restricted_fields_for_edit(); + if ( is_array( $restricted_fields ) && in_array( $key, $restricted_fields ) ) { + continue; + } + } + if ( isset( $array['public'] ) && -2 == $array['public'] && ! empty( $array['roles'] ) && is_user_logged_in() ) { $current_user_roles = um_user( 'roles' ); if ( empty( $current_user_roles ) || count( array_intersect( $current_user_roles, $array['roles'] ) ) <= 0 ) { diff --git a/languages/ultimate-member-en_US.po b/languages/ultimate-member-en_US.po index a0cd4299..6bab61d6 100644 --- a/languages/ultimate-member-en_US.po +++ b/languages/ultimate-member-en_US.po @@ -1,8 +1,8 @@ msgid "" msgstr "" "Project-Id-Version: Ultimate Member\n" -"POT-Creation-Date: 2019-10-24 00:57+0300\n" -"PO-Revision-Date: 2019-10-24 00:58+0300\n" +"POT-Creation-Date: 2019-10-24 16:16+0300\n" +"PO-Revision-Date: 2019-10-24 16:16+0300\n" "Last-Translator: \n" "Language-Team: \n" "Language: en_US\n" @@ -103,7 +103,7 @@ msgstr "" #: includes/admin/core/class-admin-builder.php:764 #: includes/admin/core/class-admin-dragdrop.php:33 #: includes/admin/core/class-admin-menu.php:106 -#: includes/core/class-fields.php:4355 +#: includes/core/class-fields.php:4369 msgid "Please login as administrator" msgstr "" @@ -163,25 +163,25 @@ msgstr "" msgid "Predefined Fields" msgstr "" -#: includes/admin/core/class-admin-builder.php:880 +#: includes/admin/core/class-admin-builder.php:887 #: includes/core/class-builtin.php:1330 msgid "None" msgstr "" -#: includes/admin/core/class-admin-builder.php:885 +#: includes/admin/core/class-admin-builder.php:892 msgid "Custom Fields" msgstr "" -#: includes/admin/core/class-admin-builder.php:899 +#: includes/admin/core/class-admin-builder.php:906 msgid "You did not create any custom fields" msgstr "" -#: includes/admin/core/class-admin-builder.php:931 -#: includes/admin/core/class-admin-builder.php:1003 +#: includes/admin/core/class-admin-builder.php:938 +#: includes/admin/core/class-admin-builder.php:1010 msgid "This field type is not setup correcty." msgstr "" -#: includes/admin/core/class-admin-builder.php:1150 +#: includes/admin/core/class-admin-builder.php:1157 #: includes/core/class-form.php:159 includes/core/class-form.php:333 #: includes/core/class-password.php:533 msgid "This is not possible for security reasons." @@ -3167,7 +3167,7 @@ msgid "UM Action" msgstr "" #: includes/admin/core/class-admin-users.php:124 -#: includes/core/class-fields.php:2520 +#: includes/core/class-fields.php:2534 msgid "Apply" msgstr "" @@ -4207,7 +4207,7 @@ msgstr "" #: includes/admin/templates/modal/dynamic_new_group.php:18 #: includes/admin/templates/modal/fonticons.php:14 #: includes/admin/templates/role/publish.php:24 includes/class-config.php:251 -#: includes/core/class-fields.php:2521 includes/core/class-fields.php:2618 +#: includes/core/class-fields.php:2535 includes/core/class-fields.php:2632 #: includes/core/um-actions-profile.php:649 #: includes/core/um-actions-profile.php:661 #: includes/core/um-actions-profile.php:849 @@ -6979,56 +6979,56 @@ msgstr "" msgid "You can only upload one file" msgstr "" -#: includes/core/class-fields.php:2180 +#: includes/core/class-fields.php:2194 msgid "Current Password" msgstr "" -#: includes/core/class-fields.php:2209 +#: includes/core/class-fields.php:2223 msgid "New Password" msgstr "" -#: includes/core/class-fields.php:2241 +#: includes/core/class-fields.php:2255 #, php-format msgid "Confirm %s" msgstr "" -#: includes/core/class-fields.php:2475 +#: includes/core/class-fields.php:2489 msgid "Upload Photo" msgstr "" -#: includes/core/class-fields.php:2496 includes/core/class-fields.php:2520 +#: includes/core/class-fields.php:2510 includes/core/class-fields.php:2534 #: includes/core/um-actions-profile.php:880 msgid "Change photo" msgstr "" -#: includes/core/class-fields.php:2520 includes/core/class-fields.php:2617 +#: includes/core/class-fields.php:2534 includes/core/class-fields.php:2631 msgid "Processing..." msgstr "" -#: includes/core/class-fields.php:2542 +#: includes/core/class-fields.php:2556 msgid "Upload File" msgstr "" -#: includes/core/class-fields.php:2584 includes/core/um-filters-fields.php:267 +#: includes/core/class-fields.php:2598 includes/core/um-filters-fields.php:267 msgid "This file has been removed." msgstr "" -#: includes/core/class-fields.php:2587 includes/core/class-fields.php:2617 +#: includes/core/class-fields.php:2601 includes/core/class-fields.php:2631 msgid "Change file" msgstr "" -#: includes/core/class-fields.php:2617 +#: includes/core/class-fields.php:2631 msgid "Save" msgstr "" -#: includes/core/class-fields.php:4088 +#: includes/core/class-fields.php:4102 #, php-format msgid "" "Your profile is looking a little empty. Why not add some " "information!" msgstr "" -#: includes/core/class-fields.php:4090 +#: includes/core/class-fields.php:4104 msgid "This user has not added any information to their profile yet." msgstr "" @@ -7165,7 +7165,7 @@ msgid "Your password must contain less than 30 characters" msgstr "" #: includes/core/class-password.php:551 includes/core/um-actions-account.php:66 -#: includes/core/um-actions-form.php:498 +#: includes/core/um-actions-form.php:505 msgid "" "Your password must contain at least one lowercase letter, one capital letter " "and one number" @@ -7175,7 +7175,7 @@ msgstr "" msgid "You must confirm your new password" msgstr "" -#: includes/core/class-password.php:561 includes/core/um-actions-form.php:507 +#: includes/core/class-password.php:561 includes/core/um-actions-form.php:514 msgid "Your passwords do not match" msgstr "" @@ -7409,136 +7409,136 @@ msgstr "" msgid "Profile Photo is required." msgstr "" -#: includes/core/um-actions-form.php:416 includes/core/um-actions-form.php:420 -#: includes/core/um-actions-form.php:424 +#: includes/core/um-actions-form.php:423 includes/core/um-actions-form.php:427 +#: includes/core/um-actions-form.php:431 #, php-format msgid "%s is required." msgstr "" -#: includes/core/um-actions-form.php:429 +#: includes/core/um-actions-form.php:436 msgid "Please specify account type." msgstr "" -#: includes/core/um-actions-form.php:459 +#: includes/core/um-actions-form.php:466 msgid "This field is required" msgstr "" -#: includes/core/um-actions-form.php:461 +#: includes/core/um-actions-form.php:468 #, php-format msgid "%s is required" msgstr "" -#: includes/core/um-actions-form.php:470 +#: includes/core/um-actions-form.php:477 #, php-format msgid "You are only allowed to enter a maximum of %s words" msgstr "" -#: includes/core/um-actions-form.php:476 +#: includes/core/um-actions-form.php:483 #, php-format msgid "Your %s must contain at least %s characters" msgstr "" -#: includes/core/um-actions-form.php:482 +#: includes/core/um-actions-form.php:489 #, php-format msgid "Your %s must contain less than %s characters" msgstr "" -#: includes/core/um-actions-form.php:491 +#: includes/core/um-actions-form.php:498 msgid "You can not use HTML tags here" msgstr "" -#: includes/core/um-actions-form.php:504 +#: includes/core/um-actions-form.php:511 msgid "Please confirm your password" msgstr "" -#: includes/core/um-actions-form.php:513 +#: includes/core/um-actions-form.php:520 #, php-format msgid "Please select at least %s choices" msgstr "" -#: includes/core/um-actions-form.php:519 +#: includes/core/um-actions-form.php:526 #, php-format msgid "You can only select up to %s choices" msgstr "" -#: includes/core/um-actions-form.php:525 +#: includes/core/um-actions-form.php:532 #, php-format msgid "Minimum number limit is %s" msgstr "" -#: includes/core/um-actions-form.php:531 +#: includes/core/um-actions-form.php:538 #, php-format msgid "Maximum number limit is %s" msgstr "" -#: includes/core/um-actions-form.php:567 +#: includes/core/um-actions-form.php:574 msgid "Please enter numbers only in this field" msgstr "" -#: includes/core/um-actions-form.php:573 +#: includes/core/um-actions-form.php:580 msgid "Please enter a valid phone number" msgstr "" -#: includes/core/um-actions-form.php:579 includes/core/um-actions-form.php:585 -#: includes/core/um-actions-form.php:591 includes/core/um-actions-form.php:597 -#: includes/core/um-actions-form.php:603 includes/core/um-actions-form.php:609 -#: includes/core/um-actions-form.php:615 includes/core/um-actions-form.php:621 -#: includes/core/um-actions-form.php:633 +#: includes/core/um-actions-form.php:586 includes/core/um-actions-form.php:592 +#: includes/core/um-actions-form.php:598 includes/core/um-actions-form.php:604 +#: includes/core/um-actions-form.php:610 includes/core/um-actions-form.php:616 +#: includes/core/um-actions-form.php:622 includes/core/um-actions-form.php:628 +#: includes/core/um-actions-form.php:640 #, php-format msgid "Please enter a valid %s username or profile URL" msgstr "" -#: includes/core/um-actions-form.php:627 +#: includes/core/um-actions-form.php:634 msgid "Please enter a valid URL" msgstr "" -#: includes/core/um-actions-form.php:640 includes/core/um-actions-form.php:654 +#: includes/core/um-actions-form.php:647 includes/core/um-actions-form.php:661 msgid "You must provide a username" msgstr "" -#: includes/core/um-actions-form.php:642 includes/core/um-actions-form.php:656 +#: includes/core/um-actions-form.php:649 includes/core/um-actions-form.php:663 msgid "Your username is already taken" msgstr "" -#: includes/core/um-actions-form.php:644 +#: includes/core/um-actions-form.php:651 msgid "Username cannot be an email" msgstr "" -#: includes/core/um-actions-form.php:646 includes/core/um-actions-form.php:660 +#: includes/core/um-actions-form.php:653 includes/core/um-actions-form.php:667 msgid "Your username contains invalid characters" msgstr "" -#: includes/core/um-actions-form.php:658 includes/core/um-actions-form.php:680 -#: includes/core/um-actions-form.php:682 includes/core/um-actions-form.php:694 -#: includes/core/um-actions-form.php:701 +#: includes/core/um-actions-form.php:665 includes/core/um-actions-form.php:687 +#: includes/core/um-actions-form.php:689 includes/core/um-actions-form.php:701 +#: includes/core/um-actions-form.php:708 msgid "This email is already linked to an existing account" msgstr "" -#: includes/core/um-actions-form.php:678 +#: includes/core/um-actions-form.php:685 msgid "You must provide your email" msgstr "" -#: includes/core/um-actions-form.php:684 includes/core/um-actions-form.php:692 +#: includes/core/um-actions-form.php:691 includes/core/um-actions-form.php:699 msgid "This is not a valid email" msgstr "" -#: includes/core/um-actions-form.php:686 +#: includes/core/um-actions-form.php:693 msgid "Your email contains invalid characters" msgstr "" -#: includes/core/um-actions-form.php:726 +#: includes/core/um-actions-form.php:733 msgid "You must provide a unique value" msgstr "" -#: includes/core/um-actions-form.php:736 +#: includes/core/um-actions-form.php:743 msgid "You must provide alphabetic letters" msgstr "" -#: includes/core/um-actions-form.php:748 +#: includes/core/um-actions-form.php:755 msgid "You must provide lowercase letters." msgstr "" -#: includes/core/um-actions-form.php:766 +#: includes/core/um-actions-form.php:773 #, php-format msgid "Your user description must contain less than %s characters" msgstr ""