Saya ingin mengeksekusi kode jquery khusus yang menampilkan dialog masuk ke pengguna jika dia mengklik tombol dan dia tidak masuk. Bagaimana saya bisa melakukannya?
17
Jika Anda ingin tahu apakah pengguna masuk saat ini. Jawaban lainnya memeriksa apakah pengguna masuk atau tidak ketika halaman dimuat bukan waktu ketika Anda menjalankan javascript. Pengguna bisa masuk di tab terpisah misalnya
Letakkan ini di javascript Anda
var data = {
action: 'is_user_logged_in'
};
jQuery.post(ajaxurl, data, function(response) {
if(response == 'yes') {
// user is logged in, do your stuff here
} else {
// user is not logged in, show login form here
}
});
letakkan ini di functions.php Anda
function ajax_check_user_logged_in() {
echo is_user_logged_in()?'yes':'no';
die();
}
add_action('wp_ajax_is_user_logged_in', 'ajax_check_user_logged_in');
add_action('wp_ajax_nopriv_is_user_logged_in', 'ajax_check_user_logged_in');
Periksa
class
atribut untukbody
: Jika tema menggunakanbody_class()
tubuh memiliki kelas yang dinamailogged-in
untuk pengguna yang masuk. Waspadai fungsi tersebut dapat digunakan pada elemenhtml
juga.Contoh
Anda juga dapat menggunakan
is_user_logged_in()
sebagai syarat untuk meminta atau mencetak skrip.sumber
logged-in
kelas. Hanya harus memastikan bahwa tema menggunakanbody_class();
atauget_body_class();
Jika tidak, itu bukan solusi yang sangat andal. Meskipun, saya menggunakan fungsi-fungsi itu di tema saya, jadi itu solusi yang baik untuk saya. Terima kasih atas ide sederhana.Silakan tambahkan body_class () ke tubuh html Anda
Ini akan menambah
logged-in
untuk pengguna yang dicatat maka Anda dapat menggunakan kode jquery berikut untuk mengeksekusi kode kustom Anda hanya untuk pengguna yang dicatat.sumber
Contoh lain, jika Anda ingin menggunakannya untuk panggilan AJAX.
sumber
is_user_logged_in
akan di-cache sebagai salah di DOM ketika asal terkena. Status pengguna harus diabstraksi ke utas tanpa-cache melalui XHR saat menggunakan CDN. Pendekatan @Mridul Aggarwal berfungsi tetapi tanpa header cache dalam respons.Harap perhatikan bahwa tidak ada contoh di atas yang dapat diandalkan jika Anda menggunakan plugin cache halaman, maka kode dalam tag tubuh akan menjadi statis. Juga ada cara sederhana untuk melakukan ini (tanpa permintaan tambahan untuk ajax yang tidak optimal)
Jika Anda ingin menguji status login pengguna dengan javascript, Anda dapat menggunakan kode ini untuk mengatur cookie ketika pengguna login dan menghapus cookie ketika pengguna keluar. Tambahkan ini mis. ke functions.php tema Anda
Kemudian ini merupakan tes cookie sederhana dalam javascript.
sumber