Я делаю WordPress сайт, который выглядит и ведет себя не столько как блог, сколько как классический веб-сайт. Мне нужно сделать много пользовательских форм, и теперь у меня есть три одинаково плохих решения для этого.
Можно создать каждую форму в виде файла шаблона темы. Эти страницы будут передавать данные самим себе, и все будет замечательно, за исключением , за исключением того факта, что мне не нравится, что мой плагин и тема так плохо связаны между собой. Я думаю, что тема должна быть только для дизайна, что означает заголовок, нижний колонтитул и т. Д., И этот плагин должен обрабатывать все остальные работы.
Второе решение - создать файл controller.php где-нибудь в папке моего плагина, а затем все запросы должны быть направлены на этот контроллер, который будет контролировать, какую страницу отображать и как. И каждая страница должна быть сделана с использованием коротких кодов WP, расположенных внутри моей папки плагинов. Проблема этого подхода заключается в том, что у меня возникают проблемы с передачей параметров POST после отправки формы. Я бы отправил форму своему контроллеру, который затем перенаправил бы ее на страницу со всеми потерянными параметрами POST.
Третье решение - нацеливание на реальные страницы, на которых отображается контент, с использованием шорткодов WP, и когда пользователь успешно отправит шорткод формы, вместо пользовательской формы вернется сообщение с благодарностью. Проблема здесь заключается в том, что если вы нажмете «Обновить» во время отображения сообщения «Спасибо», браузер снова отправит форму. И снова и снова, каждый раз, когда вы нажимаете обновить.
Простой вопрос. Как бы вы это сделали?
Это был бы первый путь? Я вижу, что многие люди делают именно это, жестко программируя свои собственные формы внутри файлов шаблонов, хотя это может быть не самым чистым решением. Хм ... Тем не менее, я хотел бы отделить свои формы и логику от моей темы.
Greets