Каков наилучший способ показать различный контент на одной странице благодарности, используемой несколькими формами? - PullRequest
1 голос
/ 28 сентября 2019

Я сделал контактную форму как часть плагина Wordpress.Я создал страницу благодарности, и после успешной отправки пользователь перенаправляется на эту страницу благодарности через wp_redirect.

Страница благодарности должна быть одинаковой для нескольких форм, но содержание на этой странице должно меняться в зависимости от того, какую форму отправил пользователь.

Например: если пользователь отправил форму бронирования, сообщение на странице благодарности должно быть "Спасибо за бронирование ".Если пользователь отправил контактную форму, сообщение должно быть «Спасибо за ваше сообщение» и т. Д.

В данный момент я добавляю строку запроса на страницу благодарности.URL и я использую $_GET, чтобы решить, какое сообщение показывать:

https://my-site.com/confirmation/?order-form=book-showcase

/**
* Confirmation page shortcode
* Shortcode: [fy_confirmation_page]
*/
add_shortcode('fy_confirmation_page', 'fy_confirmation_page_shortcode');

function fy_confirmation_page_shortcode() {

    $query_param = htmlspecialchars($_GET["order-form"]);

    switch($query_param) {
        case 'book-showcase':
            _e('Thank you for you booking', 'fy-one');
            break;
        case 'contact':
            _e('Thank you for your message', 'fy-one');
            break;
        default:
            _e('You haven\'t submitted a form', 'fy-one');
            break;
    }
}

Я не уверен, что это лучший способ сделать это.Проблема в том, что страница благодарности может быть доступна, и статическое сообщение можно увидеть, даже если пользователь не завершил отправку.Я не хочу этого.

Какой лучший способ сделать страницу благодарности?

1 Ответ

1 голос
/ 28 сентября 2019

Я думаю, вы можете добавить имя / идентификатор для каждой кнопки формы, а затем проверить, была ли нажата эта кнопка.Вот так:

<form>  //form 1
<input .....>
<button type="submit" name="but_1" id="but_1">Submit</button>
</form>

<form>   //form 2
<input .....>
<button type="submit" name="but_2" id="but_2">Submit</button>
</form>

А потом:

if(isset($_POST['but_1']))
{
   //do smth
}
else
if(isset($_POST['but_2']))
{
   //do smth
}
...