Ada sedikit yang dapat Anda lakukan dengan server Silex yang tidak dapat dilakukan melalui Wordpress tetapi butuh sedikit usaha untuk mendapatkan WP untuk menanggapi panggilan AJAX.
Langkah pertama adalah membuat panggilan tersedia melalui AJAX. Ini membutuhkan penambahan baris ke file functions.php Anda mirip dengan
add_action('wp_ajax_my_ajax_call', 'onno_update_my_ajax_call');
jika panggilan ini akan dibuat untuk tamu dan pelanggan (yaitu bukan ADMIN), Anda juga akan memerlukan saluran.
add_action('wp_ajax_nopriv_my_ajax_call', 'my_ajax_call');
yang melakukan hal yang sama tetapi lebih inklusif.
Langkah selanjutnya adalah membuat panggilan ajax. Anda tidak memberikan contoh panggilan seperti itu sehingga yang bisa saya lakukan adalah menyarankan Anda untuk melihat dokumen $ wpdb . WP memiliki serangkaian panggilan komprehensif untuk mengambil info dari database dan untuk pertanyaan kompleks, Anda selalu dapat menggunakan $ wpdb-> query () yang akan menjalankan SQL arbitrer untuk Anda.
Logika AJAX masuk dalam fungsi my_ajax_call () dan hasilnya harus ditempatkan ke dalam array atau objek. Baris terakhir dari fungsi Anda harus menjadi panggilan ke wp_send_json_success ($ return) di mana $ return adalah objek / array informasi yang akan dikembalikan.
Dengan menggunakan sistem ini, saya dapat menambahkan halaman ke bagian wp_admin untuk memungkinkan pemilik toko membuat pesanan pembelian untuk mengisi ulang dari data WooCommerce dan galeri beban samping untuk variasi (Woo hanya mengizinkan galeri untuk orang tua).
Ini contoh singkatnya:
function my_ajax_call() {
$return['data'] = date('Y-m-d');
wp_send_json_success($return);
wp_die();
}
Dan kemudian di javascript, lebih banyak langkah diperlukan. Untuk satu hal, Anda memerlukan URL WP AJAX yang biasanya /wp-admin/admin-ajax.php
tetapi bisa agak berbeda. Ini sering dibuat tersedia untuk Javascript sebagai ajaxurl global atau mungkin tersimpan di objek lain seperti woocommerce.ajaxurl
. Anda harus membuat objek Javascript dengan elemen tindakan yang menunjuk ke fungsi Anda dan variabel lain yang mungkin perlu Anda lewati untuk panggilan AJAX. Sebagai contoh:
data = {'action':'my_ajax_call'}
atau
data = {'action':'my_ajax_call', 'todo':'getDate'}
(function($){
$.ajax{
url:ajaxurl,
data: data,
success: function(trn) {$('#data').html(trn.data)}
})(jQuery)
HTH