Agregando campos al formulario de comentarios

  • Autor Autor Candev
  • Fecha de inicio Fecha de inicio
C

Candev

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Hola a todos
Resulta que necesito agregar campos al formulario de comentarios.
de hecho ya los agregue (en el html) de comments.php
a continuacion pego el codigo:

HTML:
<div class="formreserva"> 
  <form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post" id="commentform">
    <?php if ( is_user_logged_in() ) : ?>
    <p>Logged in as <a href="<?php echo get_option('siteurl'); ?>/wp-admin/profile.php"><?php echo $user_identity; ?></a>. <a href="<?php echo wp_logout_url(get_permalink()); ?>" title="Log out of this account">Log out &raquo;</a></p>
    <?php else : ?>
    
   
    <div>
      <label for="author"><?php if ($req) echo "*"; ?> Nombre </label>
      <input type="text" name="author" id="author" value="<?php echo esc_attr($comment_author); ?>" size="22" tabindex="1" <?php if ($req) echo "aria-required='true'"; ?> />
    </div>
    <div>
      <label for="apellido">Apellido</label>
      <input type="text" name="apellido" id="apellido" value="<?php echo esc_attr($comment_author_apellido); ?>" size="22" tabindex="3" />
    </div>
    <div>
      <label for="empresa">Empresa</label>
      <input type="text" name="empresa" id="empresa" value="<?php echo esc_attr($comment_author_empresa); ?>" size="22" tabindex="3" />
    </div>
    <div>
      <label for="pais"><?php if ($req) echo "*"; ?> País</label>
      <input type="text" name="pais" id="pais" value="<?php echo esc_attr($comment_author_pais); ?>" size="22" tabindex="3" <?php if ($req) echo "aria-required='true'"; ?>/>
    </div>
    <div>
      <label for="idioma">Idioma</label>
      <input type="text" name="idioma" id="idioma" value="<?php echo esc_attr($comment_author_idioma); ?>" size="22" tabindex="3" />
    </div>
    <div>
      <label for="telefono">Teléfono</label>
      <input type="text" name="telefono" id="telefono" value="<?php echo esc_attr($comment_author_telefono); ?>" size="22" tabindex="3" />
    </div>
    <div>
      <label for="email"><?php if ($req) echo "*"; ?> E-mail </label>
      <input type="text" name="email" id="email" value="<?php echo esc_attr($comment_author_email); ?>" size="22" tabindex="2" <?php if ($req) echo "aria-required='true'"; ?> />
    </div>
     <div>
      <label for="evento"><?php if ($req) echo "*"; ?> Evento</label>
      <input type="text" name="evento" id="evento" value="<?php echo esc_attr($comment_author_evento); ?>" size="22" tabindex="3" <?php if ($req) echo "aria-required='true'"; ?>/>
    </div>
    
    
     <div>
      <label for="asunto">Asunto</label>
      <input type="text" name="asunto" id="asunto" value="<?php echo esc_attr($comment_author_asunto); ?>" size="22" tabindex="3" />
    </div>
    <?php endif; ?>
    
    <!--<p>You can use these tags: <code>< ?php echo allowed_tags(); ?></code></p>-->
    
  
    <div class="mensaje">
      Mensaje
    </div>
    <div>
      <textarea name="comment" id="comment" cols="58" rows="10" tabindex="4"></textarea>
    </div>
    <div>
      <input name="legal" type="checkbox" value=" " class="checkboxinput"/>
      He leído y acepto el Aviso Legal y la Política de privacidadde datos.</div>
    <div>
      <input name="submit" type="submit" id="submit" tabindex="5" value="Enviar" />
      <?php comment_id_fields(); ?>
    </div>
    <?php do_action('comment_form', $post->ID); ?>
  </form>
  <div class="clear"></div>
     </div> <!--end formreserva-->


Mi consulta es porque al completar el form para probarlo, solo me llegan por email los datos correspondientes a los campos que trae wp por defecto

nombre
email
web
mensaje

Necesito que me indiquen que y donde modificar para que me lleguen todos los datos de los campos que agregue.
(se me ocurrio que el archivo a modificar es /wp-includes/comment.php pero tengo miedo de hacer lio)

Cualquier ayuda es bienvenida, si hicieron algo parecido mejor 😀
Muchas gracias!!
 
En realidad si quieres usar esos campos personalizados tienes que editar ese archivo.

Los formularios, y el archivo de comments.php de tu themes especificamente, no procesan los campos. Los envían a una página (a veces puede ser la misma página que contiene el formulario) indicada en el valor action del formulario.

WordPress, entonces envia los datos del formulario al archivo que menciones y este los procesa.

Procesar significa: a) guardarlos en la base de datos, b) notificar al administrador por correo.

Si quieres guardar esos campos en la base de datos, debes modificar la tabla de comentarios y agregar las rutinas que almacen tus campos en esta tabla. Y agregar los campos nuevos a la función de envio de correo.

mmm...

No parece muy fácil, creo.
 
Correcto Sanchez debe hacer una modificacion pequeña para que se incluya la info en la BD.
 
gracias, sanchez, no se si es dificil,soy diseñadora 😀, no se nada de php y de DB muy poco 🙁

Puede serme util alguna otra manera de incluir este formulario al pie de los posts.
Estoy usando contact form 7 para generar otros forms
pero no se como poner un form ahi, seria un formulario de reservas, cada post seria un evento.
 
Pues se me ocurre que es más fácil mandar los datos por correo electrónico y considerarlos completamente volátiles.

Es decir, incluir en la variable que forma el cuerpo del mensaje, digamos $message, los datos que interesan:
$message .= 'País: '.$_POST[pais].PHP_EOL;

... algo asi...
 
ya lo solucione!!!
lo hice de esta manera, lo dejo por si a alguien le sirve

use contact form 7, cree un nuevo formulario
y en el single.php
reemplace <?php comments_template(); ?>

por el codigo
<?php echo do_shortcode('[contact-form 5 "reserva-form"]'); ?>

[contact-form 5 "reserva-form"] es lo que te tira contact form 7 cuando haces un form nuevo.

mil gracias a todos!!!!
 
Atrás
Arriba