WordPress表单操作 - functions.php文件

时间:2018-04-05 12:22:12

标签: php wordpress

我已经通过进入WordPress后端创建了表单,然后进入页面,创建新页面,并在该页面上创建了html表单。

表单代码在下面给出。

<form action="http://example.com/wp-admin/admin-post_make_payment.php" method="post">
<input type="text" name="payment" class="form-control"/>
<input type="submit" name="Submit" class="form-control"/>
</form>

现在我希望在提交表单时,它会在functions.php文件上发布数据。就像我在functions.php文件中做了这样的动作一样。

function do_payment() {

   echo "<pre>"; print_r($_POST); echo "</pre>";
   exit;

}
add_action('admin_post_make_payment', 'do_payment');

现在,任何人都可以帮助如何做到这一点,它在上面的例子中给出了错误。

由于

2 个答案:

答案 0 :(得分:2)

你只是这样做。

<form action="http://example.com/wp-admin/admin-post.php" method="post">
<input type="hidden" name="action" value="make_payment" class="form-control"/>
<input type="text" name="payment" class="form-control"/>
<input type="submit" name="Submit" class="form-control"/>
</form>

它将在functions.php文件中点击你的给定动作。

第二种方式是。假设您有一个在页面下面给出的表格。

<form method="post">
    <input type="text" name="payment" class="form-control"/>
    <input type="submit" name="make_payment" class="form-control"/>
</form>

您只需在functions.php文件中编写以下代码即可。

if($_REQUEST['make_payment'] == 'make_payment') { 
    echo "<pre>"; print_r($_POST); echo "</pre>";
}

由于

答案 1 :(得分:0)

首先,您可以根据您想执行的操作类型,以两种不同的方式调用ajax帖子/wp-admin/admin-ajax.php或从/wp-admin/admin-post.php。

在您发送POST表单的情况下,您需要调用“ admin-post”,因此您的代码应类似于:

<form action="http://example.com/wp-admin/admin-post.php" method="post">
    <input type="hidden" name="action" value="make_payment">
    <input type="text" name="payment">
    <input type="submit" name="Submit">
</form>

然后,您需要将操作挂在functions.php文件中。为此,取决于提交方式(ajax或post)。 因此,对于post admin_post_nopriv_ {custom_action}或admin_post_ {custom_action}以及ajax:wp_ajax_nopriv_ {custom_action}和wp_ajax_ {custom_action} nopriv 将在用户未登录时触发,而另一个在用户登录时触发。您也可以将它们两个指向相同的功能。因此,您应该这样做:

add_action( 'admin_post_nopriv_make_payment', 'make_payment_process' );
add_action( 'admin_post_make_payment', 'make_payment_process' );

function make_payment_process()    
{
    /* here you must put your code */
    var_dump($_REQUEST['action']);
    exit();
}

所以我认为就这些。

再见和好代码。