WordPress

[WP Ajax Basic] Membuat Contact Form di WordPress

Oleh Wak Jek• 25 Komentar Arsip

[WP Ajax Basic] Membuat Contact Form di WordPress

Kali ini kita akan membuat WordPress Ajax Contact Form sederhana di WordPress. selanjutnya kita singkat menjadi ACF.

Langkah2nya:

1. define some constants.

define('ACF_PAGE_SLUG', 'contact'); /* page slug dimana nanti form akan dirender*/

define('ACF_EMAIL_RECEIVER','mymail@example.com'); /* email penerima contact*/

define('ACF_SUCCESS_MESSAGE','Pesan anda berhasil dikirim, terimakasih.');

define('ACF_ERROR_MESSAGE','Terjadi kesalahan, email tidak terkirim.');

?>

2. Render langsung script nya di footer, kalau udah Advanced sebaiknya pakai wp_enqueue_script (external file)

add_action('wp_footer', 'acf_form_js');

function acf_form_js(){ ?>

}

?>

3. Form HTML nya,

/* pake filter the_content, supaya nantinya form akan otomatis nempel di page dengan slug 'contact' atau whatever terserah anda, sesuai dengan ACF_PAGE_SLUG di atas*/

add_filter('the_content','render_contact_form');

function render_contact_form($content) {

if(is_page(ACF_PAGE_SLUG)) {

?>





}

else {

return $content;

}

}

?>

3. Sekarang bikin Ajax Callback nya.

add_action('wp_ajax_acf_form_submit',        'acf_callback');

add_action('wp_ajax_nopriv_acf_form_submit', 'acf_callback');

function acf_callback() {

if($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest'){

$name       = trim(strip_tags($_POST['name']));

$email      = trim(strip_tags($_POST['email']));

$subject    = trim(strip_tags($_POST['subject']));

$message    = trim(htmlentities($_POST['message']));

$to         = ACF_EMAIL_RECEIVER;

$header     = "From: $email\r\n" .

"Reply-To: $email\r\n";

$result = Array(

'code'=>0,

'message'=>ACF_ERROR_MESSAGE);

if(!empty($email) AND !empty($message)){

if(@mail($to,$subject,$message,$header)){

$result['code']    = 1;

$result['message'] = ACF_SUCCESS_MESSAGE;

}

}

header('content-type: application/json; charset=utf-8');

echo json_encode($result);

}

exit;

}

?>

4. Cara Pakai

Bikin page/halaman dengan slug 'contact' atau lainnya, yang penting harus sesuai dengan ACF_PAGE_SLUG di atas.

Cara 1: Paste langsung di functions.php

Paste code2 diatas di functions.php di folder theme.

Cara 2: Jadikan sebagai plugin.

Jika ingim menjadikan script ini sebagai plugin, sehingga mudah di aktifkan/nonaktifkan. caranya cukup mudah, cukup menambahkan info Plugin Name pada file dan simpan ke folder wp-content/plugins

contoh info plugin

/*

Plugin Name: Ajax Contact Form

Author: takien

Author URI: http://takien.com/

*/

Code lengkap/yang udah jadi plugin bisa di lihat di https://github.com/takien/WordPress-Ajax-Contact-Form

Tulisan ini sudah berumur: 13 tahun 7 bulan 18 hari. Informasi di dalamnya mungkin sudah tidak relevan, tapi nilai historisnya sangat berharga, terutama bagi saya sebagai penulisnya.

(Dipulihkan dari arsip Facebook oleh Wak Jek)

Tag Terkait:

Komentar (25)

Arsip Statis
Anonim
wew,,, Gokil kak,,, gak menduga wp bisa buat ntu,,,
Sabihul Anwary
ane selama ini cuma pake php sederhana aja om :v kalo gak plugin form :v
Uchan Utchanovsky
izin nyimak gan :D btw ga pake captcha2-an gan? atau postingan di sesi berikutnya :v
Wak Jek
jangan lihat fiturnya, tapi lihat pembelajarannya.
Anonim
(y)
Prast Rahastu
pembelajaran yang baik
Semut Saurus
manstab nice turto (y) agan Wak Hehe Jek ! ane ucapin terima kasih banyak gan..!
Bagus Fikri Yuliono
bro kalo formnya ke gini gmn nih , bisa help gak .____. pliiis http://redpen.io/zxn3hv
Wak Jek
bisa aja, tinggal sesuaikan tag htmlnya
Bagus Fikri Yuliono
bingung bos yg select gmn ?
Wak Jek
<select> <option>1</option> <option>2</option>…See more
Bagus Fikri Yuliono
iii bukan html nya tp caranya o.o kasih dong bos di atas checkbox sama select jg biar aku mudeng .___.
Bagus Fikri Yuliono
biar berfungsi jg kaya text / email / textarea ?
Wak Jek
ya sama aja, yang didetek ntar name="" nya
Bagus Fikri Yuliono
kalau punya aku kan <select id="select01">…See more
Bagus Fikri Yuliono
di kasih name di bagian <select> ya?
Wak Jek
dikasi name, <select id="blabla" name="bagus">
Bagus Fikri Yuliono
menurut http://wp.tutsplus.com/.../adaptive-blog-theme-page.../... itu bentuknya di 1 page itu kayane masbro ga nyentuh function, gmn tuh ?
Bagus Fikri Yuliono
di custom page maksudnya
Wak Jek
>
Wak Jek
?
Wak Jek
gini, functions.php itu optional, klo gk ada gpp, tapi kalau ada file itu, otomatis akan keload. gk perlu di include2 lagi.
Bagus Fikri Yuliono
define('ACF_PAGE_SLUG', 'contact'); berarti custom page nya namanya page-contact.php trus di admin panel bikin page namanya contact ?
Wak Jek
ia. custom page optional tuh, klo gk ada page-contact.php maka yang dipake adalah page.php klo page.php gk ada, maka yang dipake index.php
Bagus Fikri Yuliono
yup klo yg itu uda paham hihihi.. sipsipsip, paling tidak kebutuhanku uda terpenuhi lah :3 yg lain menyusul semisal custom post typenya :3