Подскажите, как можно реализовать "добавить в избранное" - для авторизованных и не авторизованных пользователей. Примерно, как в интернет магазине ДНС, Эльдорадо и т.д.
В идеале без использования плагинов.
Кажись можно только строки.
При записи в мета-поле массив автоматом отсериализуется (функцией serialize). А при получении автоматом раскодируется обратно в массив.
В куках и локальном хранилище можно как угодно переобразовать массив в строку (можно в json, можно тупо через запятую).
он делает практически все что нужно, даже функционал достойный, про работу на новых WP не знаю, пишут что уже не актуальный, но
Вы можете изучить плагин и использовать его как скелет
Если будете пользоваться без изменений, то ВАЖНО! Плагин дырявый на инъекции в БД, я проверял в базу можно вгонять много лишнего, насколько опасно не знаю.
но полечить можно
if (!is_numeric($post_id)) {
return exit;
}
так же есть версия от поклонников плагина - я сообщил и дырявость поправили !
При клике "добавить в избранное" делаешь ajax-запрос и в мета-поле к пользователю (например favorites), добавляешь переданное id.
А если клиент не авторизован?
для не авторизованных, можно записывать в cookies или localStorage
Массивы хранить тоже можно? Извиняюсь за "банальные" вопросы, опыта не особо много.
Кажись можно только строки.
При записи в мета-поле массив автоматом отсериализуется (функцией serialize). А при получении автоматом раскодируется обратно в массив.
В куках и локальном хранилище можно как угодно переобразовать массив в строку (можно в json, можно тупо через запятую).
Спасибо, буду разбираться.
Искал подобные решения
наткнулся на старый плагин wp-favorite-posts
он делает практически все что нужно, даже функционал достойный, про работу на новых WP не знаю, пишут что уже не актуальный, но
Если будете пользоваться без изменений, то ВАЖНО! Плагин дырявый на инъекции в БД, я проверял в базу можно вгонять много лишнего, насколько опасно не знаю.
но полечить можно
так же есть версия от поклонников плагина - я сообщил и дырявость поправили !
wp-favorite-posts