我正在使用一个名为Test Form的表单页面:
<div id="container">
<form action="wp-content/themes/max-magazine/TestForm.php" method="post" name="myForm">
User <input type="text" name="uname" />
Email <input id="email" type="text" name="uemail" />
Password <input type="password" name="upass" />
<input type="submit" value="Submit" /></form>
</div>
在后端我有一个名为TestForm.php的
的php文件<?php
function create_account(){
$user = 'AccountID';
$pass = 'AccountPassword';
$email = 'email@domain.com';
if ( !username_exists( $user ) && !email_exists( $email ) ) {
$user_id = wp_create_user( $user, $pass, $email );
$user = new WP_User( $user_id );
$user->set_role( 'contributor' );
}
}
add_action('init','create_account');
?>
现在如果在function.php中定义了这个函数,那么它可以正常工作并创建用户但TestForm.php中的相同函数不起作用。请帮助
此外,我将从以下表单中获取数据:
<?php
$user = $_POST['uname'];
$pass = $_POST['upass'];
$email = $_POST['uemail'];
?>
答案 0 :(得分:1)
您需要正确更改操作网址 你只需在表格中使用它
<form action="http://yourdomain.com/Test-form" method="post" name="myForm"/>
按照步骤
给予此操作网址第1步 - 创建网页
此处测试表格是您需要在wordpress仪表板中创建的页面 pages-&gt;添加新,为页面命名Test-form 在创建此页面时,从默认模板中将模板指定为测试表单模板(请参阅仪表板的右侧面板以选择模板)。
step2 - 在 TestForm.php
中创建页面模板测试表单模板<?php
/*
Template Name: Test form template
*/
?>
<?php get_header(); ?>
<?php include (TEMPLATEPATH . '/functions.php');//already have their works if your file location changed ?>
<!-- Your action page contents goes here -->
<?php
$user = $_POST['uname'];
$pass = $_POST['upass'];
$email = $_POST['uemail'];
function create_account(){
$user = 'AccountID';
$pass = 'AccountPassword';
$email = 'email@domain.com';
if ( !username_exists( $user ) && !email_exists( $email ) ) {
$user_id = wp_create_user( $user, $pass, $email );
$user = new WP_User( $user_id );
$user->set_role( 'contributor' );
}
}
do_action('init');
?>
<?php get_sidebar(); ?>
<?php get_footer(); ?>
现在将其保存在主题目录中 TestForm.php (wp-contents / themes / yourtheme / TestForm.php)
并且此 TestForm.php 文件将添加测试表单模板,您可以添加 step1
在主题的functions.php文件中,等等:
add_action('init','create_account');
在页面模板测试表单模板中使用
do_action('init');