<?php
/**
* Write your own functions or modify functions, actions, and filters using this file.
* LIST YOUR FUNCTIONS (optional):
* cp_import_wp_childstyle() [CUSTOM]
* cp_get_price() [OVERWRITE]
*/
//Place All Your Custom Function Below This Line
// display the custom fields on registration form
add_action( 'register_form', 'at_custom_fields' );
// display the custom fields
function at_custom_fields() {
?>
<fieldset class="at_fieldset">
<legend><?php _e('Información Adicional Requerida', 'appthemes'); ?></legend>
<p>
<label for="at_poblacion"><?php _e('Población', 'appthemes'); ?></label><br/>
<input class="text" type="text" name="at_poblacion" id="at_poblacion" value=<?php if (isset($_POST['at_poblacion'])) echo esc_attr($_POST['at_poblacion']); ?>>
<label for="at_provincia"><?php _e('Provincia', 'appthemes'); ?></label><br/>
<input class="text" type="text" name="at_provincia" id="at_provincia" value=<?php if (isset($_POST['at_provincia'])) echo esc_attr($_POST['at_provincia']); ?>>
</p>
<p>
Selecciona una o varias opciones que encajen con tu perfil: <br/>
<input type="checkbox" name="at_colegio" id="at_colegio" value="yes" <?php echo checked( ! empty( $_POST['at_colegio'] ) )?> />
<label for="colegio"><?php _e('Representante de Colegio', 'appthemes'); ?></label> <br/>
<input type="checkbox" name="at_escuela" id="at_escuela" value="yes" <?php echo checked( ! empty( $_POST['at_escuela'] ) )?> />
<label for="escuela"><?php _e('Representate de Escuela Infantil, Guardería...', 'appthemes'); ?></label> <br/>
<input type="checkbox" name="at_ampa" id="at_ampa" value="yes" <?php echo checked( ! empty( $_POST['at_ampa'] ) )?> />
<label for="ampa"><?php _e('Representate de Ampa', 'appthemes'); ?></label><br/>
<input type="checkbox" name="at_profesor" id="at_profesor" value="yes" <?php echo checked( ! empty( $_POST['at_profesor'] ) )?> />
<label for="profesor"><?php _e('Profesor', 'appthemes'); ?></label><br/>
<input type="checkbox" name="at_padre" id="at_padre" value="on" <?php echo checked( ! empty( $_POST['at_padre'] ) )?> />
<label for="padre"><?php _e('Padre', 'appthemes'); ?></label> <br/>
<input type="checkbox" name="at_proveedor" id="at_proveedor" value="yes" <?php echo checked( ! empty( $_POST['at_proveedor'] ) )?> />
<label for="proveedor"><?php _e('Proveedor de Colegios, Escuelas, Guarderías, Ampa y/o Padres', 'appthemes'); ?></label> <br/>
<input type="checkbox" name="at_ninguno" id="at_ninguno" value="yes" <?php echo checked( ! empty( $_POST['at_ninguno'] ) )?> />
<label for="ninguno"><?php _e('Ninguno de los anteriores', 'appthemes'); ?></label> <br/>
</p>
</fieldset>
<?php
}
// validate custom fields
add_action( 'register_post', 'at_validate_custom_fields', 10, 3 );
// validate fields
function at_validate_custom_fields( $login, $email, $errors ) {
// fields to be validated
$fields = array(
'at_poblacion' => __( 'Población', 'appthemes' ),
'at_provincia' => __( 'Provincia', 'appthemes' ),
);
// check for empty required fields an display notice
foreach ( $fields as $field => $value ) {
if ( empty( $_POST[$field] ) ) {
$errors->add('empty_fields', __('<strong>ERROR</strong>: “', 'appthemes').$value.__('Por favor introduce ” es un campo requerido.', 'appthemes'));
}
}
// check for invalid names (letters and spaces)
// if ( ! empty( $_POST['at_poblacion'] ) && preg_match("/[^a-zA-Z ]/", $_POST['at_poblacion']) ) {
// $errors->add('invalid_poblacion', __('<strong>ERROR</strong>: “', 'appthemes').$fields['at_poblacion'].__('” does not contain a valid name.', 'appthemes'));
// }
// additional custom fields validations here
}
// save the custom fields to the database as soon as the user is registered on the database
add_action( 'user_register', 'at_register_custom_fields' );
// register the extra fields as user metadata
function at_register_custom_fields( $user_id, $password = "", $meta = array() ) {
// custom fields
$fields = array(
'at_poblacion',
'at_provincia',
'at_colegio',
'at_escuela',
'at_ampa',
'at_profesor',
'at_padre',
'at_proveedor',
'at_ninguno',
);
// cleans and updates the custom fields
foreach ( $fields as $field ) {
$value = stripslashes( trim( $_POST[$field] ) ) ;
if ( ! empty( $value ) ) {
update_user_meta( $user_id, $field, $value );
}
}
}
// display the custom fields on the user profile page (frontend and admin)
add_action( 'show_user_profile', 'at_custom_fields_display' ); // frontend
add_action( 'edit_user_profile', 'at_custom_fields_display' ); // backend
// display custom fields/values on the backend or frontend
function at_custom_fields_display( $user ) {
$user_id = $user->ID;
?>
<?php if ( is_admin() ) { ?>
<!-- // show the backend HTML -->
<h3><?php _e('Información Adicional', 'appthemes'); ?></h3>
<table class="form-table">
<tr>
<th><label for="at_poblacion"><?php _e('Población', 'appthemes'); ?></label></th>
<td>
<input class="text" type="text" name="at_poblacion" id="at_poblacion" value="<?php echo get_user_meta( $user_id, 'at_poblacion', true ) ; ?>">
</td>
</tr>
<tr>
<th><label for="at_provincia"><?php _e('Provincia', 'appthemes'); ?></label></th>
<td>
<input class="text" type="text" name="at_provincia" id="at_provincia" value="<?php echo get_user_meta( $user_id, 'at_provincia', true ) ; ?>">
</td>
</tr>
<tr>
<th><label for="at_colegio"><?php _e('Representante de Colegio', 'appthemes'); ?></label></th>
<td>
<input class="checkbox" type="checkbox" name="at_colegio" id="at_colegio" value="<?php echo get_user_meta( $user_id, 'at_colegio', true ) ; ?>">
</td>
</tr>
<tr>
<th><label for="at_escuela"><?php _e('Representante de Escuela Infantil, Guardería...', 'appthemes'); ?></label></th>
<td>
<input class="checkbox" type="checkbox" name="at_escuela" id="at_escuela" value="<?php echo get_user_meta( $user_id, 'at_escuela', true ) ; ?>">
</td>
</tr>
<tr>
<th><label for="at_ampa"><?php _e('Representante de AMPA', 'appthemes'); ?></label></th>
<td>
<input class="checkbox" type="checkbox" name="at_ampa" id="at_ampa" value="<?php echo get_user_meta( $user_id, 'at_ampa', true ) ; ?>">
</td>
</tr>
<tr>
<th><label for="at_profesor"><?php _e('Profesor', 'appthemes'); ?></label></th>
<td>
<input class="checkbox" type="checkbox" name="at_profesor" id="at_profesor" value="<?php echo get_user_meta( $user_id, 'at_profesor', true ) ; ?>">
</td>
</tr>
<tr>
<th><label for="at_padre"><?php _e('Padre', 'appthemes'); ?></label></th>
<td>
<input class="checkbox" type="checkbox" name="at_padre" id="at_padre" value="<?php echo get_user_meta( $user_id, 'at_padre', true ) ; ?>">
</td>
</tr>
<tr>
<th><label for="at_proveedor"><?php _e('Proveedor de Colegios, Escuelas, Guarderías, Ampa y/o Padres', 'appthemes'); ?></label></th>
<td>
<input class="checkbox" type="checkbox" name="at_proveedor" id="at_proveedor" value="<?php echo get_user_meta( $user_id, 'at_proveedor', true ) ; ?>">
</td>
</tr>
<tr>
<th><label for="at_ninguno"><?php _e('Ninguno de los anteriores', 'appthemes'); ?></label></th>
<td>
<input class="checkbox" type="checkbox" name="at_ninguno" id="at_ninguno" value="<?php echo get_user_meta( $user_id, 'at_ninguno', true ) ; ?>">
</td>
</tr>
</table>
<?php } else { ?>
<!-- // show the frontend HTML -->
<fieldset>
<div class="form-field">
<legend class="description"><?php _e('Información Adicional', 'appthemes'); ?></legend>
</div>
<div class="form-field">
<p>
<label for="at_poblacion"><?php _e('Población', 'appthemes'); ?></label>
<input class="text" type="text" name="at_poblacion" id="at_poblacion" value="<?php echo get_user_meta( $user_id, 'at_poblacion', true ) ; ?>">
</p>
</div>
<div class="form-field">
<p>
<label for="at_provincia"><?php _e('Provincia', 'appthemes'); ?></label>
<input class="text" type="text" name="at_provincia" id="at_provincia" value="<?php echo get_user_meta( $user_id, 'at_provincia', true ) ; ?>">
</p>
</div>
<div class="form-field">
<legend class="description"><?php _e('Selecciona una o varias opciones que encajen con tu perfil:', 'appthemes'); ?></legend>
</div>
<div class="form-field">
<p>
<label for="at_colegio">
<input class="checkbox" type="checkbox" name="at_colegio" id="at_colegio" value="<?php echo get_user_meta( $user_id, 'at_colegio', true ) ; ?>">
<?php _e('Representante de Colegio', 'appthemes'); ?></label>
</p>
</div>
<div class="form-field">
<p>
<label for="at_escuela">
<input class="checkbox" type="checkbox" name="at_escuela" id="at_escuela" value="<?php echo get_user_meta( $user_id, 'at_escuela', true ) ; ?>">
<?php _e('Representante de Escuela Infantil, Guardería...', 'appthemes'); ?></label>
</p>
</div>
<div class="form-field">
<p>
<label for="at_ampa">
<input class="checkbox" type="checkbox" name="at_ampa" id="at_ampa" value="<?php echo get_user_meta( $user_id, 'at_ampa', true ) ; ?>">
<?php _e('Representante de AMPA', 'appthemes'); ?></label>
</p>
</div>
<div class="form-field">
<p>
<label for="at_profesor">
<input class="checkbox" type="checkbox" name="at_profesor" id="at_profesor" value="<?php echo get_user_meta( $user_id, 'at_profesor', true ) ; ?>">
<?php _e('Profesor', 'appthemes'); ?></label>
</p>
</div>
<div class="form-field">
<p>
<label for="at_padre">
<input class="checkbox" type="checkbox" name="at_padre" id="at_padre" value="<?php echo get_user_meta( $user_id, 'at_padre', true ) ; ?>">
<?php _e('Padre', 'appthemes'); ?></label>
</p>
</div>
<div class="form-field">
<p>
<label for="at_proveedor">
<input class="checkbox" type="checkbox" name="at_proveedor" id="at_proveedor" value="<?php echo get_user_meta( $user_id, 'at_proveedor', true ) ; ?>">
<?php _e('Proveedor de Colegios, Escuelas, Guarderías, Ampa y/o Padres', 'appthemes'); ?></label>
</p>
</div>
<div class="form-field">
<p>
<label for="at_ninguno">
<input class="checkbox" type="checkbox" name="at_ninguno" id="at_ninguno" value="<?php echo get_user_meta( $user_id, 'at_ninguno', true ) ; ?>">
<?php _e('Ninguno de los anteriores', 'appthemes'); ?></label>
</p>
</div>
</fieldset>
<?php } ?>
<?php
}
// additional fields update
add_action( 'edit_user_profile_update', 'at_custom_fields_update' );
add_action( 'personal_options_update', 'at_custom_fields_update' );
add_action( 'show_user_profile_update', 'at_custom_fields_update' );
// updates custom fields
function at_custom_fields_update( $user_id ) {
if ( !current_user_can( 'edit_user', $user_id ) )
return false;
// updatable fields
$fields = array(
'at_poblacion',
'at_provincia',
'at_colegio',
'at_escuela',
'at_ampa',
'at_profesor',
'at_padre',
'at_proveedor',
'at_ninguno',
);
foreach ( $fields as $field ) {
$value = stripslashes( trim( $_POST[$field] ) ) ;
if ( ! empty( $value ) ) {
update_user_meta( $user_id, $field, $value );
}
}
}
//Do not place any code below this line.
?>