Не очень люблю плагины, по этому делаю своё решение без плагина
// Пользователи которым понравился пост
// Тут я получаю массив ID пользователей которые нажали "мне нравится"
$post_users = get_post_meta( $post_id, 'likes_post' );
// Далее я проверяю есть ли ID пользователя в списке "лайкнувших"
// Если нет в списке - я делаю следующее:
// Кладу ID пользователя в конец массива
array_push( $post_users, $user_id );
// Обновляю список "лайкнувших" пользователей
update_post_meta( $post_id, 'likes_post', $post_users );
Всё работает хорошо, только вот результат возвращается вот такой:
a:1:{i:0;i:1;}
array (
0 => 1,
)
Если нажать еще раз "мне нравится", возвращается вот такой:
a:2:{i:0;a:1:{i:0;i:1;}i:1;i:1;}
array (
0 =>
array (
0 => 1,
),
1 => 1,
)
Во первых оно не должно больше "лайкаться", а во вторых первое значение уходит на другую мерность.
Подскажите, как избавиться от перехода в другую мерность?
Вот полный код:
$post_id = $_REQUEST['post_id'];
$user_id = get_current_user_id();
// Пользователи которым понравился пост
$post_users = get_post_meta( $post_id, 'likes_post' );
// Посты которые понравились пользователю
$user_posts = get_post_meta( $user_id, 'likes_user' );
if ( in_array( $post_id, $user_posts ) || in_array( $user_id, $post_users ) ) {
// Удаляем лайк
} else {
// Добавляем лайк
array_push( $post_users, $user_id );
array_push( $user_posts, $post_id );
update_post_meta( $post_id, 'likes_post', $post_users );
update_post_meta( $user_id, 'likes_user', $user_posts );
}