Saya memiliki formulir dengan beberapa kotak centang dan kotak centang kotak pilih dan itu menunjukkan apa yang diinginkan pengguna melalui panggilan ajax. Masalahnya adalah bahwa ketika pengguna mengklik item dan halaman detail ditampilkan dan kemudian memutuskan untuk kembali ke halaman sebelumnya dia perlu mengklik dan memilih pilihan sebelumnya lagi.
Saya ingin membuat WP untuk menyimpan semua opsi dalam sesi ketika tombol ke halaman detail diklik dan menyimpan info aktual di sesi dan kemudian ketika dia mengunjungi halaman lagi nilai-nilai akan diperiksa dalam sesi dan diatur jika ada ditemukan.
Bisakah itu dilakukan di WP?
Jika ya, bagaimana?
Mari kita sederhanakan itu dan katakan bahwa kita memiliki sesuatu seperti ini di formulir kita:
<input class="car_color" type="checkbox" name="car_color" value="1" />
<input class="car_color" type="checkbox" name="car_color" value="2" />
<input class="car_color" type="checkbox" name="car_color" value="8" />
<input class="car_color" type="checkbox" name="car_color" value="4" />
<input class="car_color" type="checkbox" name="car_color" value="6" />
Saya tidak menggunakan tombol kirim di formulir saya, itu ditangani melalui AJAX pada perubahan input.
Dan dalam hasil saya dapatkan melalui ajax saya memiliki tautan ke halaman detail:
<a class="detail-info-link" href="<?php echo $url ?>">
Tahu bagaimana saya bisa menyimpan nilai-nilai saya di Sesi dan memanggil mereka ketika mengunjungi kembali / memuat kembali / tombol kembali di browser?
Saya harus bisa membaca sesi penyimpanan barang dan menggunakannya via Javascript? dan memicu fungsi pencarian saya melalui ajax yang sudah berfungsi dengan baik.
Saya hanya perlu menyimpan (mungkin sebelum pergi ke $ link di href oleh tombol detail dan membaca dan mengirim variabel sesi (jika ada).
Jawaban:
Sesi tidak diaktifkan di wordpress secara default, jika Anda ingin mengaktifkan sesi php tambahkan ini di awal Anda
functions.php
:Anda sekarang dapat menggunakan
$_SESSION['your-var'] = 'your-value';
untuk mengatur variabel sesi. Lihatlah dokumentasi PHP pada sesi-sesi .Memperbarui:
Ada jawaban kedua, yang menurut saya memiliki nilai juga - sayangnya terhapus, saya menambahkan kembali informasi di sini. Jawabannya merujuk ke WP Session Manager sebuah plugin yang ditulis oleh @eamann sebagai solusi alternatif.
Saya membaca beberapa hal tentang plugin tersebut, tetapi tidak pernah menggunakannya karena - sejauh ini - saya tetap menggunakan sesi PHP - tidak pernah memiliki masalah sehingga saya tidak dapat menggunakannya. Ini adalah pernyataan / komentar oleh penulis plugin sendiri yang saya temukan tentang beberapa kemungkinan keuntungan.
sumber
tambahkan ini di dalam functions.php Anda
sumber
Saya akan menjelaskan cara mengatur sesi nama pengguna dengan plugin Native PHP Sessions for WordPress . Anda dapat menerapkan logika ini untuk masalah Anda.
Tambahkan ini ke file functions.php Anda
$ _POST ['log'] mereferensikan kotak input nama pengguna dari formulir login wordpress. Ketika seorang pengguna masuk, nama pengguna disimpan ke $ _SESSION ['nama pengguna']. Dalam kasus Anda, Anda akan mengubah 'log' ke nama variabel bentuk yang Anda miliki 'car_color'.
Referensi nama pengguna nanti di beberapa file php lain oleh
sumber
Mungkin tidak ada sesi biasa di Wordpress ... pokoknya, Wordpress tahu konsep pengguna. Anda dapat mengelola informasi yang berkaitan dengan pengguna tertentu dengan fungsi
add_user_meta
,update_user_meta
,get_user_meta
, dandelete_user_meta
.Jika Anda memerlukan informasi yang disimpan dengan cara ini dalam JavaScript, Anda dapat menulis skrip PHP kecil yang memuntahkan apa yang Anda butuhkan, dan menyebutnya dengan Ajax.
sumber
Pada halaman PHP yang menerima permintaan AJAX, atur $ _SESSION seperti ini.
Akses variabel $ _SESSION
Tutorial ini membahas lebih detail tentang pengaturan dan pembuangan sesi yang benar.
sumber