$_POST returns empty on form submit in wordpress

12,225

Solution 1

If your passing the name as a Post value, wordpress DOSNT like this!

change this

<input type="text" name="name" value="" placeholder="Your First and Last Name *" />

to

<input type="text" name="thename" value="" placeholder="Your First and Last Name *" />

changing the name to thename, Will work guaranteed! ;)

Solution 2

<form action="<?php the_permalink(); ?>" method="POST">

You don't need to echo the_permalink().

This works for me:

<?php print_r($_POST);?>
<form action="" method="POST">
  <input type="text" name="name" value="" placeholder="Your First and Last Name *" /><?php echo $firstnameError; ?><input type="text" name="email" value="" placeholder="Yoyr Email"/><?php echo $emailError; ?><br>
  <input type="text" name="company" value="" placeholder="Your Company Name"/><input type="text" name="phone" value="" placeholder="Your Phone number"/>
  <textarea name="project" rows="4" cols="50"placeholder="Describe the scope of work and the most important features of the project *'"></textarea><?php echo $addressError; ?><br>
  <input type="radio" name="budget" value="1500" /><input type="radio" name="budget" value="2500" /><input type="radio" name="budget" value="5000" /><input type="radio" name="budget" value="10000" /><input type="radio" name="budget" value="100001" /><input type="radio" name="budget" value="not sure" />
  <input type="hidden" name="submit"value="1"/>
  <input type="submit" value="SUbmit" />
</form>

Solution 3

change this

acton="<?php echo the_permalink(); ?>"

to

action="<?php echo the_permalink(); ?>"
Share:
12,225
Sankalp Mishra
Author by

Sankalp Mishra

It works !!! Facebook Twitter Blog

Updated on June 12, 2022

Comments

  • Sankalp Mishra
    Sankalp Mishra almost 2 years

    I have a form:

    <form action="<?php echo the_permalink(); ?>" method="POST">
        <input type="text" name="name" value="" placeholder="Your First and Last Name *" />
        <?php echo $firstnameError; ?>
        <input type="text" name="email" value="" placeholder="Yoyr Email" />
        <?php echo $emailError; ?>
        <br>
        <input type="text" name="company" value="" placeholder="Your Company Name" />
        <input type="text" name="phone" value="" placeholder="Your Phone number" />
        <textarea name="project" rows="4" cols="50" placeholder="Describe the scope of work and the most important features of the project *'"></textarea>
        <?php echo $addressError; ?>
        <br>
        <input type="radio" name="budget" value="1500" />
        <input type="radio" name="budget" value="2500" />
        <input type="radio" name="budget" value="5000" />
        <input type="radio" name="budget" value="10000" />
        <input type="radio" name="budget" value="100001" />
        <input type="radio" name="budget" value="not sure" />
        <input type="hidden" name="submit" value="1" />
        <input type="submit" value="SUbmit" />
    </form>
    

    It actions to the same page, but when I do print_r($_POST); it does not print anything, i.e. no value in $_POST.

    What could be the reason(s) for this? I studied a few questions on SO on this but none gave me the answer I was looking for.