Plugin Directory

Changeset 3470603


Ignore:
Timestamp:
02/26/2026 05:56:47 PM (13 days ago)
Author:
wpusermanager
Message:

Update to version 2.9.15 from GitHub

Location:
wp-user-manager
Files:
2 deleted
10 edited
1 copied

Legend:

Unmodified
Added
Removed
  • wp-user-manager/tags/2.9.15/includes/actions.php

    r3468506 r3470603  
    489489 */
    490490function wpum_register_profile_privacy_fields() {
     491    Container::make( 'user_meta', esc_html__( 'Profile Privacy', 'wp-user-manager' ) )
     492        ->add_fields( array(
     493            Field::make( 'checkbox', 'hide_profile_guests', esc_html__( 'Hide profile from guests', 'wp-user-manager' ) )
     494                ->set_help_text( esc_html__( 'Hide this profile from guests. Overrides the global profile options.', 'wp-user-manager' ) ),
     495            Field::make( 'checkbox', 'hide_profile_members', esc_html__( 'Hide profile from members', 'wp-user-manager' ) )
     496                ->set_help_text( esc_html__( 'Hide this profile from members. Overrides the global profile options.', 'wp-user-manager' ) ),
     497        ) );
     498}
     499
     500add_action( 'carbon_fields_register_fields', 'wpum_register_profile_privacy_fields' );
     501
     502/**
     503 * Register the multiple user roles field in its own CF container.
     504 *
     505 * A dedicated container is required so that the entire React root can be
     506 * relocated next to the WP role dropdown without breaking the component tree.
     507 */
     508function wpum_register_multiple_roles_field() {
    491509    global $pagenow;
    492510
     511    $allow_multiple_roles = wpum_get_option( 'allow_multiple_user_roles' );
     512    if ( ! $allow_multiple_roles || is_network_admin() ) {
     513        return;
     514    }
     515
     516    $user_id     = filter_input( INPUT_GET, 'user_id', FILTER_VALIDATE_INT );
     517    $profileuser = isset( $user_id ) ? get_user_by( 'id', $user_id ) : false;
     518
     519    if ( ! $profileuser && 'user-new.php' !== $pagenow ) {
     520        return;
     521    }
     522
     523    $existing_roles = $profileuser ? $profileuser->roles : array();
     524
    493525    $roles = array();
    494 
    495526    foreach ( wpum_get_roles( true, true ) as $role ) {
    496527        $roles[ $role['value'] ] = $role['label'];
    497528    }
    498529
    499     $allow_multiple_roles = wpum_get_option( 'allow_multiple_user_roles' );
    500 
    501     $user_id = filter_input( INPUT_GET, 'user_id', FILTER_VALIDATE_INT );
    502 
    503     $profileuser    = isset( $user_id ) ? get_user_by( 'id', $user_id ) : false;
    504     $existing_roles = ( $profileuser ) ? $profileuser->roles : array();
    505 
    506     $fields = array(
    507         Field::make( 'checkbox', 'hide_profile_guests', esc_html__( 'Hide profile from guests', 'wp-user-manager' ) )
    508             ->set_help_text( esc_html__( 'Hide this profile from guests. Overrides the global profile options.', 'wp-user-manager' ) ),
    509         Field::make( 'checkbox', 'hide_profile_members', esc_html__( 'Hide profile from members', 'wp-user-manager' ) )
    510             ->set_help_text( esc_html__( 'Hide this profile from members. Overrides the global profile options.', 'wp-user-manager' ) ),
    511     );
    512 
    513     if ( $allow_multiple_roles && ( $profileuser || 'user-new.php' === $pagenow ) && ! is_network_admin() ) {
    514         $fields[] = Field::make( 'multiselect', 'wpum_user_roles', '' )
    515         ->add_options( $roles )
    516         ->set_default_value( $existing_roles )
    517         ->set_classes( 'wpum-multiple-user-roles' )
    518         ->set_help_text( esc_html__( 'Select one or more roles for this user.', 'wp-user-manager' ) );
    519     }
    520 
    521     Container::make( 'user_meta', esc_html__( 'Profile Privacy', 'wp-user-manager' ) )
    522             ->add_fields( $fields );
    523 }
    524 
    525 add_action( 'carbon_fields_register_fields', 'wpum_register_profile_privacy_fields' );
     530    Container::make( 'user_meta', esc_html__( 'User Roles', 'wp-user-manager' ) )
     531        ->add_fields( array(
     532            Field::make( 'multiselect', 'wpum_user_roles', '' )
     533                ->add_options( $roles )
     534                ->set_default_value( $existing_roles )
     535                ->set_classes( 'wpum-multiple-user-roles' )
     536                ->set_help_text( esc_html__( 'Select one or more roles for this user.', 'wp-user-manager' ) ),
     537        ) );
     538}
     539add_action( 'carbon_fields_register_fields', 'wpum_register_multiple_roles_field' );
    526540
    527541add_action( 'template_redirect', 'wpum_reset_password_redirect' );
     
    592606
    593607/**
     608 * Relocate the CF "User Roles" multiselect row after the username field and
     609 * hide the default WP role dropdown. Moving the <tr> (which wraps the React
     610 * root <fieldset>) preserves the CF 3.x component tree.
     611 *
    594612 * @param \WP_User $user
    595613 */
     
    599617        return;
    600618    }
    601 
    602619    ?>
    603620    <script>
    604         jQuery( function( $ ) {
    605             if ( !$( '.user-role-wrap select#role, #createuser select#role' ).length ) {
    606                 return;
    607             }
    608             var el_userrole = $( '.user-role-wrap select#role, #createuser select#role' );
    609             $( $( '.wpum-multiple-user-roles' ) ).insertAfter( el_userrole ).css( 'padding', 0 );
    610             $( el_userrole ).hide();
     621    jQuery( function( $ ) {
     622        function relocateRolesField() {
     623            var $field = $( '.wpum-multiple-user-roles' );
     624            if ( ! $field.length ) return false;
     625
     626            var $row = $field.closest( 'tr' );
     627            if ( ! $row.length ) return false;
     628
     629            // CF user_meta template leaves the <th> empty — add the Role label.
     630            var $th = $row.find( 'th' );
     631            if ( $th.length && ! $th.text().trim() ) {
     632                $th.html( '<label for="role">Role</label>' );
     633            }
     634
     635            // Hide the now-empty CF container heading and table.
     636            var $table = $field.closest( 'table.form-table' );
     637            if ( $table.length ) {
     638                $table.prev( 'h2' ).hide();
     639                $table.hide();
     640            }
     641
     642            // user-edit.php: insert after the username row.
     643            var $userLogin = $( '.user-user-login-wrap' );
     644            if ( $userLogin.length ) {
     645                $row.insertAfter( $userLogin );
     646                $( '.user-role-wrap' ).hide();
     647                return true;
     648            }
     649
     650            // user-new.php: replace the role select row.
     651            var $newUserRole = $( '#createuser select#role' );
     652            if ( $newUserRole.length ) {
     653                var $formField = $newUserRole.closest( '.form-field, tr' ).first();
     654                $row.insertAfter( $formField );
     655                $formField.hide();
     656                return true;
     657            }
     658
     659            return false;
     660        }
     661
     662        // Try immediately.
     663        if ( relocateRolesField() ) return;
     664
     665        // Observe for CF React rendering.
     666        var observer = new MutationObserver( function() {
     667            if ( relocateRolesField() ) {
     668                observer.disconnect();
     669            }
    611670        } );
     671        observer.observe( document.body, { childList: true, subtree: true } );
     672
     673        // Safety timeout.
     674        setTimeout( function() { observer.disconnect(); }, 10000 );
     675    } );
    612676    </script>
    613677    <?php
  • wp-user-manager/tags/2.9.15/languages/wp-user-manager.pot

    r3468506 r3470603  
    33msgid ""
    44msgstr ""
    5 "Project-Id-Version: WP User Manager 2.9.14\n"
     5"Project-Id-Version: WP User Manager 2.9.15\n"
    66"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wp-user-manager\n"
    7 "POT-Creation-Date: 2026-02-24 09:43:09+00:00\n"
     7"POT-Creation-Date: 2026-02-26 17:55:27+00:00\n"
    88"MIME-Version: 1.0\n"
    99"Content-Type: text/plain; charset=utf-8\n"
     
    328328msgstr ""
    329329
    330 #: includes/actions.php:507
    331 msgid "Hide profile from guests"
    332 msgstr ""
    333 
    334 #: includes/actions.php:508
    335 msgid "Hide this profile from guests. Overrides the global profile options."
    336 msgstr ""
    337 
    338 #: includes/actions.php:509
    339 msgid "Hide profile from members"
    340 msgstr ""
    341 
    342 #: includes/actions.php:510
    343 msgid "Hide this profile from members. Overrides the global profile options."
    344 msgstr ""
    345 
    346 #: includes/actions.php:518
    347 msgid "Select one or more roles for this user."
    348 msgstr ""
    349 
    350 #: includes/actions.php:521 includes/forms/class-wpum-form-privacy.php:77
     330#: includes/actions.php:491 includes/forms/class-wpum-form-privacy.php:77
    351331#: includes/functions.php:733
    352332msgid "Profile Privacy"
    353333msgstr ""
    354334
    355 #: includes/actions.php:983 includes/shortcodes/shortcodes.php:199
     335#: includes/actions.php:493
     336msgid "Hide profile from guests"
     337msgstr ""
     338
     339#: includes/actions.php:494
     340msgid "Hide this profile from guests. Overrides the global profile options."
     341msgstr ""
     342
     343#: includes/actions.php:495
     344msgid "Hide profile from members"
     345msgstr ""
     346
     347#: includes/actions.php:496
     348msgid "Hide this profile from members. Overrides the global profile options."
     349msgstr ""
     350
     351#: includes/actions.php:530
     352#: includes/directories/class-wpum-directories-editor.php:291
     353#: includes/fields/types/class-wpum-field-userrole.php:72
     354msgid "User Roles"
     355msgstr ""
     356
     357#: includes/actions.php:536
     358msgid "Select one or more roles for this user."
     359msgstr ""
     360
     361#: includes/actions.php:1047 includes/shortcodes/shortcodes.php:199
    356362msgid ""
    357363"Registration complete. We have sent you a confirmation email with your "
     
    14431449#: includes/fields/class-wpum-field.php:385
    14441450msgid "Description"
    1445 msgstr ""
    1446 
    1447 #: includes/directories/class-wpum-directories-editor.php:291
    1448 #: includes/fields/types/class-wpum-field-userrole.php:72
    1449 msgid "User Roles"
    14501451msgstr ""
    14511452
  • wp-user-manager/tags/2.9.15/readme.txt

    r3468506 r3470603  
    99License: GPLv2 or later
    1010License URI: http://www.gnu.org/licenses/gpl-2.0.html
    11 Stable Tag: 2.9.14
     11Stable Tag: 2.9.15
    1212
    1313The most customizable profiles & community builder WordPress plugin with front-end login, registration, profile customization and content restriction.
     
    135135== Changelog ==
    136136
     137= 2.9.15 (26th Feb 2026) =
     138
     139- Fix: User role multiselect was disabled on the admin user profile after Carbon Fields upgrade
     140
    137141= 2.9.14 (24th Feb 2026) =
    138142
  • wp-user-manager/tags/2.9.15/vendor-dist/composer/installed.php

    r3468506 r3470603  
    33namespace WPUM;
    44
    5 return array('root' => array('name' => 'wp-user-manager/wp-user-manager', 'pretty_version' => 'v2.9.14', 'version' => '2.9.14.0', 'reference' => 'fd0cd44a183b436d61be19d1ca00386edef9b94a', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev' => \false), 'versions' => array('brain/cortex' => array('pretty_version' => 'dev-refactoring-fastroute', 'version' => 'dev-refactoring-fastroute', 'reference' => '86bec053ec2c4d2e4c75af64e0cee951d9b0054b', 'type' => 'library', 'install_path' => __DIR__ . '/../brain/cortex', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'composer/installers' => array('pretty_version' => '1.x-dev', 'version' => '1.9999999.9999999.9999999-dev', 'reference' => 'd20a64ed3c94748397ff5973488761b22f6d3f19', 'type' => 'composer-plugin', 'install_path' => __DIR__ . '/./installers', 'aliases' => array(), 'dev_requirement' => \false), 'dompdf/dompdf' => array('pretty_version' => 'v2.0.2', 'version' => '2.0.2.0', 'reference' => 'ad4c631bf8897fc1ca7b566468a969cfd71a558a', 'type' => 'library', 'install_path' => __DIR__ . '/../dompdf/dompdf', 'aliases' => array(), 'dev_requirement' => \false), 'gamajo/template-loader' => array('pretty_version' => '1.3.1', 'version' => '1.3.1.0', 'reference' => 'fa92a37b780d945463f7fea328dce14933558752', 'type' => 'library', 'install_path' => __DIR__ . '/../gamajo/template-loader', 'aliases' => array(), 'dev_requirement' => \false), 'htmlburger/carbon-fields' => array('pretty_version' => 'v3.6.9', 'version' => '3.6.9.0', 'reference' => 'f82e80e3e3469d6e86cc17a8950b918ad448a059', 'type' => 'library', 'install_path' => __DIR__ . '/../htmlburger/carbon-fields', 'aliases' => array(), 'dev_requirement' => \false), 'masterminds/html5' => array('pretty_version' => '2.7.6', 'version' => '2.7.6.0', 'reference' => '897eb517a343a2281f11bc5556d6548db7d93947', 'type' => 'library', 'install_path' => __DIR__ . '/../masterminds/html5', 'aliases' => array(), 'dev_requirement' => \false), 'nesbot/carbon' => array('pretty_version' => '2.66.0', 'version' => '2.66.0.0', 'reference' => '496712849902241f04902033b0441b269effe001', 'type' => 'library', 'install_path' => __DIR__ . '/../nesbot/carbon', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/fast-route' => array('pretty_version' => 'v0.7.0', 'version' => '0.7.0.0', 'reference' => '8164b4a0d8afde4eae5f1bfc39084972ba23ad36', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/fast-route', 'aliases' => array(), 'dev_requirement' => \false), 'phenx/php-font-lib' => array('pretty_version' => '0.5.4', 'version' => '0.5.4.0', 'reference' => 'dd448ad1ce34c63d09baccd05415e361300c35b4', 'type' => 'library', 'install_path' => __DIR__ . '/../phenx/php-font-lib', 'aliases' => array(), 'dev_requirement' => \false), 'phenx/php-svg-lib' => array('pretty_version' => '0.5.0', 'version' => '0.5.0.0', 'reference' => '76876c6cf3080bcb6f249d7d59705108166a6685', 'type' => 'library', 'install_path' => __DIR__ . '/../phenx/php-svg-lib', 'aliases' => array(), 'dev_requirement' => \false), 'psr/http-message' => array('pretty_version' => '1.0.1', 'version' => '1.0.1.0', 'reference' => 'f6561bf28d520154e4b0ec72be95418abe6d9363', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/http-message', 'aliases' => array(), 'dev_requirement' => \false), 'roundcube/plugin-installer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'sabberworm/php-css-parser' => array('pretty_version' => '8.4.0', 'version' => '8.4.0.0', 'reference' => 'e41d2140031d533348b2192a83f02d8dd8a71d30', 'type' => 'library', 'install_path' => __DIR__ . '/../sabberworm/php-css-parser', 'aliases' => array(), 'dev_requirement' => \false), 'shama/baton' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'stripe/stripe-php' => array('pretty_version' => 'v10.5.0', 'version' => '10.5.0.0', 'reference' => '331415b232d60d7c0449de7bde4cb7d4fedf982e', 'type' => 'library', 'install_path' => __DIR__ . '/../stripe/stripe-php', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v2.5.2', 'version' => '2.5.2.0', 'reference' => 'e8b495ea28c1d97b5e0c121748d6f9b53d075c66', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-mbstring' => array('pretty_version' => 'v1.26.0', 'version' => '1.26.0.0', 'reference' => '9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-mbstring', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-php80' => array('pretty_version' => 'v1.26.0', 'version' => '1.26.0.0', 'reference' => 'cfa0ae98841b9e461207c13ab093d76b0fa7bace', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php80', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/translation' => array('pretty_version' => 'v5.4.11', 'version' => '5.4.11.0', 'reference' => '7a1a8f6bbff269f434a83343a0a5d36a4f8cfa21', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/translation', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/translation-contracts' => array('pretty_version' => 'v2.5.2', 'version' => '2.5.2.0', 'reference' => '136b19dd05cdf0709db6537d058bcab6dd6e2dbe', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/translation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/translation-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '2.3')), 'wearerequired/wp-requirements-check' => array('pretty_version' => '1.1.0', 'version' => '1.1.0.0', 'reference' => '82b8a6c4b953f59e7e534df2d4287e34af950812', 'type' => 'library', 'install_path' => __DIR__ . '/../wearerequired/wp-requirements-check', 'aliases' => array(), 'dev_requirement' => \false), 'wp-user-manager/wp-notices' => array('pretty_version' => 'dev-master', 'version' => 'dev-master', 'reference' => '5498f209c6667e88e944194a93a50f9ffc25ea24', 'type' => 'library', 'install_path' => __DIR__ . '/../wp-user-manager/wp-notices', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'wp-user-manager/wp-optionskit' => array('pretty_version' => '1.1.2', 'version' => '1.1.2.0', 'reference' => '6253bda447991733bf8e19cb2123b41c666f3d62', 'type' => 'library', 'install_path' => __DIR__ . '/../wp-user-manager/wp-optionskit', 'aliases' => array(), 'dev_requirement' => \false), 'wp-user-manager/wp-user-manager' => array('pretty_version' => 'v2.9.14', 'version' => '2.9.14.0', 'reference' => 'fd0cd44a183b436d61be19d1ca00386edef9b94a', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'wp-user-manager/wpum-blocks' => array('pretty_version' => '1.15', 'version' => '1.15.0.0', 'reference' => 'fc3d01fe0baa2fb0fdf6a0f4cff30fc40bb1dbba', 'type' => 'library', 'install_path' => __DIR__ . '/../wp-user-manager/wpum-blocks', 'aliases' => array(), 'dev_requirement' => \false), 'wpbp/widgets-helper' => array('pretty_version' => 'dev-master', 'version' => 'dev-master', 'reference' => '5547acaaf60b856b0025cdf44e3831e0f3202929', 'type' => 'library', 'install_path' => __DIR__ . '/../wpbp/widgets-helper', 'aliases' => array(), 'dev_requirement' => \false)));
     5return array('root' => array('name' => 'wp-user-manager/wp-user-manager', 'pretty_version' => 'v2.9.15', 'version' => '2.9.15.0', 'reference' => '69eb07aa7ce9644dc1b2601dcfcf895ea01c748d', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev' => \false), 'versions' => array('brain/cortex' => array('pretty_version' => 'dev-refactoring-fastroute', 'version' => 'dev-refactoring-fastroute', 'reference' => '86bec053ec2c4d2e4c75af64e0cee951d9b0054b', 'type' => 'library', 'install_path' => __DIR__ . '/../brain/cortex', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'composer/installers' => array('pretty_version' => '1.x-dev', 'version' => '1.9999999.9999999.9999999-dev', 'reference' => 'd20a64ed3c94748397ff5973488761b22f6d3f19', 'type' => 'composer-plugin', 'install_path' => __DIR__ . '/./installers', 'aliases' => array(), 'dev_requirement' => \false), 'dompdf/dompdf' => array('pretty_version' => 'v2.0.2', 'version' => '2.0.2.0', 'reference' => 'ad4c631bf8897fc1ca7b566468a969cfd71a558a', 'type' => 'library', 'install_path' => __DIR__ . '/../dompdf/dompdf', 'aliases' => array(), 'dev_requirement' => \false), 'gamajo/template-loader' => array('pretty_version' => '1.3.1', 'version' => '1.3.1.0', 'reference' => 'fa92a37b780d945463f7fea328dce14933558752', 'type' => 'library', 'install_path' => __DIR__ . '/../gamajo/template-loader', 'aliases' => array(), 'dev_requirement' => \false), 'htmlburger/carbon-fields' => array('pretty_version' => 'v3.6.9', 'version' => '3.6.9.0', 'reference' => 'f82e80e3e3469d6e86cc17a8950b918ad448a059', 'type' => 'library', 'install_path' => __DIR__ . '/../htmlburger/carbon-fields', 'aliases' => array(), 'dev_requirement' => \false), 'masterminds/html5' => array('pretty_version' => '2.7.6', 'version' => '2.7.6.0', 'reference' => '897eb517a343a2281f11bc5556d6548db7d93947', 'type' => 'library', 'install_path' => __DIR__ . '/../masterminds/html5', 'aliases' => array(), 'dev_requirement' => \false), 'nesbot/carbon' => array('pretty_version' => '2.66.0', 'version' => '2.66.0.0', 'reference' => '496712849902241f04902033b0441b269effe001', 'type' => 'library', 'install_path' => __DIR__ . '/../nesbot/carbon', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/fast-route' => array('pretty_version' => 'v0.7.0', 'version' => '0.7.0.0', 'reference' => '8164b4a0d8afde4eae5f1bfc39084972ba23ad36', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/fast-route', 'aliases' => array(), 'dev_requirement' => \false), 'phenx/php-font-lib' => array('pretty_version' => '0.5.4', 'version' => '0.5.4.0', 'reference' => 'dd448ad1ce34c63d09baccd05415e361300c35b4', 'type' => 'library', 'install_path' => __DIR__ . '/../phenx/php-font-lib', 'aliases' => array(), 'dev_requirement' => \false), 'phenx/php-svg-lib' => array('pretty_version' => '0.5.0', 'version' => '0.5.0.0', 'reference' => '76876c6cf3080bcb6f249d7d59705108166a6685', 'type' => 'library', 'install_path' => __DIR__ . '/../phenx/php-svg-lib', 'aliases' => array(), 'dev_requirement' => \false), 'psr/http-message' => array('pretty_version' => '1.0.1', 'version' => '1.0.1.0', 'reference' => 'f6561bf28d520154e4b0ec72be95418abe6d9363', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/http-message', 'aliases' => array(), 'dev_requirement' => \false), 'roundcube/plugin-installer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'sabberworm/php-css-parser' => array('pretty_version' => '8.4.0', 'version' => '8.4.0.0', 'reference' => 'e41d2140031d533348b2192a83f02d8dd8a71d30', 'type' => 'library', 'install_path' => __DIR__ . '/../sabberworm/php-css-parser', 'aliases' => array(), 'dev_requirement' => \false), 'shama/baton' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'stripe/stripe-php' => array('pretty_version' => 'v10.5.0', 'version' => '10.5.0.0', 'reference' => '331415b232d60d7c0449de7bde4cb7d4fedf982e', 'type' => 'library', 'install_path' => __DIR__ . '/../stripe/stripe-php', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v2.5.2', 'version' => '2.5.2.0', 'reference' => 'e8b495ea28c1d97b5e0c121748d6f9b53d075c66', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-mbstring' => array('pretty_version' => 'v1.26.0', 'version' => '1.26.0.0', 'reference' => '9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-mbstring', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-php80' => array('pretty_version' => 'v1.26.0', 'version' => '1.26.0.0', 'reference' => 'cfa0ae98841b9e461207c13ab093d76b0fa7bace', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php80', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/translation' => array('pretty_version' => 'v5.4.11', 'version' => '5.4.11.0', 'reference' => '7a1a8f6bbff269f434a83343a0a5d36a4f8cfa21', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/translation', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/translation-contracts' => array('pretty_version' => 'v2.5.2', 'version' => '2.5.2.0', 'reference' => '136b19dd05cdf0709db6537d058bcab6dd6e2dbe', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/translation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/translation-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '2.3')), 'wearerequired/wp-requirements-check' => array('pretty_version' => '1.1.0', 'version' => '1.1.0.0', 'reference' => '82b8a6c4b953f59e7e534df2d4287e34af950812', 'type' => 'library', 'install_path' => __DIR__ . '/../wearerequired/wp-requirements-check', 'aliases' => array(), 'dev_requirement' => \false), 'wp-user-manager/wp-notices' => array('pretty_version' => 'dev-master', 'version' => 'dev-master', 'reference' => '5498f209c6667e88e944194a93a50f9ffc25ea24', 'type' => 'library', 'install_path' => __DIR__ . '/../wp-user-manager/wp-notices', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'wp-user-manager/wp-optionskit' => array('pretty_version' => '1.1.2', 'version' => '1.1.2.0', 'reference' => '6253bda447991733bf8e19cb2123b41c666f3d62', 'type' => 'library', 'install_path' => __DIR__ . '/../wp-user-manager/wp-optionskit', 'aliases' => array(), 'dev_requirement' => \false), 'wp-user-manager/wp-user-manager' => array('pretty_version' => 'v2.9.15', 'version' => '2.9.15.0', 'reference' => '69eb07aa7ce9644dc1b2601dcfcf895ea01c748d', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'wp-user-manager/wpum-blocks' => array('pretty_version' => '1.15', 'version' => '1.15.0.0', 'reference' => 'fc3d01fe0baa2fb0fdf6a0f4cff30fc40bb1dbba', 'type' => 'library', 'install_path' => __DIR__ . '/../wp-user-manager/wpum-blocks', 'aliases' => array(), 'dev_requirement' => \false), 'wpbp/widgets-helper' => array('pretty_version' => 'dev-master', 'version' => 'dev-master', 'reference' => '5547acaaf60b856b0025cdf44e3831e0f3202929', 'type' => 'library', 'install_path' => __DIR__ . '/../wpbp/widgets-helper', 'aliases' => array(), 'dev_requirement' => \false)));
  • wp-user-manager/tags/2.9.15/wp-user-manager.php

    r3468506 r3470603  
    44 * Plugin URI:  https://wpusermanager.com
    55 * Description: Beautifully simple user profile directories with frontend login, registration and account customization. WP User Manager is the best solution to manage your community and your users for WordPress.
    6  * Version: 2.9.14
     6 * Version: 2.9.15
    77 * Requires PHP: 7.4
    88 * Author:      WP User Manager
     
    2222    require_once __DIR__ . '/includes/class-wp-user-manager.php';
    2323
    24     return WP_User_Manager::instance( __FILE__, '2.9.14' );
     24    return WP_User_Manager::instance( __FILE__, '2.9.15' );
    2525}
    2626
  • wp-user-manager/trunk/includes/actions.php

    r3468506 r3470603  
    489489 */
    490490function wpum_register_profile_privacy_fields() {
     491    Container::make( 'user_meta', esc_html__( 'Profile Privacy', 'wp-user-manager' ) )
     492        ->add_fields( array(
     493            Field::make( 'checkbox', 'hide_profile_guests', esc_html__( 'Hide profile from guests', 'wp-user-manager' ) )
     494                ->set_help_text( esc_html__( 'Hide this profile from guests. Overrides the global profile options.', 'wp-user-manager' ) ),
     495            Field::make( 'checkbox', 'hide_profile_members', esc_html__( 'Hide profile from members', 'wp-user-manager' ) )
     496                ->set_help_text( esc_html__( 'Hide this profile from members. Overrides the global profile options.', 'wp-user-manager' ) ),
     497        ) );
     498}
     499
     500add_action( 'carbon_fields_register_fields', 'wpum_register_profile_privacy_fields' );
     501
     502/**
     503 * Register the multiple user roles field in its own CF container.
     504 *
     505 * A dedicated container is required so that the entire React root can be
     506 * relocated next to the WP role dropdown without breaking the component tree.
     507 */
     508function wpum_register_multiple_roles_field() {
    491509    global $pagenow;
    492510
     511    $allow_multiple_roles = wpum_get_option( 'allow_multiple_user_roles' );
     512    if ( ! $allow_multiple_roles || is_network_admin() ) {
     513        return;
     514    }
     515
     516    $user_id     = filter_input( INPUT_GET, 'user_id', FILTER_VALIDATE_INT );
     517    $profileuser = isset( $user_id ) ? get_user_by( 'id', $user_id ) : false;
     518
     519    if ( ! $profileuser && 'user-new.php' !== $pagenow ) {
     520        return;
     521    }
     522
     523    $existing_roles = $profileuser ? $profileuser->roles : array();
     524
    493525    $roles = array();
    494 
    495526    foreach ( wpum_get_roles( true, true ) as $role ) {
    496527        $roles[ $role['value'] ] = $role['label'];
    497528    }
    498529
    499     $allow_multiple_roles = wpum_get_option( 'allow_multiple_user_roles' );
    500 
    501     $user_id = filter_input( INPUT_GET, 'user_id', FILTER_VALIDATE_INT );
    502 
    503     $profileuser    = isset( $user_id ) ? get_user_by( 'id', $user_id ) : false;
    504     $existing_roles = ( $profileuser ) ? $profileuser->roles : array();
    505 
    506     $fields = array(
    507         Field::make( 'checkbox', 'hide_profile_guests', esc_html__( 'Hide profile from guests', 'wp-user-manager' ) )
    508             ->set_help_text( esc_html__( 'Hide this profile from guests. Overrides the global profile options.', 'wp-user-manager' ) ),
    509         Field::make( 'checkbox', 'hide_profile_members', esc_html__( 'Hide profile from members', 'wp-user-manager' ) )
    510             ->set_help_text( esc_html__( 'Hide this profile from members. Overrides the global profile options.', 'wp-user-manager' ) ),
    511     );
    512 
    513     if ( $allow_multiple_roles && ( $profileuser || 'user-new.php' === $pagenow ) && ! is_network_admin() ) {
    514         $fields[] = Field::make( 'multiselect', 'wpum_user_roles', '' )
    515         ->add_options( $roles )
    516         ->set_default_value( $existing_roles )
    517         ->set_classes( 'wpum-multiple-user-roles' )
    518         ->set_help_text( esc_html__( 'Select one or more roles for this user.', 'wp-user-manager' ) );
    519     }
    520 
    521     Container::make( 'user_meta', esc_html__( 'Profile Privacy', 'wp-user-manager' ) )
    522             ->add_fields( $fields );
    523 }
    524 
    525 add_action( 'carbon_fields_register_fields', 'wpum_register_profile_privacy_fields' );
     530    Container::make( 'user_meta', esc_html__( 'User Roles', 'wp-user-manager' ) )
     531        ->add_fields( array(
     532            Field::make( 'multiselect', 'wpum_user_roles', '' )
     533                ->add_options( $roles )
     534                ->set_default_value( $existing_roles )
     535                ->set_classes( 'wpum-multiple-user-roles' )
     536                ->set_help_text( esc_html__( 'Select one or more roles for this user.', 'wp-user-manager' ) ),
     537        ) );
     538}
     539add_action( 'carbon_fields_register_fields', 'wpum_register_multiple_roles_field' );
    526540
    527541add_action( 'template_redirect', 'wpum_reset_password_redirect' );
     
    592606
    593607/**
     608 * Relocate the CF "User Roles" multiselect row after the username field and
     609 * hide the default WP role dropdown. Moving the <tr> (which wraps the React
     610 * root <fieldset>) preserves the CF 3.x component tree.
     611 *
    594612 * @param \WP_User $user
    595613 */
     
    599617        return;
    600618    }
    601 
    602619    ?>
    603620    <script>
    604         jQuery( function( $ ) {
    605             if ( !$( '.user-role-wrap select#role, #createuser select#role' ).length ) {
    606                 return;
    607             }
    608             var el_userrole = $( '.user-role-wrap select#role, #createuser select#role' );
    609             $( $( '.wpum-multiple-user-roles' ) ).insertAfter( el_userrole ).css( 'padding', 0 );
    610             $( el_userrole ).hide();
     621    jQuery( function( $ ) {
     622        function relocateRolesField() {
     623            var $field = $( '.wpum-multiple-user-roles' );
     624            if ( ! $field.length ) return false;
     625
     626            var $row = $field.closest( 'tr' );
     627            if ( ! $row.length ) return false;
     628
     629            // CF user_meta template leaves the <th> empty — add the Role label.
     630            var $th = $row.find( 'th' );
     631            if ( $th.length && ! $th.text().trim() ) {
     632                $th.html( '<label for="role">Role</label>' );
     633            }
     634
     635            // Hide the now-empty CF container heading and table.
     636            var $table = $field.closest( 'table.form-table' );
     637            if ( $table.length ) {
     638                $table.prev( 'h2' ).hide();
     639                $table.hide();
     640            }
     641
     642            // user-edit.php: insert after the username row.
     643            var $userLogin = $( '.user-user-login-wrap' );
     644            if ( $userLogin.length ) {
     645                $row.insertAfter( $userLogin );
     646                $( '.user-role-wrap' ).hide();
     647                return true;
     648            }
     649
     650            // user-new.php: replace the role select row.
     651            var $newUserRole = $( '#createuser select#role' );
     652            if ( $newUserRole.length ) {
     653                var $formField = $newUserRole.closest( '.form-field, tr' ).first();
     654                $row.insertAfter( $formField );
     655                $formField.hide();
     656                return true;
     657            }
     658
     659            return false;
     660        }
     661
     662        // Try immediately.
     663        if ( relocateRolesField() ) return;
     664
     665        // Observe for CF React rendering.
     666        var observer = new MutationObserver( function() {
     667            if ( relocateRolesField() ) {
     668                observer.disconnect();
     669            }
    611670        } );
     671        observer.observe( document.body, { childList: true, subtree: true } );
     672
     673        // Safety timeout.
     674        setTimeout( function() { observer.disconnect(); }, 10000 );
     675    } );
    612676    </script>
    613677    <?php
  • wp-user-manager/trunk/languages/wp-user-manager.pot

    r3468506 r3470603  
    33msgid ""
    44msgstr ""
    5 "Project-Id-Version: WP User Manager 2.9.14\n"
     5"Project-Id-Version: WP User Manager 2.9.15\n"
    66"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wp-user-manager\n"
    7 "POT-Creation-Date: 2026-02-24 09:43:09+00:00\n"
     7"POT-Creation-Date: 2026-02-26 17:55:27+00:00\n"
    88"MIME-Version: 1.0\n"
    99"Content-Type: text/plain; charset=utf-8\n"
     
    328328msgstr ""
    329329
    330 #: includes/actions.php:507
    331 msgid "Hide profile from guests"
    332 msgstr ""
    333 
    334 #: includes/actions.php:508
    335 msgid "Hide this profile from guests. Overrides the global profile options."
    336 msgstr ""
    337 
    338 #: includes/actions.php:509
    339 msgid "Hide profile from members"
    340 msgstr ""
    341 
    342 #: includes/actions.php:510
    343 msgid "Hide this profile from members. Overrides the global profile options."
    344 msgstr ""
    345 
    346 #: includes/actions.php:518
    347 msgid "Select one or more roles for this user."
    348 msgstr ""
    349 
    350 #: includes/actions.php:521 includes/forms/class-wpum-form-privacy.php:77
     330#: includes/actions.php:491 includes/forms/class-wpum-form-privacy.php:77
    351331#: includes/functions.php:733
    352332msgid "Profile Privacy"
    353333msgstr ""
    354334
    355 #: includes/actions.php:983 includes/shortcodes/shortcodes.php:199
     335#: includes/actions.php:493
     336msgid "Hide profile from guests"
     337msgstr ""
     338
     339#: includes/actions.php:494
     340msgid "Hide this profile from guests. Overrides the global profile options."
     341msgstr ""
     342
     343#: includes/actions.php:495
     344msgid "Hide profile from members"
     345msgstr ""
     346
     347#: includes/actions.php:496
     348msgid "Hide this profile from members. Overrides the global profile options."
     349msgstr ""
     350
     351#: includes/actions.php:530
     352#: includes/directories/class-wpum-directories-editor.php:291
     353#: includes/fields/types/class-wpum-field-userrole.php:72
     354msgid "User Roles"
     355msgstr ""
     356
     357#: includes/actions.php:536
     358msgid "Select one or more roles for this user."
     359msgstr ""
     360
     361#: includes/actions.php:1047 includes/shortcodes/shortcodes.php:199
    356362msgid ""
    357363"Registration complete. We have sent you a confirmation email with your "
     
    14431449#: includes/fields/class-wpum-field.php:385
    14441450msgid "Description"
    1445 msgstr ""
    1446 
    1447 #: includes/directories/class-wpum-directories-editor.php:291
    1448 #: includes/fields/types/class-wpum-field-userrole.php:72
    1449 msgid "User Roles"
    14501451msgstr ""
    14511452
  • wp-user-manager/trunk/readme.txt

    r3468506 r3470603  
    99License: GPLv2 or later
    1010License URI: http://www.gnu.org/licenses/gpl-2.0.html
    11 Stable Tag: 2.9.14
     11Stable Tag: 2.9.15
    1212
    1313The most customizable profiles & community builder WordPress plugin with front-end login, registration, profile customization and content restriction.
     
    135135== Changelog ==
    136136
     137= 2.9.15 (26th Feb 2026) =
     138
     139- Fix: User role multiselect was disabled on the admin user profile after Carbon Fields upgrade
     140
    137141= 2.9.14 (24th Feb 2026) =
    138142
  • wp-user-manager/trunk/vendor-dist/composer/installed.php

    r3468506 r3470603  
    33namespace WPUM;
    44
    5 return array('root' => array('name' => 'wp-user-manager/wp-user-manager', 'pretty_version' => 'v2.9.14', 'version' => '2.9.14.0', 'reference' => 'fd0cd44a183b436d61be19d1ca00386edef9b94a', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev' => \false), 'versions' => array('brain/cortex' => array('pretty_version' => 'dev-refactoring-fastroute', 'version' => 'dev-refactoring-fastroute', 'reference' => '86bec053ec2c4d2e4c75af64e0cee951d9b0054b', 'type' => 'library', 'install_path' => __DIR__ . '/../brain/cortex', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'composer/installers' => array('pretty_version' => '1.x-dev', 'version' => '1.9999999.9999999.9999999-dev', 'reference' => 'd20a64ed3c94748397ff5973488761b22f6d3f19', 'type' => 'composer-plugin', 'install_path' => __DIR__ . '/./installers', 'aliases' => array(), 'dev_requirement' => \false), 'dompdf/dompdf' => array('pretty_version' => 'v2.0.2', 'version' => '2.0.2.0', 'reference' => 'ad4c631bf8897fc1ca7b566468a969cfd71a558a', 'type' => 'library', 'install_path' => __DIR__ . '/../dompdf/dompdf', 'aliases' => array(), 'dev_requirement' => \false), 'gamajo/template-loader' => array('pretty_version' => '1.3.1', 'version' => '1.3.1.0', 'reference' => 'fa92a37b780d945463f7fea328dce14933558752', 'type' => 'library', 'install_path' => __DIR__ . '/../gamajo/template-loader', 'aliases' => array(), 'dev_requirement' => \false), 'htmlburger/carbon-fields' => array('pretty_version' => 'v3.6.9', 'version' => '3.6.9.0', 'reference' => 'f82e80e3e3469d6e86cc17a8950b918ad448a059', 'type' => 'library', 'install_path' => __DIR__ . '/../htmlburger/carbon-fields', 'aliases' => array(), 'dev_requirement' => \false), 'masterminds/html5' => array('pretty_version' => '2.7.6', 'version' => '2.7.6.0', 'reference' => '897eb517a343a2281f11bc5556d6548db7d93947', 'type' => 'library', 'install_path' => __DIR__ . '/../masterminds/html5', 'aliases' => array(), 'dev_requirement' => \false), 'nesbot/carbon' => array('pretty_version' => '2.66.0', 'version' => '2.66.0.0', 'reference' => '496712849902241f04902033b0441b269effe001', 'type' => 'library', 'install_path' => __DIR__ . '/../nesbot/carbon', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/fast-route' => array('pretty_version' => 'v0.7.0', 'version' => '0.7.0.0', 'reference' => '8164b4a0d8afde4eae5f1bfc39084972ba23ad36', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/fast-route', 'aliases' => array(), 'dev_requirement' => \false), 'phenx/php-font-lib' => array('pretty_version' => '0.5.4', 'version' => '0.5.4.0', 'reference' => 'dd448ad1ce34c63d09baccd05415e361300c35b4', 'type' => 'library', 'install_path' => __DIR__ . '/../phenx/php-font-lib', 'aliases' => array(), 'dev_requirement' => \false), 'phenx/php-svg-lib' => array('pretty_version' => '0.5.0', 'version' => '0.5.0.0', 'reference' => '76876c6cf3080bcb6f249d7d59705108166a6685', 'type' => 'library', 'install_path' => __DIR__ . '/../phenx/php-svg-lib', 'aliases' => array(), 'dev_requirement' => \false), 'psr/http-message' => array('pretty_version' => '1.0.1', 'version' => '1.0.1.0', 'reference' => 'f6561bf28d520154e4b0ec72be95418abe6d9363', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/http-message', 'aliases' => array(), 'dev_requirement' => \false), 'roundcube/plugin-installer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'sabberworm/php-css-parser' => array('pretty_version' => '8.4.0', 'version' => '8.4.0.0', 'reference' => 'e41d2140031d533348b2192a83f02d8dd8a71d30', 'type' => 'library', 'install_path' => __DIR__ . '/../sabberworm/php-css-parser', 'aliases' => array(), 'dev_requirement' => \false), 'shama/baton' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'stripe/stripe-php' => array('pretty_version' => 'v10.5.0', 'version' => '10.5.0.0', 'reference' => '331415b232d60d7c0449de7bde4cb7d4fedf982e', 'type' => 'library', 'install_path' => __DIR__ . '/../stripe/stripe-php', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v2.5.2', 'version' => '2.5.2.0', 'reference' => 'e8b495ea28c1d97b5e0c121748d6f9b53d075c66', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-mbstring' => array('pretty_version' => 'v1.26.0', 'version' => '1.26.0.0', 'reference' => '9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-mbstring', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-php80' => array('pretty_version' => 'v1.26.0', 'version' => '1.26.0.0', 'reference' => 'cfa0ae98841b9e461207c13ab093d76b0fa7bace', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php80', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/translation' => array('pretty_version' => 'v5.4.11', 'version' => '5.4.11.0', 'reference' => '7a1a8f6bbff269f434a83343a0a5d36a4f8cfa21', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/translation', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/translation-contracts' => array('pretty_version' => 'v2.5.2', 'version' => '2.5.2.0', 'reference' => '136b19dd05cdf0709db6537d058bcab6dd6e2dbe', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/translation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/translation-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '2.3')), 'wearerequired/wp-requirements-check' => array('pretty_version' => '1.1.0', 'version' => '1.1.0.0', 'reference' => '82b8a6c4b953f59e7e534df2d4287e34af950812', 'type' => 'library', 'install_path' => __DIR__ . '/../wearerequired/wp-requirements-check', 'aliases' => array(), 'dev_requirement' => \false), 'wp-user-manager/wp-notices' => array('pretty_version' => 'dev-master', 'version' => 'dev-master', 'reference' => '5498f209c6667e88e944194a93a50f9ffc25ea24', 'type' => 'library', 'install_path' => __DIR__ . '/../wp-user-manager/wp-notices', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'wp-user-manager/wp-optionskit' => array('pretty_version' => '1.1.2', 'version' => '1.1.2.0', 'reference' => '6253bda447991733bf8e19cb2123b41c666f3d62', 'type' => 'library', 'install_path' => __DIR__ . '/../wp-user-manager/wp-optionskit', 'aliases' => array(), 'dev_requirement' => \false), 'wp-user-manager/wp-user-manager' => array('pretty_version' => 'v2.9.14', 'version' => '2.9.14.0', 'reference' => 'fd0cd44a183b436d61be19d1ca00386edef9b94a', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'wp-user-manager/wpum-blocks' => array('pretty_version' => '1.15', 'version' => '1.15.0.0', 'reference' => 'fc3d01fe0baa2fb0fdf6a0f4cff30fc40bb1dbba', 'type' => 'library', 'install_path' => __DIR__ . '/../wp-user-manager/wpum-blocks', 'aliases' => array(), 'dev_requirement' => \false), 'wpbp/widgets-helper' => array('pretty_version' => 'dev-master', 'version' => 'dev-master', 'reference' => '5547acaaf60b856b0025cdf44e3831e0f3202929', 'type' => 'library', 'install_path' => __DIR__ . '/../wpbp/widgets-helper', 'aliases' => array(), 'dev_requirement' => \false)));
     5return array('root' => array('name' => 'wp-user-manager/wp-user-manager', 'pretty_version' => 'v2.9.15', 'version' => '2.9.15.0', 'reference' => '69eb07aa7ce9644dc1b2601dcfcf895ea01c748d', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev' => \false), 'versions' => array('brain/cortex' => array('pretty_version' => 'dev-refactoring-fastroute', 'version' => 'dev-refactoring-fastroute', 'reference' => '86bec053ec2c4d2e4c75af64e0cee951d9b0054b', 'type' => 'library', 'install_path' => __DIR__ . '/../brain/cortex', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'composer/installers' => array('pretty_version' => '1.x-dev', 'version' => '1.9999999.9999999.9999999-dev', 'reference' => 'd20a64ed3c94748397ff5973488761b22f6d3f19', 'type' => 'composer-plugin', 'install_path' => __DIR__ . '/./installers', 'aliases' => array(), 'dev_requirement' => \false), 'dompdf/dompdf' => array('pretty_version' => 'v2.0.2', 'version' => '2.0.2.0', 'reference' => 'ad4c631bf8897fc1ca7b566468a969cfd71a558a', 'type' => 'library', 'install_path' => __DIR__ . '/../dompdf/dompdf', 'aliases' => array(), 'dev_requirement' => \false), 'gamajo/template-loader' => array('pretty_version' => '1.3.1', 'version' => '1.3.1.0', 'reference' => 'fa92a37b780d945463f7fea328dce14933558752', 'type' => 'library', 'install_path' => __DIR__ . '/../gamajo/template-loader', 'aliases' => array(), 'dev_requirement' => \false), 'htmlburger/carbon-fields' => array('pretty_version' => 'v3.6.9', 'version' => '3.6.9.0', 'reference' => 'f82e80e3e3469d6e86cc17a8950b918ad448a059', 'type' => 'library', 'install_path' => __DIR__ . '/../htmlburger/carbon-fields', 'aliases' => array(), 'dev_requirement' => \false), 'masterminds/html5' => array('pretty_version' => '2.7.6', 'version' => '2.7.6.0', 'reference' => '897eb517a343a2281f11bc5556d6548db7d93947', 'type' => 'library', 'install_path' => __DIR__ . '/../masterminds/html5', 'aliases' => array(), 'dev_requirement' => \false), 'nesbot/carbon' => array('pretty_version' => '2.66.0', 'version' => '2.66.0.0', 'reference' => '496712849902241f04902033b0441b269effe001', 'type' => 'library', 'install_path' => __DIR__ . '/../nesbot/carbon', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/fast-route' => array('pretty_version' => 'v0.7.0', 'version' => '0.7.0.0', 'reference' => '8164b4a0d8afde4eae5f1bfc39084972ba23ad36', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/fast-route', 'aliases' => array(), 'dev_requirement' => \false), 'phenx/php-font-lib' => array('pretty_version' => '0.5.4', 'version' => '0.5.4.0', 'reference' => 'dd448ad1ce34c63d09baccd05415e361300c35b4', 'type' => 'library', 'install_path' => __DIR__ . '/../phenx/php-font-lib', 'aliases' => array(), 'dev_requirement' => \false), 'phenx/php-svg-lib' => array('pretty_version' => '0.5.0', 'version' => '0.5.0.0', 'reference' => '76876c6cf3080bcb6f249d7d59705108166a6685', 'type' => 'library', 'install_path' => __DIR__ . '/../phenx/php-svg-lib', 'aliases' => array(), 'dev_requirement' => \false), 'psr/http-message' => array('pretty_version' => '1.0.1', 'version' => '1.0.1.0', 'reference' => 'f6561bf28d520154e4b0ec72be95418abe6d9363', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/http-message', 'aliases' => array(), 'dev_requirement' => \false), 'roundcube/plugin-installer' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'sabberworm/php-css-parser' => array('pretty_version' => '8.4.0', 'version' => '8.4.0.0', 'reference' => 'e41d2140031d533348b2192a83f02d8dd8a71d30', 'type' => 'library', 'install_path' => __DIR__ . '/../sabberworm/php-css-parser', 'aliases' => array(), 'dev_requirement' => \false), 'shama/baton' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'stripe/stripe-php' => array('pretty_version' => 'v10.5.0', 'version' => '10.5.0.0', 'reference' => '331415b232d60d7c0449de7bde4cb7d4fedf982e', 'type' => 'library', 'install_path' => __DIR__ . '/../stripe/stripe-php', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v2.5.2', 'version' => '2.5.2.0', 'reference' => 'e8b495ea28c1d97b5e0c121748d6f9b53d075c66', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-mbstring' => array('pretty_version' => 'v1.26.0', 'version' => '1.26.0.0', 'reference' => '9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-mbstring', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-php80' => array('pretty_version' => 'v1.26.0', 'version' => '1.26.0.0', 'reference' => 'cfa0ae98841b9e461207c13ab093d76b0fa7bace', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php80', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/translation' => array('pretty_version' => 'v5.4.11', 'version' => '5.4.11.0', 'reference' => '7a1a8f6bbff269f434a83343a0a5d36a4f8cfa21', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/translation', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/translation-contracts' => array('pretty_version' => 'v2.5.2', 'version' => '2.5.2.0', 'reference' => '136b19dd05cdf0709db6537d058bcab6dd6e2dbe', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/translation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/translation-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '2.3')), 'wearerequired/wp-requirements-check' => array('pretty_version' => '1.1.0', 'version' => '1.1.0.0', 'reference' => '82b8a6c4b953f59e7e534df2d4287e34af950812', 'type' => 'library', 'install_path' => __DIR__ . '/../wearerequired/wp-requirements-check', 'aliases' => array(), 'dev_requirement' => \false), 'wp-user-manager/wp-notices' => array('pretty_version' => 'dev-master', 'version' => 'dev-master', 'reference' => '5498f209c6667e88e944194a93a50f9ffc25ea24', 'type' => 'library', 'install_path' => __DIR__ . '/../wp-user-manager/wp-notices', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'wp-user-manager/wp-optionskit' => array('pretty_version' => '1.1.2', 'version' => '1.1.2.0', 'reference' => '6253bda447991733bf8e19cb2123b41c666f3d62', 'type' => 'library', 'install_path' => __DIR__ . '/../wp-user-manager/wp-optionskit', 'aliases' => array(), 'dev_requirement' => \false), 'wp-user-manager/wp-user-manager' => array('pretty_version' => 'v2.9.15', 'version' => '2.9.15.0', 'reference' => '69eb07aa7ce9644dc1b2601dcfcf895ea01c748d', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'wp-user-manager/wpum-blocks' => array('pretty_version' => '1.15', 'version' => '1.15.0.0', 'reference' => 'fc3d01fe0baa2fb0fdf6a0f4cff30fc40bb1dbba', 'type' => 'library', 'install_path' => __DIR__ . '/../wp-user-manager/wpum-blocks', 'aliases' => array(), 'dev_requirement' => \false), 'wpbp/widgets-helper' => array('pretty_version' => 'dev-master', 'version' => 'dev-master', 'reference' => '5547acaaf60b856b0025cdf44e3831e0f3202929', 'type' => 'library', 'install_path' => __DIR__ . '/../wpbp/widgets-helper', 'aliases' => array(), 'dev_requirement' => \false)));
  • wp-user-manager/trunk/wp-user-manager.php

    r3468506 r3470603  
    44 * Plugin URI:  https://wpusermanager.com
    55 * Description: Beautifully simple user profile directories with frontend login, registration and account customization. WP User Manager is the best solution to manage your community and your users for WordPress.
    6  * Version: 2.9.14
     6 * Version: 2.9.15
    77 * Requires PHP: 7.4
    88 * Author:      WP User Manager
     
    2222    require_once __DIR__ . '/includes/class-wp-user-manager.php';
    2323
    24     return WP_User_Manager::instance( __FILE__, '2.9.14' );
     24    return WP_User_Manager::instance( __FILE__, '2.9.15' );
    2525}
    2626
Note: See TracChangeset for help on using the changeset viewer.