Поля BuddyPress Xprofile для отображения в «панели администратора редактирования пользователя wordpress»

Я использую тему supermassive-BuddyPress с wordpress 3.8 и BuddyPress 1.9. Я добавил одно дополнительное поле (номер Mci) в свою регистрационную форму. Я хочу, чтобы эти значения поля xprofile в административной панели редактирования пользователя Wordpress.

веб-сайт: http://harsh031.0fees.net/register/

Я попробовал запрос ниже и добавил в function.php. но в итоге ни с чем. Можете ли вы помочь.?

<?php 
add_action( 'show_user_profile', 'showmy_extra_profile_fields' );
add_action( 'edit_user_profile', 'showmy_extra_profile_fields' );
function showmy_extra_profile_fields( $user ) { ?>
    <h3>Extra profile information</h3>
    <table class="form-table">
        <tr>
            <th><label>Mci Number</label></th>
            <td>
                <?php 
                if( function_exists( 'xprofile_get_field_data' ) ) {
                    $xprofile_value = xprofile_get_field_data('Mci Number', $user->ID );
                }
                else {
                    $xprofile_value = '';
                }
                ?>
                <input type="text" name="Mci Number" id="Mci Number" value="<?php echo esc_attr( $xprofile_value ); ?>" class="regular-text" readonly />
            </td>
        </tr>

    </table>
<?php 
}
?>

person user3143942    schedule 29.12.2013    source источник


Ответы (1)


Пожалуйста, попробуйте приведенный ниже код, чтобы добавить номер MCI в профиль пользователя со стороны администратора:

function addd_new_fields($data) {
    if(!empty($data)) {
        $mciNumbar= get_user_meta($data->data->ID, 'mcinumber', true);
        ?>
        <h3>Register Additional Fields</h3>
        <table class="form-table">
            <tr>
                <th><label for="mcinumber">MCI Numbar</label></th>
                <td><input type="text" id="mcinumber" class="regular-text" value="<?php echo ($mciNumbar) ? $mciNumbar: ''; ?>" name="mcinumber"></td>
            </tr>
        </table>
        <?php
    }
}
add_action('edit_user_profile','addd_new_fields',0,1);

function save_new_fields_value($user_id) {
    if (!empty($user_id)) {
        update_user_meta($user_id,'mcinumber', $_POST['mcinumber']);
    }
}
add_action('edit_user_profile_update', 'save_new_fields_value',0,1);
person Chirag Patel    schedule 06.01.2014
comment
Привет Чираг, я вставил код в файл темы function.php и добавил поле с именем MCI Number в поле базового профиля. Однако я обновил это поле в профиле buddypress. Но я не вижу ни одного поля в панели администратора (Пользователи-›все пользователи) с информацией о номере MCI. Пожалуйста помогите подскажите. - person user3143942; 12.01.2014
comment
Пожалуйста, проверьте это в профиле любого другого пользователя (не администратора) со стороны администратора... Там вы можете увидеть внизу. - person Chirag Patel; 13.01.2014
comment
Спасибо за ваш ценный вклад. Я вижу это дополнительное поле в профиле пользователя. Редактирование и обновление этого поля из панели администратора работает нормально. Но это поле не обновляется на стороне администратора, когда пользователь вводит его значение из меню редактирования профиля buddypress (редактирование или обновление поля сохраняется только в профиле пользователя buddypress, который виден пользователям только в профиле buddypress). Не могли бы вы предложить, как мы можем синхронизировать эти два. - person user3143942; 14.01.2014
comment
Здесь мы добавили приведенный выше код для настраиваемых полей wordpress (не Buddypress). Если вы хотите синхронизировать поля, отредактируйте приведенный выше код. В настоящее время mcinuber исходит из метаданных сообщений и обновляет метаданных сообщений. Там вы можете изменить код для получения данных поля xprofile и обновить данные. - person Chirag Patel; 18.01.2014
comment
Вы должны использовать следующий код: Получить данные xprofile: xprofile_get_field_data('mcinumber', $user_id) Обновить данные xprofile: xprofile_set_field_data('mcinumber', $user_id, $newvalue); - person Chirag Patel; 18.01.2014
comment
Спасибо, Чираг.. Мне нужно поработать над тем же.. Сообщу вам, если найду какую-то проблему..: P - person user3143942; 11.02.2014