我已经通过进入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');
现在,任何人都可以帮助如何做到这一点,它在上面的例子中给出了错误。
由于
答案 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();
}
所以我认为就这些。
再见和好代码。