Implementasi WP-CRON pada Plugin

implementasi-wp-cron-pada-plugin
Halo, lama sudah saya tidak menulis artikel dikarenakan kesibukan yang saya lakukan. Pada kesempatan ini saya ingin menjelaskan mengenai fungsi dan cara penggunaan WP-Cron pada plugin.

WP-Cron adalah sebuah cron yang secara khusus disediakan oleh WordPress. Script atau code WP-Cron selalu di eksekusi ketika ada vistor mengunjungi website kita. Jadi dengan cara ini WP dapat melakukan penjadwalan untuk melakukan task atau pekerjaan tertentu di waktu yang telah ditentukan.

Akan tetapi waktu untuk melakukan task tersebut sangat bergantung pada jumlah visitor. Jika sebuah webstite jumlah visitor atau kunjungan perharinya sangat sedikit, maka WP-Cron bisa saja terlambat di eksekusi.

Tentu hal ini pasti tidak jadi soal jika blog kita ramai pengunjung dan selalu dikunjungi oleh visitor setiap menitnya, kecil kemungkinan Penjadwalan Cron kita terlambat dieksekusi.

Tentu ada cara untuk mengakali hal ini, yaitu dengan cara menggunakan Cron pada hosting kita. Tapi topik ini akan saya bahas pada artikel yang lainnya.

Penjelasan Mengenai WP-Cron

Ada dua function yang biasanya digunakan untuk mendaftarkan jadwal kita, yaitu:

1. wp_schedule_event
2. wp_schedule_single_event

Terdapat perbedaan antara dua fungsi diatas, yaitu: wp_schedule_event digunakan jika kita ingin menjadwalkan sesuatu yang rutin (hourly, twicedaily, daily). Sedangkan wp_schedule_single_event hanya di eksekusi sekali, setelah itu cron ini akan otomatis dihapus.

Hal Yang Harus diperhatikan dalam menggunakan WP-Cron

Untuk mengaplikasikan WP-Cron pada plugin kamu, perhatikan hal ini, yaitu: Pastikan 2 fungsi diatas hanya di panggil satu kali. Jadi kita membutuhkan kondisi/syarat agar fungsi tersebut dipanggil, pastikan kedua fungsi tersebut hanya di eksekusi ketika sudah memenuhi kondisi yang kita tentukan.

Jika hal ini tidak dilakukan, maka WP akan mencatat Cron yang sama berulang-ulang, sehingga jadwal yang sama akan menumpuk di dalam database. Hasilnya, task yang ingin kita eksekusi jadi di lakukan berulang-ulang. Hal ini tentu sangat memboroskan memory dan memperlambat blog kita.

Cara Implementasi WP-Cron

1. wp_schedule_even

Contohnya jika kita ingin plugin kita melakukan cek secara rutin mengenai ke-valid-an token API. Kita dapat menggunakan script seperti ini. Pengecekan akan dilakukan rutin setiap hari sekali.

register_activation_hook(__FILE__, 'my_activation');

function my_activation() {
    if (! wp_next_scheduled ( 'check_api_token' )) {
	wp_schedule_event(time(), 'daily', 'check_api_token');
    }
}

add_action('check_api_token', 'do_check');

function check_token() {
    $token = get_option( 'your_plugin_token', true );
    if( ! is_token_active( $token ) ){
        // do something
    }
}

2. wp_schedule_single_event

Contohnya kita ingin mengirimkan email pada pelanggan kita pada jam 12 siang. Karena task ini hanya terjadi sekali kita menggunakan wp_schedule_single_event.


$time = strtotime('12:00:00') - ( get_option( 'gmt_offset' ) * HOUR_IN_SECONDS ); //set waktu eksekusi pada jam 12 siang

$args = array( 'email' => 'your@email', 'subject' => 'subject mail', 'message' => 'hello there!!!' );	
							
/* sebelum di wp_schedule_single_event dieksekusi pastikan kita menerapkan kondisi */

if( get_option( 'sent_at_12', true ) != 'done' ){
   wp_schedule_single_event( $time, 'send_email_at_12', $args );
   update_option( 'sent_at_12', 'done' );
}

add_action( 'send_email_at_12', 'do_send_email', 10, 3 );

function do_send_email( $to, $subject, $message ){
   wp_mail( $to, $subject, $message );
}
Seorang WordPress Developer yang sedang menekuni dunia Internet Marketing. Di Personal Blog saya ini, saya akan dengan senang hati untuk berbagi informasi-informasi mengenai WordPress secara gratis.

Tutorial: Cara Upload WordPress Localhost ke Hosting

WordPress adalah CMS yang open source, artinya kita dapat menggunakannya di localhost komputer/laptop kita tanpa ada jaringan internet. Mungkin bagi anda yang ingin sedikit berkreasi dapat menggunakan cara ini untuk sekedar belajar atau “mempreteli” WordPress anda sebelum menguploadnya ke live hosting.

Dengan cara ini juga anda dapat mengeksplore WordPress di server lokal anda tanpa dibebani biaya biaya hosting/domain dan internet, kecuali jika ingin mendownload plugin/theme. Selain itu dalam hal kecepatan juga pastinya akan lebih baik jika anda mengoprek WordPress di localhost daripada di sebuah hosting.

Nah, jika anda sudah puas mengutak-atik WordPress di localhost, maka saatnya anda mengupload WordPress tersebut ke live hosting agar dapat dilihat oleh semua orang.

Namun ada beberapa hal yang perlu diperhatikan jika anda ingin mengupload website WordPress anda ke live hosting. Apa saja itu? Saya akan jelaskan dibawah ini.

Hal-hal yang perlu diperhatikan sebelum mengupload WordPress dari Localhost ke Live Hosting

  1. Database
    Backuplah terlebih dahulu Database WordPress anda, dan lakukan export database ke sebuah file .sql. Untuk melakukan ini anda perlu masuk ke dalam PhpMyAdmin terlebih dahulu (biasanya melalui url: localhost/phpmyadmin/. Lalu pilihlah database WordPress anda, export semua tabel yang ada di dalamnya. Simpanlah dengan nama apa saja. Contoh: backup-db-localhost.sql.

    export-db

    Gambar 1: Export database melalui PhpMyAdmin

  2. wp-config.php
    Ingatlah, bahwa ketika anda melakukan upload file WordPress dari lokal ke live hosting, maka otomatis server WordPress anda juga akan berganti. wp-config.php adalah sebuah file yang berisi pengaturan WordPress, maka sesuaikan wp-config.php anda dengan hosting dan database anda yang baru. Ganti DB_NAME, DB_USER, DB_PASSWORD, DB_HOST dengan server anda yang baru. Caranya: editlah semua line codes yang ada dibawah ini pada wp-config.php anda. File wp-config.php dapat anda temui di direktori utama WordPress anda.

    /** The name of the database for WordPress */
    define('DB_NAME', 'your_new_database_name');
    
    /** MySQL database username */
    define('DB_USER', 'your_new_database_user');
    
    /** MySQL database password */
    define('DB_PASSWORD', 'your_new_database_password');
    
    /** MySQL hostname */
    define('DB_HOST', 'your_new_host');
    
  3. Site Url
    Ketika alamat domain berubah, alamat domain yang tersimpan di WordPress anda pun harus berubah. Caranya tambahkan kode berikut di dalam file functions.php di folder theme anda yang aktif. Gantilah http://yourdomainname.com dengan url domain anda yang baru.

    update_option( 'siteurl', 'http://yourdomainname.com' );
    update_option( 'home', 'http://yourdomainname.com' );
    

Ketika hal-hal diatas sudah anda lakukan. Sekarang anda sudah siap untuk mengupload file WordPress anda ke dalam live hosting.

Cara Upload WordPress dari Localhost ke Live Hosting

Saya asumsikan anda sudah melakukan setup hosting, domain, dan sudah membuat database baru. lalu lakukanlah langkah berikut.

  1. Uploadlah semua file beserta folder yang ada di dalam direktori utama WordPress anda.
  2. Import database yaitu file .sql yang baru saja anda buat sebelumnya melalui phpmyadmin server hosting anda
  3. Ketika file dan database sudah terupload. Sekarang seharusnya website anda sudah bisa di akses melalui domain baru anda. Jika belum bisa, coba cek apakah setting nama hosting, user, password, dsb di wp-config.php ada yang salah? Jika semua sudah terketik dengan sempurna, seharusnya website anda dapat langsung live
  4. Hapuslah code dari file functions.php yang baru saja anda buat, atau anda dapat memberi tanda komentar untuk menonaktifkan code tersebut. Anda perlu menghapus code ini supaya code ini tidak terus di eksekusi saat website anda berjalan. Code ini hanya di eksekusi sekali untuk mengganti alamat domain lama anda ke domain yang baru.
    //update_option( 'siteurl', 'http://yourdomainname.com' );
    //update_option( 'home', 'http://yourdomainname.com' );
    

Demikianlah Tutorial tentang cara upload WordPress localhost ke hosting anda yang baru. Semoga bermanfaat.

Seorang WordPress Developer yang sedang menekuni dunia Internet Marketing. Di Personal Blog saya ini, saya akan dengan senang hati untuk berbagi informasi-informasi mengenai WordPress secara gratis.

Script Membuat Tabel Database Otomatis Saat Install Plugin

wp-create-table-at-first-install

Gambar 1: Ilustrasi membuat table database pada plugin WordPress

Bagi developer yang sedang membuat plugin WordPress, terkadang ada saatnya kita harus menambahkan tabel baru pada database untuk mendukung plugin yang kita buat. Tahukah kamu WordPress sudah menyiapkan sebuah hook untuk hal ini?

register_activation_hook

Hook ini hanya akan dijalankan ketika pertama kali kita mengaktifkan sebuah plugin, selain itu WordPress akan mengabaikan hook ini. Jadi hook ini cocok untuk kita sisipkan script untuk membuat tabel pada Database WP kita.

Contoh Script Menambahkan Tabel saat Mengaktifkan Plugin

Anda bisa tambahkan contoh script berikut ini ke dalam file induk plugin anda. Tinggal sesuaikan saja nama tabel dsb.

function install_plugin_db() {
	global $wpdb;
	
	$wpdb->query( "CREATE TABLE IF NOT EXISTS {$wpdb->prefix}tasks (
					  task_id INT(11) NOT NULL AUTO_INCREMENT,
					  subject VARCHAR(45) DEFAULT NULL,
					  start_date DATE DEFAULT NULL,
					  end_date DATE DEFAULT NULL,
					  description VARCHAR(200) DEFAULT NULL,
					  PRIMARY KEY (task_id)
					) ENGINE=InnoDB" );
}
register_activation_hook( __FILE__, 'install_plugin_db' );
Seorang WordPress Developer yang sedang menekuni dunia Internet Marketing. Di Personal Blog saya ini, saya akan dengan senang hati untuk berbagi informasi-informasi mengenai WordPress secara gratis.

Kesal karena code terhapus saat update plugin WordPress? Begini cara menghindarinya

menghindari auto update wordpress

Gambar 1: Ilustrasi anti auto update

Auto update adalah sebuah fitur yang dimiliki oleh WordPress. Fitur ini akan mengecek update-an plugin atau theme yang anda gunakan, ketika plugin atau theme yang anda gunakan telah memiliki versi yang baru, WordPress dengan otomatis mengupdate Plugin dan Theme anda tanpa anda minta.

Hal ini kadang mengesalkan bagi anda yang sudah susah payah melakukan custom plugin atau custom theme, tetapi tiba-tiba code anda tersebut tertimpa update terbaru.

Dan dalam sekejap saja pengaturan penting anda hilang, apalagi kalau anda tidak memiliki backup. Duh!!!

Oleh karena itu untuk mengantisipasi kasus tak terduga seperti ini, penting bagi kita untuk selalu melakukan backup website kita secara berkala.

Menghindari auto update WordPress

kembali lagi pada topik kita. Jika kita tidak ingin hal ini terjadi pada website kita. Untuk menghindari auto update wordpress maka lakukanlah langkah pencegahan. Bagaimana caranya?

Pertama kita harus memahami dulu hal ini. WordPress melakukan prosedur update dengan melakukan pengecekan versi Plugin/Theme. Jika versi yang anda gunakan lebih jadul daripada yang ada di server WordPress, maka WordPress akan menginstruksikan sistem untuk melakukan update.

Jika anda sudah tahu hal itu, maka yang perlu kita lakukan adalah, akalin si WordPress. Jangan biarkan WordPress mengetahui plugin/theme yang kita pakai sudah jadul. Caranya, naikan saja versi yang tertulis pada source code plugin/theme anda.

Contohnya:

Disable auto update pada plugin

Ubahlah code version pada script pada file utama plugin seperti di bawah ini

/**
 * Plugin Name: XXX Plugin
 * Plugin URI: http://xxxplugin.com
 * Description: This is description
 * Version: 1.0.0
 * Author: xxx author
 */

menjadi seperti ini:

/**
 * Plugin Name: XXX Plugin
 * Plugin URI: http://xxxplugin.com
 * Description: This is description
 * Version: 999
 * Author:  xxx author
 */

Disable auto update pada theme

Ubahlah code version pada style.css pada theme folder seperti di bawah ini

/*
Theme Name: XXX Theme
Theme URI: http://xxxtheme.com
Author: xxx Team
Author URI: http://wordpress.org/
Description: This is description
Version: 1.0
*/

menjadi seperti ini:

/*
Theme Name: XXX Theme
Theme URI: http://xxxtheme.com
Author: xxx Team
Author URI: http://wordpress.org/
Description: This is description
Version: 999
*/

Bagaimanapun cara ini memang bisa mencegah plugin/theme kita di update secara otomatis oleh WordPress, tetapi memang ada kekurangannya. Yaitu plugin kita jadi tidak uptodate lagi, alias ketinggalan zaman. Tetapi itu memang resiko bagi kita yang melakukan modifikasi pada plugin/theme orang lain.

Memang ada cara yang lebih aman untuk melakukan modifikasi tanpa harus kita merubah source code asli pada plugin/theme, yaitu dengan menggunakan WordPress Hooks. Apa itu WordPress Hooks? informasinya bisa dibaca di sini

Demikian informasi untuk mencegah auto update pada WordPress. Semoga bermanfaat.

Seorang WordPress Developer yang sedang menekuni dunia Internet Marketing. Di Personal Blog saya ini, saya akan dengan senang hati untuk berbagi informasi-informasi mengenai WordPress secara gratis.

Bagaimana Meng-Edit Template WooCommerce

woocommerce

Gambar 1: Logo WooCommerce

Jika kita memiliki sebuah toko online berbasis WorPress dan WooCommerce, terkadang apa yang disajikan oleh template WooCommerce secara default belum memenuhi kebutuhan kita.

Apalagi bagi anda yang berprofesi sebagai seorang developer, dan klien anda menginginkan tampilan yang berbeda pada toko online miliknya.

Maka untuk memenuhi kebutuhan klien anda, anda terpaksa mengedit file template pada plugin WooCommerce.

Sedangkan anda tau jika anda mengedit langsung file pada plugin WooCommerce hal ini sangat riskan karena jika suatu saat klien anda mengupdate plugin miliknya, maka semua kerjaan anda akan hilang tertimpa update-an tersebut.

Ternyata WooCommerce sudah mengantisipasi hal ini, sehingga setiap user/developer yang menggunakan WooCommerce dapat merubah template dengan sesuka hati tanpa harus mengubah source code pada plugin aslinya.

Caranya adalah user diberi keleluasaan untuk melakukan override (timpa) pada template yang ada pada plugin WooCommerce dan meletakan file template yang baru pada folder theme yang sedang aktif.

Secara spesifik kita dapat melakukan hal ini dengan cara berikut:

Cara Edit Template WooCommerce

  1. Copy folder “templates” dan semua isinya pada path “wp-content/plugins/woocommerce/templates” dan letakan pada lokasi theme anda yang sedang aktif, lalu rename folder “templates” menjadi “woocommerce”.

    Sebagai contoh, berikut adalah path hasil copy template: wp-content/themes/themeanda/woocommerce/

  2. Lakukan edit pada file php yang anda inginkan di dalam folder “woocommerce” yang baru anda masukan ke dalam theme.

    Setiap perubahan yang anda buat di dalam folder “woocommerce” ini akan mengubah tampilan pada toko online anda, khususnya halaman WooCommerce. Selain itu code anda juga akan terhindar dari update.

  3. Anda dapat mengubah setiap file apapun di dalam folder “woocommerce” sesuka hati, asalkan masih tetap mengikuti alur program WooCommerce. Sebagai catatan: ada kalanya WooCommerce mengganti versi template pada saat update.

    Ketika file template yang anda override masih dalam versi yang lama, kemungkinan akan ada kerusakan pada tampilan anda. Untuk mengantisipasi hal ini, anda hanya perlu mengupdate file yang anda gunakan dengan file template yang baru, lalu sesuaikan code anda yang pernah anda tulis disitu.

cara edit template woocommerce

Gambar 2: Isi folder templates WooCommerce

Demikian adalah cara untuk melakukan edit template WooCommerce tanpa harus kehilangan code yang pernah kita buat ketika update plugin. Saya pun sering melakukan hal ini jika ada request dari klien untuk merubah tampilan toko online miliknya. Semoga informasi berikut ini bermanfaat.

Seorang WordPress Developer yang sedang menekuni dunia Internet Marketing. Di Personal Blog saya ini, saya akan dengan senang hati untuk berbagi informasi-informasi mengenai WordPress secara gratis.

Mengenal wp-config.php WordPress

wp-config.php wordpress

Gambar 1: Contoh code pada wp-config.php

Jika anda menggunakan WordPress self hosted, maka anda perlu mengetahui apa itu wp-config.php WordPress?

wp-config.php adalah sebuah file yang digunakan oleh engine WordPress untuk menyimpan data-data penting untuk pengaturan website, misalnya: database dan host.

Selain itu, juga terdapat banyak pengaturan WordPress yang bisa anda set di dalam file ini. Contohnya: Pengesetan Bahasa, Penggantian Site Url, Mengaktifkan debug mode. Anda bisa mencari tau lebih banyak di sini codex.wordpress.org

Untuk menggenerate website anda, WordPress harus membaca informasi di dalam file wp-config.php. Di antara informasi tersebut ada yang paling vital dan wajib untuk sistem dapat membacanya. Berikut penjelasan mengenai pengaturan yang paling penting dan dibutuhkkan oleh WordPress pada wp-config.php

Pengaturan Database dan Host pada wp-config.php WordPress

WordPress hanya butuh 2 pengaturan ini supaya bisa jalan dengan baik, yaitu: Database dan Host. Jika di wp-config.php anda pengaturan database dan host salah, maka website anda akan error dan tidak tampil sebagai mestinya.

Saat anda menginstall WordPress pertama kali maka sistem akan otomatis membuat file wp-config.php ini di dalam direktori utama website anda.

Anda memang tidak perlu memusingkan hal ini diawal, karena semua itu sudah disiapkan oleh WordPress secara otomatis untuk anda.

Namun apa jadinya bila suatu saat anda ingin pindah hosting? atau mengganti nama database dan user-nya.

Mau tidak mau anda harus meng-edit file wp-config.php tersebut dan mengganti settingan database dan host untuk menyesuaikan hosting baru anda.

Tenang hal ini mudah untuk dilakukan. Anda hanya perlu mengedit file wp-config.php di dalam folder utama website anda menggunakan FTP atau File Manager (cPanel).

Karena itu jika anda berencana pindah hosting, pastikan anda mengetahui data database dan host di hosting baru anda nanti.

Berikut adalah contoh code pengaturan Database dan Host pada wp-config.php:

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'your_database_name');

/** MySQL database username */
define('DB_USER', 'your_database_user');

/** MySQL database password */
define('DB_PASSWORD', 'your_database_password');

/** MySQL hostname */
define('DB_HOST', 'your_host');

Pengaturan di atas adalah untuk menghubungkan WordPress anda dengan Hosting dan Database yang anda gunakan.

Jika data anda salah, maka WordPress tidak akan mengenali hosting yang anda gunakan.

Pastikan isi data Database dan Host dengan benar ketika anda baru saja mengganti hosting atau database anda. Semoga bermanfaat.

Seorang WordPress Developer yang sedang menekuni dunia Internet Marketing. Di Personal Blog saya ini, saya akan dengan senang hati untuk berbagi informasi-informasi mengenai WordPress secara gratis.

Membuat Website WordPress di Dalam Subdirektori

Website WordPress di Dalam Subdirektori

Gambar 1: Membuat WordPress di Dalam Subdirektori.

Bagi anda yang mempunyai website WordPress dan berkeinginan untuk memiliki copy website WordPress dalam bahasa lain pada subdirektori, mungkin artikel berikut ini penting untuk anda baca.

Apa yang dimaksud subdirektori? Subdirektori adalah sebuah direktori cabang yang berada di dalam direktori induk. Biasanya subdirektori ini diakses dengan menambahkan sebuah query baru di akhir domain anda. Contoh: “www.domain-anda.com/subdirektori/”

Secara default jika kita mengakses halaman url subdirektori dari browser maka WordPress akan menunjuk sebuah halaman atau post. Namun jika tidak ditemukan post apapun yang berkaitan dengan url tersebut, maka biasanya WordPress akan menunjuk halaman 404.

Supaya WordPress dapat membaca website baru kita di dalam subdirektori, kita harus meng-edit file .htaccess di dalam subdirektori tersebut.

Langkah-langkah Membuat Website WordPress di Dalam Subdirektori

  1. Login lah kedalam FTP hosting anda.
  2. Buat lah sebuah direktori baru di dalam direktori utama website anda. Contohnya buatlah direktori baru dan beri nama “en”. Pada contoh ini anda berencana membuat website WordPress baru berbahasa inggris. Yang nantinya pengunjung luar negri bisa mengakses website anda yang berbahasa inggris melalui subdirektori en pada “http://domain-anda.com/en/”.
  3. Install WordPress baru, atau copy WordPress lama anda ke dalam direktori yang baru dibuat. Jika anda melakukan copy site, pastikan anda juga mengcopy database website lama dan menempatkannya di database baru. Sesuaikan settingan di wp-config.php dan tambahkan script dibawah ini pada wp-config.php.
    define('WP_HOME','http://domain-anda.com/en/');
    define('WP_SITEURL','http://domain-anda.com/en/');
    
  4. Edit file .htaccess yang terletak di dalam subdirektori anda. Ubahlah code yang sebelumnya seperti ini:
    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    
    # END WordPress
    

    Menjadi seperti ini:

    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /en/
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /en/index.php [L]
    </IfModule>
    
    # END WordPress
    

    Pada contoh script diatas, kita telah mengarahkan index.php ke dalam subdirectory ‘en’. Ini berfungsi agar browser membaca file index.php pada subdirektori.

Ini adalah tutorial sederhana yang dapat memberikan anda solusi cepat. Sebenarnya ada cara lain yang mungkin lebih rumit, tetapi dapat meng-integrasikan sistem antara WordPress yang satu dengan yang lainnya sehingga dapat saling terhubung. Fitur ini dinamakan Multi-Site. Pada kesempatan berikutnya saya akan mencoba membahas fitur Multi-Site ini. Terima kasih.

Seorang WordPress Developer yang sedang menekuni dunia Internet Marketing. Di Personal Blog saya ini, saya akan dengan senang hati untuk berbagi informasi-informasi mengenai WordPress secara gratis.

Ajax WordPress Tutorial

Bagaimana cara menggunakan Ajax di WordPress? Mungkin artikel ini dapat membantu anda untuk mengimplementasikan ajax pada wordpress.

Terutama bagi anda yang baru saja belajar dalam mendevelop sebuah theme atau plugin, artikel ini mungkin sangat diperlukan.

Penjelasan Mengenai Ajax WordPress Tutorial

Sebenarnya WordPress sudah menyediakan API bagi developer yang ingin menambahkan fitur Ajax pada plugin/theme yang mereka buat.

Jadi developer sudah dibekali fitur untuk mengintegrasikan fitur ajax langsung kedalam sistem WordPress, hanya saja developer perlu mengetahui hook apa saja yang di perlukan untuk menggunakannya.

Tanpa bertele-tele, saya akan memberikan contoh penggunaan Ajax sederhana pada sebuah plugin WordPress.

Untuk mengaktifkan fitur ajax kita perlu menjalankan fungsi ajax kita pada 2 jenis action yaitu:

1. wp_ajax_[nama fungsi]: Ajax hanya dijalankan ketika user telah login
2. wp_ajax_nopriv_[nama fungsi] : Ajax dijalankan tanpa harus user melakukan login

Contoh penggunaan Action WP Ajax untuk membuat user baru pada WordPress

add_action( 'wp_ajax_create_user_example', 'create_user' );
add_action( 'wp_ajax_nopriv_create_user_example', 'create_user' );

function create_user(){
	if ( isset($_REQUEST) ) {
		$user_name = $_REQUEST['user_name'];
		$user_email = $_REQUEST['user_email'];
		$user_id = username_exists( $user_name );
		if ( !$user_id and email_exists($user_email) == false ) {
			$random_password = wp_generate_password( $length=12, $include_standard_special_chars=false );
			$user_id = wp_create_user( $user_name, $random_password, $user_email );
			$result['user_id'] = $user_id;
			wp_json_encode($result);
		}
		
		die();
	}
}

sedangkan untuk memanggil action wp ajax kita harus mendeklarasikan fungsi ajax kita menggunakan jQuery, contohnya:

var data = {
		action: 'create_user_example',
		'user_name': jQuery('#user_name'),					
		'user_email': jQuery('#user_email'),					
	};

jQuery.ajax({
	type: 'POST',
	dataType : 'json',
	url: deczen_example.ajaxUrl,
	data: data,
	success: function( response ) {			
		if( response['user_id'] ){
			alert( 'user with id: '+ response['user_id'] +' was added as new user' );
		}
	}
});

Namun sebelum kita dapat menjalankan script-script di atas, kita perlu mendeklarasikan ajaxUrl terlebih dahulu. Berikut adalah contohnya:

add_action( 'wp_enqueue_scripts', 'enqueue_script' );

function enqueue_script(){
	$localize = array('ajaxUrl'=> admin_url().'admin-ajax.php');
	wp_localize_script('jquery','deczen_example',$localize);
}

Demikianlah tutorial singkat cara menggunakan ajax pada WordPress. Semoga bermanfaat.

Referensi:
https://codex.wordpress.org/Plugin_API/Action_Reference/wp_ajax_%28action%29
https://codex.wordpress.org/AJAX

Seorang WordPress Developer yang sedang menekuni dunia Internet Marketing. Di Personal Blog saya ini, saya akan dengan senang hati untuk berbagi informasi-informasi mengenai WordPress secara gratis.

WordPress Hooks: Mengenal Action dan Filter pada WordPress

wp-hooks-image

Gambar 1: Ilustrasi WordPress Hooks

Dari sebuah Ide bahwa user boleh mengubah data yang akan di munculkan pada website/blog berbasis wordpress, maka peran WordPress Hooks akan sangat dibutuhkan disini.

Apa yang dimaksud dengan WordPress Hooks? Hooks adalah API WordPress yang memungkinkan user/developer mengubah data yang diproses/ditampilkan pada website tanpa harus merubah struktur kode aslinya.

Hooks terdiri dari 2 jenis yaitu Action dan Filter. Action bersifat tidak mengembalikan nilai, sedangkan filter mengembalikan nilai.

Biasanya Action digunakan untuk menambahkan sebuah proses, sedangkan Filter berfungsi untuk merubah/atau memodifikasi nilai dari sebuah proses. pada contoh nyata Action dan Filter dapat di gambarkan sebagai berikut:

Contoh Kasus Penggunaan WordPress Action dan Filter

Action:
Developer ingin menambahkan tombol register facebook pada halaman register wordpress. User dapat menggunakan Action yang di sediakan oleh halaman register wordpress.
Filter:
User ingin memberikan harga khusus pada produk WooCommerce pada kamis atau minggu. User dapat memanfaatkan Filter yang di sediakan plugin WooCommerce untuk memodifikasi harga yang hanya di jalankan pada hari kamis atau minggu.

Deklarasi dan Penggunaan Action dan Filter

Action dan Filter hanya dapat di gunakan jika nama Action/Filter sudah di deklarasikan pada source code sebelumnya. Untuk mendeklarasikan nama Action/filter digunakan fungsi berukut:

Action:
do_action();
Filter:
apply_filters();

Untuk menggunakan Action dan Filter yang sudah dideklarasikan sebelumnya digunakan fungsi berikut:

Action:
add_action();
Filter:
add_filters();

Contoh Source Code Action dan Filter WordPress

Source Code Action

echo "Konten sebelum action";

do_action( 'tambahkan_konten' );

untuk memanggilnya kita menggunakan code seperti berikut:

add_action( 'tambahkan_konten', 'nama_fungsi_pemanggil' );

function nama_fungsi_pemanggil(){
  echo "Konten ini ditambahkan menggunakan action";
}

Maka yang akan tampil pada layar adalah:

Konten sebelum action
Konten ini ditambahkan menggunakan action

Source Code Filter

$data = 100;

echo "Data sekarang adalah : ". apply_filters( 'ganti_data', $data );

untuk melakukan filter adalah demikian:

add_filter( 'ganti_data', 'fungsi_ganti_data' );

function fungsi_ganti_data( $data ){

  $data+=100;

  return $data;
}

Maka hasilnya akan seperti ini:

Data sekarang adalah : 200

Demikian adalah tutorial singkat bagaimana cara menggunakan WordPress Hooks yang berupa Action dan Filter. Semoga bermanfaat.

Referensi:
https://codex.wordpress.org

Seorang WordPress Developer yang sedang menekuni dunia Internet Marketing. Di Personal Blog saya ini, saya akan dengan senang hati untuk berbagi informasi-informasi mengenai WordPress secara gratis.