Skip to content

Instantly share code, notes, and snippets.

@digiltd
Forked from javifr/theme-my-login.php
Last active August 29, 2015 14:06
Show Gist options
  • Save digiltd/4733718aacbd81bce6ab to your computer and use it in GitHub Desktop.
Save digiltd/4733718aacbd81bce6ab to your computer and use it in GitHub Desktop.

Revisions

  1. @javifr javifr created this gist Jul 18, 2012.
    86 changes: 86 additions & 0 deletions theme-my-login.php
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,86 @@
    <?php
    /*
    // Añadimos un campo llamado user_telephone
    - ojo al if(!is_admin )
    - ojo en que fichero se meten las líneas de códigon ( tenemos tres ficheros )
    - dependencia del plugin Theme My Login
    */




    // *********************************************************
    // Para functions.php
    // *********************************************************

    add_action( 'show_user_profile', 'my_show_extra_profile_fields' );
    add_action( 'edit_user_profile', 'my_show_extra_profile_fields' );

    function my_show_extra_profile_fields( $user ) { ?>

    <?php

    // Está linea solo si hemos añadido ya los campos vía el profile-form de Theme-My-Login y queremos que no se vuelvan a añadir los campos
    //if(!is_admin()) return;
    ?>
    <h3>Extra profile information</h3>

    <table class="form-table">

    <tr>
    <th><label for="user_telephone">Telephone</label></th>

    <td>
    <input type="text" name="user_telephone" id="user_telephone" value="<?php echo esc_attr( get_the_author_meta( 'user_telephone', $user->ID ) ); ?>" class="regular-text" /><br />
    <span class="description">Please enter your telephone number.</span>
    </td>
    </tr>

    </table>
    <?php }


    add_action( 'personal_options_update', 'my_save_extra_profile_fields' );
    add_action( 'edit_user_profile_update', 'my_save_extra_profile_fields' );

    function my_save_extra_profile_fields( $user_id ) {


    if ( !current_user_can( 'edit_user', $user_id ) )
    return false;
    // echo "UFCK!";exit;
    //echo $_POST['user_telephone']; exit;
    /* Copy and paste this line for additional fields. Make sure to change 'twitter' to the field ID. */
    update_user_meta( $user_id, 'user_telephone', $_POST['user_telephone'] );
    }



    // *********************************************************
    // Para theme-my-login-custom.php ( en la raiz del plugin )
    // *********************************************************

    function tml_registration_errors( $errors ) {
    if ( empty( $_POST['user_telephone'] ) )
    $errors->add( 'empty_user_telephone', '<strong>ERROR</strong>: Please enter your user_telephone.' );
    return $errors;
    }
    add_filter( 'registration_errors', 'tml_registration_errors' );

    function tml_user_register( $user_id ) {
    if ( !empty( $_POST['user_telephone'] ) )
    update_user_meta( $user_id, 'user_telephone', $_POST['user_telephone'] );
    }
    add_action( 'user_register', 'tml_user_register' );



    // *********************************************************
    // Para profile-form.php ( en el caso de que no queramos añadir el campo vía hooks )
    // *********************************************************
    ?>

    <p>
    <label for="user_telephone<?php $template->the_instance(); ?>"><?php _e( 'Telephone', 'theme-my-login' ) ?></label>
    <input type="text" name="user_telephone" id="user_telephone<?php $template->the_instance(); ?>" class="input" value="<?php $template->the_posted_value( 'user_telephone' ); ?>" size="20" tabindex="20" />
    </p>