rozanchetta

Wordpress - pagina-registro.php

Oct 14th, 2011
345
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 11.96 KB | None | 0 0
  1. <?php
  2. // refere-se ao tutorial: http://rozanchetta.wordpress.com/2011/10/14/area-de-clientes-front-end-formulario-de-registro
  3.  
  4. /*
  5.  * Template Name: Página de Registro
  6. */
  7.  
  8. /* Carrega o arquivo de registro. */
  9. require_once( ABSPATH . WPINC . '/registration.php' );
  10.  
  11. /* Checa se o registro está ativado. */
  12. $registration = get_option( 'users_can_register' );
  13.  
  14. /* Se o usuário se registrar, incui as informações padrão. */
  15. if ( 'POST' == $_SERVER['REQUEST_METHOD'] && !empty( $_POST['action'] ) && $_POST['action'] == 'adduser' ) {
  16. $user_pass = wp_generate_password();
  17. $userdata = array(
  18. 'user_pass' => $user_pass,
  19. 'user_login' => esc_attr( $_POST['user_name'] ),
  20. 'first_name' => esc_attr( $_POST['first_name'] ),
  21. 'last_name' => esc_attr( $_POST['last_name'] ),
  22. 'nickname' => esc_attr( $_POST['nickname'] ),
  23. 'user_email' => esc_attr( $_POST['email'] ),
  24. 'user_url' => esc_attr( $_POST['website'] ),
  25. 'description' => esc_attr( $_POST['description'] ),
  26. 'role' => get_option( 'default_role' ),
  27. );
  28.  
  29. if ( !$userdata['user_login'] )
  30. $error = __('Você precisa escolher um nome de usuário para se registrar.', 'frontendprofile');
  31. elseif ( username_exists($userdata['user_login']) )
  32. $error = __('Esse nome de usuário já existe!', 'frontendprofile');
  33.  
  34. elseif ( !is_email($userdata['user_email'], true) )
  35. $error = __('Você deve digitar um email válido.', 'frontendprofile');
  36. elseif ( email_exists($userdata['user_email']) )
  37. $error = __('Esse email já está sendo usado!', 'frontendprofile');
  38.  
  39. else{ /* Inclui as informações dos novos campos personalizados */
  40. $new_user = wp_insert_user( $userdata );
  41. wp_new_user_notification($new_user, $user_pass);
  42. update_usermeta( $new_user, 'residenciatelefone', esc_attr( $_POST['residenciatelefone'] ));
  43. update_usermeta( $new_user, 'comercialtelefone', esc_attr( $_POST['comercialtelefone'] ));
  44. update_usermeta( $new_user, 'celulartelefone', esc_attr( $_POST['celulartelefone'] ));
  45. update_usermeta( $new_user, 'celulartelefone', esc_attr( $_POST['celulartelefone'] ));
  46. update_usermeta( $new_user, 'endereco', esc_attr($_POST['endereco'] ));
  47. update_usermeta( $new_user, 'cidade', esc_attr($_POST['cidade'] ));
  48. update_usermeta( $new_user, 'estado', esc_attr($_POST['estado'] ));
  49. update_usermeta( $new_user, 'cep', esc_attr($_POST['cep'] ));
  50. update_usermeta( $new_user, 'empresa', esc_attr($_POST['empresa'] ));
  51. update_usermeta( $new_user, 'cargo', esc_attr($_POST['cargo'] ));
  52. update_usermeta( $new_user, 'emailcomercial', esc_attr($_POST['emailcomercial'] ));
  53. }
  54. }
  55. get_header(); ?>
  56.  
  57. <!-- Inicia o loop do Post -->
  58. <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
  59. <article <?php post_class() ?> id="post-<?php the_ID(); ?>">
  60. <h1 class="entry-title"><?php the_title(); ?></h1>
  61. <div class="entry">
  62. <?php the_content();?>
  63. </div>
  64. </article><!-- .post -->
  65.  
  66. <!-- INÍCIO DO FORMULÁRIO DE REGISTRO -->
  67.  
  68. <?php if ( is_user_logged_in() && !current_user_can( 'create_users' ) ) :
  69. // condicional = se for um usuário logado e não tiver permissão de criar usuários, mostrar
  70. ?>
  71.  
  72. <div class="log-in-out alerta">
  73. <p><?php printf( __('Você já está logado como <a href="%1$s" title="%2$s">%2$s</a>.  Você não precisa se registrar novamente.', 'frontendprofile'), get_author_posts_url( $curauth->ID ), $user_identity ); ?></p>
  74. <p>O que você deseja fazer?</p>
  75. <ul>
  76. <li><a href="<?php echo esc_url( home_url( '/' ) ); ?>">Ir para a Página Inicial</a></li>
  77. <li><a href="<?php echo esc_url( home_url( '/' ) ); ?>documentos/">Ver minha Lista de Documentos</a></li>
  78. <li><?php echo '<a href="' . admin_url() . 'profile.php">' . __('Alterar meus dados') . '</a>'; ?></li>
  79. <li><a href="<?php echo wp_logout_url( get_permalink() ); ?>" title="<?php _e('Sair desta conta', 'frontendprofile'); ?>"><?php _e('Sair desta conta &raquo;', 'frontendprofile'); // ao fazer logout, volta para esta página ?></a></li>
  80. </div><!-- .log-in-out .alerta -->
  81.  
  82. <?php elseif ( $new_user ) :
  83. // se for um novo usuário, mostrar
  84. ?>
  85.  
  86. <div class="alerta">
  87. <p>
  88. <?php
  89. if ( current_user_can( 'create_users' ) ) // se o usuário com permissão para criar usuários está registrando:
  90. printf( __('Uma conta de usuário para %1$s foi criada.', 'frontendprofile'), $_POST['user-name'] );
  91. else // se o usuário estiver se registrando:
  92. printf( __('Obrigado por se registrar em nosso site, %1$s.', 'frontendprofile'), $_POST['user-name'] );
  93. printf( __('<br/>Por favor, verifique a caixa de entrada de seu email. Você receberá uma mensagem com sua senha.<br/> (Se não encontrar a mensagem em sua caixa de entrada, cheque sua caixa de spam.)', 'frontendprofile') );
  94. ?>
  95. </p>
  96. </div><!-- .alerta -->
  97.  
  98. <?php else : // Se não atender as condicionais anteriores ?>
  99.  
  100. <?php if ( $error ) : ?>
  101. <p class="error">
  102. <?php echo $error; // Mostra a mensagem de erro ?>
  103. </p><!-- .error -->
  104. <?php endif; ?>
  105.  
  106. <?php if ( current_user_can( 'create_users' ) && $registration ) :
  107. // Condicional = se for um usuário com permissão para criar usuários e a opção de auto-registro de usuários estiver marcada
  108. ?>
  109. <div class="alerta">
  110. <p><?php _e('Os usuários podem se registrar, ou você pode criar usuários manualmente pelo formulário.', 'frontendprofile'); ?>
  111. </p>
  112. </div><!-- .alerta -->
  113. <?php elseif ( current_user_can( 'create_users' ) ) : // se for um usuário com permissão para criar usuários e a opção de auto-registro estiver desmarcada ?>
  114. <div class="alerta">
  115. <p><?php _e('Usuários não podem se registrar, mas você pode criar usuários manualmente pelo formulário.', 'frontendprofile'); ?>
  116. </p>
  117. </div><!-- .alerta -->
  118. <?php endif;  // finaliza as condicionais ?>
  119.  
  120. <?php if ( $registration || current_user_can( 'create_users' ) ) : // se o registro de usuários estiver ativado ou o usuário logado tiver permissão de criar usuários ?>
  121.  
  122. <!-- HTML DO FORMULÁRIO -->
  123.  
  124. <form method="post" id="adduser" class="user-forms" action="http://<?php echo $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; ?>">
  125. <strong>Nome</strong>
  126.  
  127. <p class="form-username">
  128. <label for="user_name"><?php _e('Login de Usuário (obrigatório)', 'frontendprofile'); ?></label>
  129. <input class="text-input" name="user_name" type="text" id="user_name" value="<?php if ( $error ) echo wp_specialchars( $_POST['user_name'], 1 ); ?>" />
  130. </p><!-- .form-username -->
  131.  
  132. <p class="first_name">
  133. <label for="first_name"><?php _e('Primeiro Nome', 'frontendprofile'); ?></label>
  134. <input class="text-input" name="first_name" type="text" id="first_name" value="<?php if ( $error ) echo wp_specialchars( $_POST['first_name'], 1 ); ?>" />
  135. </p><!-- .first_name -->
  136.  
  137. <p class="last_name">
  138. <label for="last_name"><?php _e('Sobrenome', 'frontendprofile'); ?></label>
  139. <input class="text-input" name="last_name" type="text" id="last_name" value="<?php if ( $error ) echo wp_specialchars( $_POST['last_name'], 1 ); ?>" />
  140. </p><!-- .last_name -->
  141.  
  142. <p class="nickname">
  143. <label for="nickname"><?php _e('Apelido', 'frontendprofile'); ?></label>
  144. <input class="text-input" name="nickname" type="text" id="nickname" value="<?php if ( $error ) echo wp_specialchars( $_POST['nickname'], 1 ); ?>" />
  145. </p><!-- .nickname -->
  146.  
  147. <strong>Informações de Contato</strong>
  148.  
  149. <p class="form-email">
  150. <label for="email"><?php _e('E-mail (obrigatório)', 'frontendprofile'); ?></label>
  151. <input class="text-input" name="email" type="text" id="email" value="<?php if ( $error ) echo wp_specialchars( $_POST['email'], 1 ); ?>" />
  152. </p><!-- .form-email -->
  153.  
  154. <p class="form-website">
  155. <label for="website"><?php _e('Endereço de seu site', 'frontendprofile'); ?></label>
  156. <input class="text-input" name="website" type="text" id="website" value="<?php if ( $error ) echo wp_specialchars( $_POST['website'], 1 ); ?>" />
  157. </p><!-- .form-website -->
  158.  
  159. <p class="form-residenciatelefone">
  160. <label for="residenciatelefone"><?php _e('Telefone Residencial', 'frontendprofile'); ?></label>
  161. <input class="text-input" name="residenciatelefone" type="text" id="residenciatelefone" value="<?php if ( $error ) echo wp_specialchars( $_POST['residenciatelefone'], 1 ); ?>" />
  162. </p><!-- .form-residenciatelefone -->
  163.  
  164. <p class="form-comercialtelefone">
  165. <label for="comercialtelefone"><?php _e('Telefone Comercial', 'frontendprofile'); ?></label>
  166. <input class="text-input" name="comercialtelefone" type="text" id="comercialtelefone" value="<?php if ( $error ) echo wp_specialchars( $_POST['comercialtelefone'], 1 ); ?>" />
  167. </p><!-- .form-comercialtelefone -->
  168.  
  169. <p class="form-celulartelefone">
  170. <label for="celulartelefone"><?php _e('Telefone Celular', 'frontendprofile'); ?></label>
  171. <input class="text-input" name="celulartelefone" type="text" id="celulartelefone" value="<?php if ( $error ) echo wp_specialchars( $_POST['celulartelefone'], 1 ); ?>" />
  172. </p><!-- .form-celulartelefone -->
  173.  
  174. <strong>Sobre Você</strong>
  175.  
  176. <p class="form-description">
  177. <label for="description"><?php _e('Algumas informações a seu respeito', 'frontendprofile'); ?></label>
  178. <textarea class="text-input" name="description" id="description" rows="5" cols="30"><?php if ( $error ) echo wp_specialchars( $_POST['description'], 1 ); ?></textarea>
  179. </p><!-- .form-description -->
  180.  
  181. <strong>Endereço</strong>
  182.  
  183. <p class="form-endereco">
  184. <label for="endereco"><?php _e('Rua, nº', 'frontendprofile'); ?></label>
  185. <input class="text-input" name="endereco" type="text" id="endereco" value="<?php if ( $error ) echo wp_specialchars( $_POST['endereco'], 1 ); ?>" />
  186. </p><!-- .form-endereco -->
  187.  
  188. <p class="form-cidade">
  189. <label for="cidade"><?php _e('Cidade', 'frontendprofile'); ?></label>
  190. <input class="text-input" name="cidade" type="text" id="cidade" value="<?php if ( $error ) echo wp_specialchars( $_POST['cidade'], 1 ); ?>" />
  191. </p><!-- .form-cidade -->
  192.  
  193. <p class="form-estado">
  194. <label for="estado"><?php _e('Estado', 'frontendprofile'); ?></label>
  195. <input class="text-input" name="estado" type="text" id="estado" value="<?php if ( $error ) echo wp_specialchars( $_POST['estado'], 1 ); ?>" />
  196. </p><!-- .form-estado -->
  197.  
  198. <p class="form-cep">
  199. <label for="cep"><?php _e('CEP', 'frontendprofile'); ?></label>
  200. <input class="text-input" name="cep" type="text" id="cep" value="<?php if ( $error ) echo wp_specialchars( $_POST['cep'], 1 ); ?>" />
  201. </p><!-- .form-cep -->
  202.  
  203. <strong>Informações Comerciais</strong>
  204. <p class="form-empresa">
  205. <label for="empresa"><?php _e('Empresa', 'frontendprofile'); ?></label>
  206. <input class="text-input" name="empresa" type="text" id="empresa" value="<?php if ( $error ) echo wp_specialchars( $_POST['empresa'], 1 ); ?>" />
  207. </p><!-- .form-empresa -->
  208.  
  209. <p class="form-cargo">
  210. <label for="cargo"><?php _e('Cargo', 'frontendprofile'); ?></label>
  211. <input class="text-input" name="cargo" type="text" id="cargo" value="<?php if ( $error ) echo wp_specialchars( $_POST['cargo'], 1 ); ?>" />
  212. </p><!-- .form-cargo -->
  213.  
  214. <p class="form-emailcomercial">
  215. <label for="emailcomercial"><?php _e('Email Comercial', 'frontendprofile'); ?></label>
  216. <input class="text-input" name="emailcomercial" type="text" id="emailcomercial" value="<?php if ( $error ) echo wp_specialchars( $_POST['emailcomercial'], 1 ); ?>" />
  217. </p><!-- .form-emailcomercial -->
  218.  
  219.  
  220. <p class="form-submit">
  221. <?php echo $referer; ?>
  222. <!-- Condicionais dentro do "input" - quando um administrador estiver criando um usuário, mostra "Adicionar Usuário", quando um usuário estiver se registrando mostra "Registrar-se" -->
  223. <input name="adduser" type="submit" id="addusersub" class="submit button" value="<?php if ( current_user_can( 'create_users' ) ) _e('Adicionar Usuário', 'frontendprofile'); else _e('Registrar-se', 'frontendprofile'); ?>" />
  224. <?php wp_nonce_field( 'add-user' ) ?>
  225. <input name="action" type="hidden" id="action" value="adduser" />
  226. </p><!-- .form-submit -->
  227.  
  228. </form><!-- #adduser -->
  229. <!-- FINALIZA O HTML DO FORMULÁRIO -->
  230.  
  231. <?php endif; // finaliza as condicionais ?>
  232.  
  233. <?php endif; // finaliza as condicionais ?>
  234.  
  235. <!-- FINALIZA O FORMULÁRIO DE REGISTRO -->
  236.  
  237. <?php endwhile; ?> <!-- finaliza o loop do post -->
  238. <?php endif; ?> <!-- finaliza a condicional se houver posts -->
  239.  
  240. <?php get_sidebar(); ?>
  241.  
  242. <?php get_footer(); ?>
  243.  
Advertisement
Add Comment
Please, Sign In to add comment