0
votes

I am trying to write a plugin for wordpress. I have a problem i can't solve.

Inside plugin i habe added a shortcode that show a form.

function showForm() {
    echo '<form method="post" action="www.example.com/myDestinationPage">';
    [...]
}

add_shortcode( 'ShowFormSC' , 'showForm' );

After that, in a page, i added the shortcode and it works perfectly. ;-)

Now the problem: how can i read POST data in myDestinationPage (another wordpress page)?

In Php would be very simple ... but in wordpress I do not know how to do.

Second problem: myDestinationPage must be a real wordpress page with another shortcode inside, or can be defined as a "virtual" page inside my plugin?

Thank you for your help!

Best Regards, Simone

2

2 Answers

0
votes

www.example.com/myDestinationPage needs to be edited to recieve the post data, just as in any other php script, wordpress or not. If 'myDestinationPage' resolves to dynamic wordpress content, then you are in muddy waters.

Let's say, myDestinationPage is a wordpress Post. That "page" doesn't exist as a file, it comes directly from the database.

You could write a shortcode which handles this though:

add_shortcode('post_parser', 'postParser');
. . .
function postParser() {
  filter_input(INPUT_POST, 'my_post_value');
  //do something
}

Then, you just add the '[post_parser]' shortcode to the myDestinatioPage Post. (You mentioned it's a wordpress page, but page & post are both WP_Post objects.)

Another option is to put your post processing code in the post.php (or whichever template myDestinationPage is).

0
votes

1st answer: you can directly use $_POST in wordpress like in php.

2nd answer: Yes you can. If you want to use pages in your plugin, use plugins_url() to generate the path for form action.

https://codex.wordpress.org/Function_Reference/plugins_url