自定义表单
插件
WordPress Form Manager
visual form builder
piklist
Gravity Forms
Formidable Forms
formidable
Contact Form 7
X Forms Plugin
Slick Contact Forms
Easy Contact Forms
Ninja Forms
Formidable Forms
Breezing Forms
Form Maker
Contact Form Manager
Quform
jWizard Forms
FlexForms
FormCraft
Creative Unified Forms
Mapped contact form pro Modal Contact Form
Gravity Forms 收费? Fast Secure Contact Form
Buddyforms
Forminator WPMU DEV 推荐
Nette Form
// 获取用户数据,在为表单设置默认数据时使用
$uid = wp_get_current_user()->ID;
$nickname = get_user_meta($uid, 'nickname' ,true);
$card = get_user_meta($uid, 'card' ,true);
//创建表单
$form = new Form;
$form->setMethod( 'POST' );
$form->addText( 'nickname', '昵称:' )
->setRequired( '请输入昵称' ) // 这里设置了验证此项为必填项
->setDefaultValue($nickname);
$form->addText( 'card', ' 会员卡号:' )
->setDefaultValue($card);
$form->addSubmit( 'send', '修改资料' );
//显示表单
echo $forms;
// 验证表单
if ( $form->isSuccess() ) {
// 获取表单的值,有了这个,就不用通过丑陋的$POST[*]来获取表单提交的值了。
$values = $form->getValues();
// 保存自定义字段,有了这个操作,才能保存数据到数据库中
update_user_meta( $uid, 'nickname', $values->nickname);
update_user_meta( $uid, 'card', $values->card);
// 显示成功提醒
echo '<div class="ui-c-alert ui-c-alert-success">用户资料修改成功</div>';
}
// 如果表单有错误,显示错误信息
$form->render( 'errors' );
创建 HTML 表单
设置变量接收 HTML 表单发送过来的数据
$ask_title = isset( $_POST['ask_title'] ) ? $_POST['ask_title'] : '';
数据验证
if ( empty($ask_title) || strlen($ask_title) > 20 ){
wp_die('昵称必须填写,长度不超过20个字符');
}
保存数据到自定义文章类型及自定义字段中
//首先新建文章对象
$my_post = array(
'post_title' => $ask_title //就是表单提交过来的标题字段,
'post_content' => '这是内容自定',
'post_status' => 'publish',//文章状态
'post_category' => array(8,39) //分类id,可以用来区分表单
);
$new_post = wp_insert_post( $my_post ); //插入文章到数据库中,如果成功,返回新建的文章的id
update_post_meta($new_post, '自定义字段id', $ask_data); //给新建的文章id插入自定义字段