简介
Wordpress表单模块,以短代码形式添加表单控件。有自定义的属性供设置。通过wp_mail()函数(基于PHPMailer)实现发送邮件功能。可将表单内容保存到数据库中。附件(文件、图片)可保存到服务器目录中,并且有较高的灵活性。非常适合入门级Wordpress开发者使用。
Wordpress表单模块,以短代码形式添加表单控件。有自定义的属性供设置。通过wp_mail()函数(基于PHPMailer)实现发送邮件功能。可将表单内容保存到数据库中。附件(文件、图片)可保存到服务器目录中,并且有较高的灵活性。非常适合入门级Wordpress开发者使用。
该模块不是一个标准的插件,需要将模块文件放到指定位置进行引用。
require 'pack/contact-form/index.php';
添加到主题的functions.php文件的任意位置以引用该功能。如果基于该模块二次开发,应酌情考虑引入位置。
至此,基本配置步骤结束。
进入后台,左导航选择OPE Form Config(配置)进入配置页面。下面是对照表及描述。
带有标记的项目,可在模版页面的配置中进行覆盖。
Recipient administrator email | 管理员邮箱,用于接收网站提交的邮件。如添加多个邮箱请用半角逗号分开。 |
Recipient administrator email CC | 管理员邮箱抄送邮箱,用于接收网站提交的邮件。如添加多个邮箱请用半角逗号分开。 |
Email from address | 发件箱吗。不支持多个邮箱。 |
Email from name | 发件人 |
Auto reply | 自动回复。On为发送自动回复邮件,Off为不发送自动回复邮件。 |
Email Format | 邮件格式。HTML格式与文本(Plain text)格式。 |
Fields check | 验证顺序。Later为提交时验证,Immediately为立即验证。 |
Validate Code | 是否使用验证码。ON为开,OFF为禁用。 |
Store mail in DB | 是否将表单提交的内容保存到数据库中。ON为保存,OFF为不保存。 |
Post type name (admin menu) | 自定义文章类型。例:邮箱。注意:此自定义文章类型不是传统的custom post type。custom post type的资料依然保存在wp_posts和wp_postmeta表中。但是该模块的内容保存在{prefix}opeform_mailbox(用来保存邮件)和{prefix}opeform_mailbox_terms(用来保存邮件分类)表中。所以想要二次开发,检索数据库内容时需要自定义查询函数。 |
Category name (admin menu) | 自定义文章类型分类菜单名称。例:邮箱分类。注意:此自定义文章分类不是传统的terms。terms的资料保存在wp_terms,term_taxonomy和wp_term_relationships表中。但是该模块的内容保存在{prefix}opeform_mailbox(用来保存邮件)和{prefix}opeform_mailbox_terms(用来保存邮件分类)表中。所以想要二次开发,检索数据库内容时需要自定义查询函数。 |
Admin eamil title/subject | 管理员收到的邮件标题。例:来自XXX的邮件。如果需要在标题中插入表单中填写的姓名和(或)邮箱,可使用{{from_name}}和(或){{from_email}}。注意,仅支持{{from_name}}和(或){{from_email}},且,在模版中使用短代码时,短代码中设置了from_name和from_email为true。如下: |
Auto reply eamil title/subject | 自动回复邮件标题。例:来自XXX的邮件,我们已经收到您提交的信息,感谢您对本公司的支持... |
Auto reply email content top | 自动回复邮件主题内容顶部文本 |
Auto reply email content bottom | 自动回复邮件的底部内容 |
Text at the top of the confirm screen | 表单确认屏幕顶部文字 |
Thanks text | 邮件发送成功屏幕提示文字 |
Button "Next" | “下一步”按钮文字 |
Button "Prev" | “上一步”按钮文字 |
Button "Send" | 提交按钮文字 |
Alert text of mandatory/required item | “必须”项目提示文字 |
Alert text of mandatory/required item for “Other” field | “其它”项目需要填写具体内容时的提示文字 |
Alert text when error occurred | 当发生错误时的提示文字 |
Invalid format of email address | 邮件格式不正确 |
Invalid format of phone number | 电话格式不正确 |
Email does not match previously entered | 确认邮箱与输入的邮箱不匹配 |
Validate Code not matched | 验证码不正确 |
Content contains illegal character string | 内容包含不合规字符 |
Send failed | 发送失败 |
Authentication failed | 验证失败 |
Button "Return" | “返回”按钮 |
Button "File upload" | “上传”按钮 |
File too large | 文件体积过大 |
File type unsupported | 不支持的文件类型 |
Select image and crop | 选择图片并裁切 |
Button "Image crop" | “裁切图片”按钮 |
Button "Cancel crop" | “放弃裁切”按钮 |
Unsupported image file type | 不支持的图片格式 |
Alert text of image too small | 图片尺寸过小的提示文字 |
Alert text of image too large | 图片尺寸过大的提示文字 |
Image upload text | “上传图片”文字 |
SMTP support | SMTP支持 |
host | 域名 |
user name | 用户名 |
password | 密码 |
port | 端口 |
secure type | 加密类型。端口465通常是SMTPS,端口587通常是startTLS。 |
File upload folder name | 上传文件夹名称。 注意:名称确定后,保存配置后,需要确认根目录有没有创建同名文件夹。因为权限问题,程序不一定能自动创建文件夹。 |
Remove attachments when delete email | 删除邮件时删除相应的附件 |
Save files to server | 将文件保存到服务器上 |
Upload MAX size | 上传大小。注意:这里设置的大小无法大于服务器设置的大小 |
Image crop width | 裁切图片的宽度(px) |
Image crop height | 裁切图片的高度(px) |
Source image width | 上传图片的最大宽度(px) |
Source image height | 上传图片的最大高度(px) |
Automatic return | 发送成功后自动返回 |
waiting time | 自动返回延迟时间 |
Back to URL | 返回页面的URL。默认返回本页面。 |
Session lifetime | Session有效期 |
Timezone | 时区。参考文档:https://www.php.net/manual/en/timezones.php |
Name Format | 用户名称格式 |
Auto fill address via zipcode | 自动通过邮编填充地址(仅对日本邮编有效) |
Include DEBUG info in admin email | 管理员邮箱是否包含DEBUG信息。如IP,来源,客户端信息等。 |
Google reCAPTCHA v3 | Google reCAPTCHA 第三版 |
Badge Visibility | 徽标可见性。Show显示,Hide隐藏。徽标就是开启google reCAPTCHA后页面右下角显示的标志。 |
Recipient's email | 收件人邮箱。 |
这部分内容是Wordpress创建模版页面的内容。简单创建模版有两种:
<?php /* Template Name: Contact */ ?>
这样,在创建页面时,可以在编辑器右边栏“模版”选项卡中找到该模版。
请严格遵守下面的结构。一个.item对应一个.control,一个.control里有一个控件短代码。
<div class="ope-form">
<div class="item">
<div class="title">姓名</div>
<div class="control">
<?php echo do_shortcode('[opeform use="text"]'); ?>
</div>
</div>
<div class="item">
<div class="title"></div>
<div class="control">
<?php echo do_shortcode('[opeform use="submit"]'); ?>
</div>
</div>
</div>
最外层的块还有data-form-category(表单所处分类),data-confirm-text(确认步骤提示文字),data-thanks-text(发送成功屏幕文字),data-thanks-page(发送成功页面),data-return-redirect(发送成功返回的URL)这几个自定义的属性。如果不设置,将被自动设置成默认值。
需要注意的是data-thanks-page的使用方法。
data-thanks-page属性用于设置“发送成功页面”,该页面是相对于当前页面的路径。开发者需要自行创建页面及模版,将页面slug如下面的示例赋给data-thanks-page属性。
“发送成功页面”模版的顶部要有短代码echo do_shortcode('[opeform_thanks_page]');
,用于阻止重复刷新该页面。
默认表单的一切步骤都在同一页面完成,包括发送成功提示。所以,如果自定义的“发送成功页面”,最后发送成功提示将转到data-thanks-page页面。
如果使用data-thanks-page定义了自定义的“发送成功页面”,data-thanks-text和data-return-redirect是无效的。
基于上述规则,示例如下:
<div class="ope-form"
data-form-category="简历箱"
data-confirm-text="请确认您输入的信息"
data-thanks-text="感谢您的支持"
data-return-redirect="https://localhost/mysite/">
...
</div>
或:
<div class="ope-form"
data-form-category="简历箱"
data-confirm-text="请确认您输入的信息"
data-thanks-page="./thanks/">
...
</div>
即生成后的html代码为:
<input type="text" ...
[opeform use="text" required="" from_name="true" class="" title="Name" name="user_name" length="40" placeholder=""]
即生成后的html代码为:
<input type="email" ...
[opeform use="email" required="" title="" from_email="true" name="user_email" confirm="true" length="50" placeholder=""]
即生成后的html代码为:
<select name="xxx" ...
[opeform use="select" required="" title="" name="" option=""]
如果需要不同的选项发送至不同的邮箱,那么在option值的每个项目后面加上对应的邮箱用竖线分割,多个邮箱用半角分号分开。比如:
[opeform use="select" option="项目1|a@domain.com;a2@domain.com;a3@domain.com,项目2|b@domain.com,项目3|c@domain.com"]
即生成后的html代码为:
<input type="checkbox" ...
[opeform use="checkbox" required="" title="" name="" option="" quantity=""]
如果需要不同的选项发送至不同的邮箱,那么在option值的每个项目后面加上对应的邮箱用竖线分割,多个邮箱用半角分号分开。比如:
[opeform use="checkbox" option="项目1|a@domain.com;a2@domain.com;a3@domain.com,项目2|b@domain.com,项目3|c@domain.com"]
如果有其它项目,且需要填写具体项目,短代码示例如下:
[opeform use="checkbox" required="" quantity="2" title="性别" name="gender" option="男,女" hasother="其他,required,请填写其他项目"]
这里有个特殊属性hasother,就是has(有)other(其它)。默认不显示需要填写“其它”具体项目的文本框。只有选择“其他”项时才会显示。
值有三部分组成,用半角逗号分开。
如果既不是必须,也没有placeholder:hasother="其他,,"。半角逗号是要有的。
如果其它项目也需要发送至不同的邮箱,那么在hasother值的最后加上对应的邮箱用竖线分割,多个邮箱用半角分号分开。比如:
[opeform use="checkbox" option="男,女" hasother="其他,required,请填写其他项目|a@domain.com;a2@domain.com"]
即生成后的html代码为:
<input type="radio" ...
[opeform use="radio" required="" title="" name="" option=""]
如果需要不同的选项发送至不同的邮箱,那么在option值的每个项目后面加上对应的邮箱用竖线分割,多个邮箱用半角分号分开。比如:
[opeform use="radio" option="项目1|a@domain.com;a2@domain.com;a3@domain.com,项目2|b@domain.com,项目3|c@domain.com"]
[opeform use="verification" notice=""]
[opeform use="submit"]
[opeform use="image" required="" crop="" title="" name=""]
[opeform use="file" required="" size="" title="" name="" accept=""]