• mfercam

    (@mfercam)


    Pessoal, boa tarde. Tudo bem?

    Sou novo aqui no fórum como cadastrado, mas já utilizei muito para me ajudar em alguns itens.

    Desta vez precisei fazer meu post aqui, não estou encontrando um plugin para cadastro de novos campos no perfil do usuário. Muitos fazem em PHP no Function e outros com plugins, mas preciso da seguinte maneira:

    Eu como administrador cadastrarei todos os usuarios, nome, senha, email, etc.. além desses preciso colocar Dados de Voo, Hotel, Transporte, creio que sejam uns 10 a 15 campos.

    Depois o usuario só vai pode ler esses dados, não pode ser editável para ele.

    Algum caminho p me ajudar pessoal?

    Muito obrigado! abs…

Visualizando 6 respostas - 1 até 6 (de um total de 6)
  • diegooli

    (@diegooli)

    Olá, faça através do function mesmo. Você cria os campos e depois desabilita ele via jQuery, algo assim:

    function add_extra_fields_user_profile($user) {
    ?>

    <h3>Dados extras</h3>

    <table class=”form-table”>

    <tr>
    <th><label for=”transporte”>Transporte</label></th>
    <td><input type=”text” name=”transporte” id=”transporte” value=”<?php echo esc_attr(get_the_author_meta(‘transporte’, $user->ID)); ?>” class=”regular-text” /> <span class=”description”>entre com o transporte</span></td>
    </tr>

    </table>

    <?php
    }

    add_action(‘personal_options_update’, ‘extra_fields_to_user_save’);
    add_action(‘edit_user_profile_update’, ‘extra_fields_to_user_save’);

    function extra_fields_to_user_save($user_id)
    {
    if (!current_user_can(‘edit_user’, $user_id))
    return false;

    /* Campos a serem salvos */
    update_user_meta($user_id, ‘transporte’, $_POST[‘transporte’]);
    }

    Para desabilitar os campos:

    function user_profile_fields_disable_js() {
    ?>
    <script>
    jQuery(document).ready( function($) {
    var fields_to_disable = [‘transporte’];
    for(i=0; i<fields_to_disable.length; i++) {
    if ( $(‘#’+ fields_to_disable[i]).length ) {
    $(‘#’+ fields_to_disable[i]).attr(“disabled”, “disabled”);
    }
    }
    });
    </script>
    <?php
    }

    Criador do tópico mfercam

    (@mfercam)

    Olá diegooli.

    Muito obrigado pela ajuda, colei os dois códigos na sequencia dentro de functions e não apareceu nada da edição/cadastro de usuário.

    Fiz algo de errado?

    Obrigado!

    diegooli

    (@diegooli)

    Faltou esse trecho do código, pode colocar ele acima de tudo:

    add_action(‘show_user_profile’, ‘add_extra_fields_user_profile’);
    add_action(‘edit_user_profile’, ‘add_extra_fields_user_profile’);

    e falta também esse:

    add_action(‘admin_init’, ‘user_profile_fields_disable’);

    function user_profile_fields_disable() {

    global $pagenow;

    // apply only to user profile or user edit pages
    if ($pagenow!==’profile.php’ && $pagenow!==’user-edit.php’) {
    return;
    }

    // do not change anything for the administrator
    if (current_user_can(‘administrator’)) {
    return;
    }

    add_action( ‘admin_footer’, ‘user_profile_fields_disable_js’ );

    }

    Testei aqui e funcionou agora.

    Criador do tópico mfercam

    (@mfercam)

    Diegooli,

    Mais uma vez obrigado, o campo agora está funcionando, mas ele é editável msm dps de salvar.

    Na verdade eu preciso cadastrar várias campos e inserir o conteúdo de cada usuário, mas o usuário tem que ter uma página para ver esses dados e não poder editar. Esse é o melhor caminho?

    Em paralelo também estou trabalhando com o BuddyPress, mas não entendo muito do negócio, não sei o que é melhor.

    Obrigado!

    diegooli

    (@diegooli)

    Bom, o que foi feito no código acima é criar um ou mais campo extra (que o administrador pode cadastrar) atrelado a determinado usuário, e bloquear o acesso para ele. Se você for fazer o teste logando com esse usuário, ele só vai poder ver o dado, não vai poder editar.

    Caso queira exibir esse dado em uma página, crie um loop com uma função que mostre essa dado, recomendo pesquisar no google por “display custom field”.

    Criador do tópico mfercam

    (@mfercam)

    ah entendi.

    vou fazer uma pesquisa em cima disso e te aviso.

    De qualquer forma já me ajudou muito.

    Obrigado!

Visualizando 6 respostas - 1 até 6 (de um total de 6)
  • O tópico ‘Plugin de Usuário (Novos campos)’ está fechado para novas respostas.