前言介紹
- 這款 WordPress 外掛「Motiforms」是 2017-11-09 上架。
- 目前有 10 個安裝啟用數。
- 上一次更新是 2017-11-10,距離現在已有 2732 天。超過一年沒更新,安裝要確認版本是否可用。以及後續維護問題!
- 外掛最低要求 WordPress 3.8 以上版本才可以安裝。
- 尚未有人給過這款外掛評分。
- 還沒有人在論壇上發問,可能目前使用數不多,還沒有什麼大問題。
外掛協作開發者
外掛標籤
form | forms | symfony | custom form | contact form |
內容簡介
警告
如果您不是開發人員,這個外掛不適合您。 Motiforms 不提供任何 WordPress 管理介面以建立表單。
功能
處理表單邏輯
欄位清洗
欄位驗證
內建 HTML 渲染輔助工具
彈性度高
基於進階的 Symfony 框架
開始使用
要建立簡單的聯繫表單,請將以下程式碼貼到您的 functions.php 文件中。並將 [contact] 簡碼貼到您的聯繫頁面。
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
class ContactForm {
/**
* 表單實體
*
* FormType
*/
private $form;
/**
* ContacForm 建構函式
*
* @return ContacForm
*/
public function __construct() {
$this->define_hooks();
}
/**
* 建立與處理聯繫表單
*
* 這個方法會在 WP 動作鉤執行。
* 它只會在擁有聯繫簡碼的頁面執行。
*
* @return void
*/
public function controller() {
global $post;
// 檢查是否為頁面且頁面內容有簡碼
if ( is_page() && has_shortcode( $post->post_content, 'contact' ) ) {
$factory = mf_get_factory();
// 建立表單
$this->form = $factory->create();
// 將欄位加入表單
$this->form->add( 'full_name', TextType::class );
$this->form->add( 'email', EmailType::class );
$this->form->add( 'message', TextareaType::class );
$this->form->add( 'submit', SubmitType::class );
// 取得請求物件
$request = mf_get_request();
// 處理請求
$this->form->handleRequest( $request );
// 檢查表單是否有效
if ( $this->form->isSubmitted() && $this->form->isValid() ) {
// 從表單取得資料
$data = $this->form->getData();
// 定義篩選器
$filters = array(
'full_name' => FILTER_SANITIZE_STRING,
'email' => FILTER_SANITIZE_STRING | FILTER_SANITIZE_EMAIL,
'message' => FILTER_SANITIZE_STRING,
);
// 欄位清洗
$sanitized_data = filter_var_array( $data, $filters );
// 處理表單資料的動作,例如發送電子郵件
// 以成功參數將使用者重新導向以防止重複提交表單
wp_safe_redirect( $this->get_redirect_url() );
}
}
}
/**
* 渲染聯繫表單。
*
* 這個方法會在聯繫簡碼執行。
*
* @return string
*/
public function render() {
$success = filter_input( INPUT_GET, 'success', FILTER_SANITIZE_NUMBER_INT );
if( '1' === $success ) {
return sprintf('
%s
', __('非常感謝您提交表單,我們將會盡快聯繫您。') ) ;}
return $this->form->createView()->render();
}
}
原文外掛簡介
WARNING
If you are not developer this plugin is not for you. Motiforms do not provide any WordPress admin interface to creating forms.
Features
Handle form logic
Field sanitization
Field validation
Built in html rendering helpers
Flexibility
Based on advanced Symfony framework
Get started
To create simple contact form paste code bellow to your functions.php file. And paste [contact] shortcode to your contact page.
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
class ContactForm {
/**
* Form instance
*
* FormType
*/
private $form;
/**
* ContacForm constructor
*
* @return ContacForm
*/
public function __construct() {
$this->define_hooks();
}
/**
* Create and process contact form
*
* This method is executed by wp action hook.
* It will be executed only on page which has contact
* shortcode.
*
* @return void
*/
public function controller() {
global $post;
// Check if current view is page and page has content shortcode
if ( is_page() && has_shortcode( $post->post_content, 'contact' ) ) {
$factory = mf_get_factory();
// Create form
$this->form = $factory->create();
// Add fields to form
$this->form->add( 'full_name', TextType::class );
$this->form->add( 'email', EmailType::class );
$this->form->add( 'message', TextareaType::class );
$this->form->add( 'submit', SubmitType::class );
// Get request object
$request = mf_get_request();
// Handle request
$this->form->handleRequest( $request );
// Check if form is valid
if ( $this->form->isSubmitted() && $this->form->isValid() ) {
// Get data from the form
$data = $this->form->getData();
// Define filters
$filters = array(
'full_name' => FILTER_SANITIZE_STRING,
'email' => FILTER_SANITIZE_STRING | FILTER_SANITIZE_EMAIL,
'message' => FILTER_SANITIZE_STRING,
);
// Fields sanitization
$sanitized_data = filter_var_array( $data, $filters );
// Perform action with form data e.g. send an e-mail
// Redirect user with success parameter to prevent double submitting form
wp_safe_redirect( $this->get_redirect_url() );
}
}
}
/**
* Render contact form.
*
* This method is executed by contact shortcode.
*
* @return string
*/
public function render() {
$success = filter_input( INPUT_GET, 'success', FILTER_SANITIZE_NUMBER_INT );
if( '1' === $success ) {
return sprintf('
%s
', __('Thank you for submitting the form. We will contact you shortly.') );
}
$form_view = $this->form->createView();
$engine = mf_get_engine();
return $engine['form']->form( $form_view, array('attr' => array('novalidate' => 'novalidate') ) );
}
/**
* Method executed by constructor to define hooks and
* create and render contact form.
*
* @return void
*/
private function define_hooks() {
add_action( 'wp', array( $this, 'controller' ) );
add_shortcode( 'contact', array( $this, 'render' ) );
}
/**
* Build url for form redirect
*
* @return string
*/
private function get_redirect_url() {
$url = get_permalink();
$query = parse_url($url, PHP_URL_QUERY);
// Returns a string if the URL has parameters or NULL if not
if ($query) {
$url .= '&success=1';
} else {
$url .= '?success=1';
}
return $url;
}
}
// Initialize contact form
new ContactForm();
各版本下載點
- 方法一:點下方版本號的連結下載 ZIP 檔案後,登入網站後台左側選單「外掛」的「安裝外掛」,然後選擇上方的「上傳外掛」,把下載回去的 ZIP 外掛打包檔案上傳上去安裝與啟用。
- 方法二:透過「安裝外掛」的畫面右方搜尋功能,搜尋外掛名稱「Motiforms」來進行安裝。
(建議使用方法二,確保安裝的版本符合當前運作的 WordPress 環境。
延伸相關外掛(你可能也想知道)
WPForms – Easy Form Builder for WordPress – Contact Forms, Payment Forms, Surveys, & More 》f="https://wpforms.com/features/pre-built-form-templates/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin" rel="friend nofollow u...。
Ninja Forms – The Contact Form Builder That Grows With You 》建立最親切易用的 WordPress 聯絡表單建構工具, , 使用 Ninja Forms 創建漂亮、親切的 WordPress 表單,讓您感覺像專業網站開發者!, , 100%適合初學者, , ...。
Forminator Forms – Contact Form, Payment Form & Custom Form Builder 》不同於傳統的表單製作外掛,Forminator 是一款易於使用的 WordPress 表單建立外掛,適用於任何網站和情境。它是建立各式各樣表單的最簡單方法-如聯絡表單、...。
Fluent Forms – Customizable Contact Forms, Survey, Quiz, & Conversational Form Builder 》Fluent Forms - 最佳和最快速的聯繫表格建立 WordPress 插件, Fluent Forms 是一個終極使用者友好、可自訂拖放式 WordPress 聯繫表格插件,提供您所有高級功...。
HubSpot – CRM, Email Marketing, Live Chat, Forms & Analytics 》h HubSpot, you can easily create and manage email marketing campaigns through the HubSpot WordPress plugin., Live Chat & Chatbots, Engage with ...。
Formidable Forms – Contact Form Plugin, Survey, Quiz, Payment, Calculator Form & Custom Form Builder 》最先進的 WordPress 表單外掛。使用我們的拖放表單建構器,您可以超越聯絡表單,製作調查問卷、測驗等更多應用。, 市場上最強大的 WordPress 表單建構器外掛,...。
CMB2 》CMB2 是一個開發人員的工具包,用於在 WordPress 上構建 metabox,自定義字段和表單,可以讓您震撼。輕鬆管理帖子、條款、用戶、評論的元數據,或創建自定義...。
SureForms – Drag and Drop Form Builder for WordPress 》, , , , , , , &l...。
Everest Forms – Contact Form, Quiz, Survey, Newsletter & Payment Form Builder for WordPress 》Everest Forms:WordPress 網站上的#1表單建立解決方案, 👉試用一下 (點擊此鏈接可創建演示,測試 Everest Forms。), Everest Forms是最好的WordPress表單...。
Crowdsignal Forms 》The Crowdsignal Forms 外掛可以讓您直接在區塊編輯器中建立和管理投票。, 建立投票與編寫項目清單一樣簡單快速,不再需要嵌入區塊或複製、貼上。, 自訂投票...。
Conditional Fields for Contact Form 7 》此外掛可以讓您的 Contact Form 7 表單加入條件式邏輯。, 當您編輯您的 CF7 表單時,您會看到一個額外的標籤,名為「條件式欄位群組」。您放置在起始標籤和結...。
JetFormBuilder — Dynamic Blocks Form Builder 》JetFormBuilder — 動態區塊表單建立器, 這個功能強大且易於使用的表單建立器外掛讓你在區塊編輯器(Gutenberg)中建立、編輯和設計進階表單類型,不再需要其...。
Ultimate Addons for Contact Form 7 》ate a grid or column layout with Contact Form 7 using the Columns / Grid Layout Addon in Ultimate Addons For Contact Form 7. This allows you to dis...。
Contact Form & SMTP Plugin for WordPress by PirateForms 》Pirate Forms 已不再進行活躍開發。我們建議使用 WPForms,因為它是市場上最方便新手使用的 WordPress 聯絡表單外掛程式。, , 在 2018 年 9 月,Pirate Forms...。
GoDaddy Email Marketing 》透過 GoDaddy Email Marketing Signup Forms 外掛,您可以輕鬆開始建立郵件列表以增加 WordPress 站台的重複流量!使用此外掛在短時間內將訂閱表單新增至您的...。