У меня сайт на wordpress.
Хочу написать плагин, которые будет выполнять такие функции:
На странице выводится 1 блок (шорткодом например), в нём отображаются:
3 кнопки - только одна из них даёт пользователю 1 балл (рандомная)
Если пользователь "угадал" кнопку - он "получает 1 балл", потом этот блок меняется на следующий такой же, где кнопки будут уже другого цвета, на принцип тот-же.
Задача для пользователя - угадать 3 раза и собрать 3 балла.
PHP знаю на уровне интуиции и небольших правок кода в WP. Не могу понять, с чего начать? Легко ли написать такой код, нужен ли фреймворк и прочее.
Дорогой пользователь, настоятельно рекомендуем еще раз обратить самое пристальное внимание на п. 3.1 регламента работы сервиса (и, в особенности, на его последний абзац).
В противном случае, ваши вопросы будут удаляться по причине тег-спама, а систематические нарушения приведут к блокировке учетной записи.
Нужно смотреть в сторону Ajax (с помощью jQuery). В WordPress jquery работает изначально.
После нажатия на кнопку - идет запрос на сервер, где сервер отдает положительный или отрицательный результат (с помощью (wp_send_json_success/wp_send_json_error).
В зависимости от этого ответа jQuery дальше меняет эти блоки так как вам нужно.
В общем, как я поняла, мне надо решить 2 задачи:
1. Сделать, чтоб при каждом обновлении страницы - одна из кнопок преобретала значение true (рандомно)
2. Добавить функцию
Если сделать как вы хотите - пользователь сможет через исходный код посмотреть какая кнопка правильная и всегда выбирать только её.
Вам нужно отдавать три одинаковых кнопки. При нажатии на кнопку идет ajax запрос на /wp-admin/admin-ajax.php (почитайте подробнее в интернете про это).
В ответ сервер возвращает результат - угадал ли пользователь кнопку (например через rand(1,3) или т.п.).
На стороне сервера, при переходе на страницу, генерируете для зашедшего хэш который будет равен true, сохраняете его как угодно. При генерации на странице рэндомно на любую из кнопок вешаете его, на 2 других еще 2 хэша из того-жа алгоритма, при отправке кнопки, сравниваете с сохраненным, если совпал то ++, перезагружаете кнопки, повторяете процесс