Skip to main content

自定义表单

插件

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插入自定义字段