/**
         * Render the xprofile metabox for Community Profile screen.
         *
         * @since 2.0.0
         *
         * @param WP_User|null $user The WP_User object for the user being edited.
         * @param array        $args Aray of arguments for metaboxes.
         */
        public function user_admin_profile_metaboxes($user = null, $args = array())
        {
            // Bail if no user ID.
            if (empty($user->ID)) {
                return;
            }
            $r = bp_parse_args($args['args'], array('profile_group_id' => 0, 'user_id' => $user->ID), 'bp_xprofile_user_admin_profile_loop_args');
            // We really need these args.
            if (empty($r['profile_group_id']) || empty($r['user_id'])) {
                return;
            }
            // Bail if no profile fields are available.
            if (!bp_has_profile($r)) {
                return;
            }
            // Loop through profile groups & fields.
            while (bp_profile_groups()) {
                bp_the_profile_group();
                ?>

			<input type="hidden" name="field_ids[]" id="<?php 
                echo esc_attr('field_ids_' . bp_get_the_profile_group_slug());
                ?>
" value="<?php 
                echo esc_attr(bp_get_the_profile_group_field_ids());
                ?>
" />

			<?php 
                if (bp_get_the_profile_group_description()) {
                    ?>

				<p class="description"><?php 
                    bp_the_profile_group_description();
                    ?>
</p>

			<?php 
                }
                ?>

			<?php 
                while (bp_profile_fields()) {
                    bp_the_profile_field();
                    ?>

				<div<?php 
                    bp_field_css_class('bp-profile-field');
                    ?>
>

					<?php 
                    $field_type = bp_xprofile_create_field_type(bp_get_the_profile_field_type());
                    $field_type->edit_field_html(array('user_id' => $r['user_id']));
                    if (bp_get_the_profile_field_description()) {
                        ?>

						<p class="description"><?php 
                        bp_the_profile_field_description();
                        ?>
</p>

					<?php 
                    }
                    /**
                     * Fires before display of visibility form elements for profile metaboxes.
                     *
                     * @since 1.7.0
                     */
                    do_action('bp_custom_profile_edit_fields_pre_visibility');
                    $can_change_visibility = bp_current_user_can('bp_xprofile_change_field_visibility');
                    ?>

					<p class="field-visibility-settings-<?php 
                    echo $can_change_visibility ? 'toggle' : 'notoggle';
                    ?>
" id="field-visibility-settings-toggle-<?php 
                    bp_the_profile_field_id();
                    ?>
">

						<?php 
                    printf(__('This field can be seen by: %s', 'buddypress'), '<span class="current-visibility-level">' . bp_get_the_profile_field_visibility_level_label() . '</span>');
                    ?>

						<?php 
                    if ($can_change_visibility) {
                        ?>

							<a href="#" class="button visibility-toggle-link"><?php 
                        esc_html_e('Change', 'buddypress');
                        ?>
</a>

						<?php 
                    }
                    ?>
					</p>

					<?php 
                    if ($can_change_visibility) {
                        ?>

						<div class="field-visibility-settings" id="field-visibility-settings-<?php 
                        bp_the_profile_field_id();
                        ?>
">
							<fieldset>
								<legend><?php 
                        _e('Who can see this field?', 'buddypress');
                        ?>
</legend>

								<?php 
                        bp_profile_visibility_radio_buttons();
                        ?>

							</fieldset>
							<a class="button field-visibility-settings-close" href="#"><?php 
                        esc_html_e('Close', 'buddypress');
                        ?>
</a>
						</div>

					<?php 
                    }
                    ?>

					<?php 
                    /**
                     * Fires at end of custom profile field items on your xprofile screen tab.
                     *
                     * @since 1.1.0
                     */
                    do_action('bp_custom_profile_edit_fields');
                    ?>

				</div>

			<?php 
                }
                // End bp_profile_fields().
                ?>

		<?php 
            }
            // End bp_profile_groups.
        }
Пример #2
0
        /**
         * Render the xprofile metabox for Community Profile screen.
         *
         * @access public
         * @since BuddyPress (2.0.0)
         *
         * @param WP_User $user The WP_User object for the user being edited.
         */
        public function user_admin_profile_metaboxes($user = null, $args = array())
        {
            if (empty($user->ID)) {
                return;
            }
            $r = bp_parse_args($args['args'], array('profile_group_id' => 0, 'user_id' => $user->ID), 'bp_xprofile_user_admin_profile_loop_args');
            // We really need these args
            if (empty($r['profile_group_id']) || empty($r['user_id'])) {
                return;
            }
            if (bp_has_profile($r)) {
                while (bp_profile_groups()) {
                    bp_the_profile_group();
                    ?>
				<input type="hidden" name="field_ids[]" id="<?php 
                    echo esc_attr('field_ids_' . bp_get_the_profile_group_slug());
                    ?>
" value="<?php 
                    echo esc_attr(bp_get_the_profile_group_field_ids());
                    ?>
" />

				<?php 
                    if (bp_get_the_profile_group_description()) {
                        ?>
					<p class="description"><?php 
                        bp_the_profile_group_description();
                        ?>
</p>
				<?php 
                    }
                    while (bp_profile_fields()) {
                        bp_the_profile_field();
                        ?>

					<div<?php 
                        bp_field_css_class('bp-profile-field');
                        ?>
>
						<?php 
                        $field_type = bp_xprofile_create_field_type(bp_get_the_profile_field_type());
                        $field_type->edit_field_html(array('user_id' => $r['user_id']));
                        if (bp_get_the_profile_field_description()) {
                            ?>
							<p class="description"><?php 
                            bp_the_profile_field_description();
                            ?>
</p>
						<?php 
                        }
                        do_action('bp_custom_profile_edit_fields_pre_visibility');
                        $can_change_visibility = bp_current_user_can('bp_xprofile_change_field_visibility');
                        ?>

						<p class="field-visibility-settings-<?php 
                        echo $can_change_visibility ? 'toggle' : 'notoggle';
                        ?>
" id="field-visibility-settings-toggle-<?php 
                        bp_the_profile_field_id();
                        ?>
">
							<?php 
                        printf(__('This field can be seen by: <span class="%s">%s</span>', 'buddypress'), esc_attr('current-visibility-level'), bp_get_the_profile_field_visibility_level_label());
                        if ($can_change_visibility) {
                            ?>
								 <a href="#" class="button visibility-toggle-link"><?php 
                            _e('Change', 'buddypress');
                            ?>
</a>
							<?php 
                        }
                        ?>
						</p>

						<?php 
                        if ($can_change_visibility) {
                            ?>
							<div class="field-visibility-settings" id="field-visibility-settings-<?php 
                            bp_the_profile_field_id();
                            ?>
">
								<fieldset>
									<legend><?php 
                            _e('Who can see this field?', 'buddypress');
                            ?>
</legend>
									<?php 
                            bp_profile_visibility_radio_buttons();
                            ?>
								</fieldset>
								<a class="button field-visibility-settings-close" href="#"><?php 
                            _e('Close', 'buddypress');
                            ?>
</a>
							</div>
						<?php 
                        }
                        do_action('bp_custom_profile_edit_fields');
                        ?>
					</div>

				<?php 
                    }
                    // bp_profile_fields()
                }
                // bp_profile_groups()
            }
        }