Модератор
Yuri
(@yube)
Если бы было что то вроде
А какая разница? Что укажете в action, туда и перейдет.
естественно по такому адресу ничего не приходит.
Не естественно. Пустой action равносилен текущему адресу, страница должна перезагрузиться методом POST.
Этот вопрос только как то через admin_post.php решается?
Переданные POST-параметры можно получить на любой странице на хуке ‘init’ (и не только).
Прошу прощения. Я ошибочно в aсtion указал пустое значение. Там у меня подставляется адрес страницы аналогичный:
http://localhost/project/page1/
> Переданные POST-параметры можно получить на любой странице на хуке ‘init’ (и не только).
А можно кусочек примера для понимания или ссылку на это дело?
Модератор
Yuri
(@yube)
А можно кусочек примера
add_action('init', function() {
if ( ! isset($_POST['my_form_param']) ) return;
print_r($_POST);
die();
});
Достаточна открыть инструмент разработчика в браузере и там смотреть что скрипт отправляет, хидеры, посты и куда.
Спасибо огромное. Буду разбираться 🙂
Выше приведенный код как понимаю добавлять в functions.php
add_action('init', function() {
if ( ! isset($_POST['product_id']) ) return;
print_r($_POST);
die();
});
На странице, где нужно отправить POST сделал форму:
<form action="<?php echo get_page_link(215);?>" method="post" name="<?php echo "form".$recID?>">
<input type="hidden" name="product_id" value="<?php echo $recID?>">
</form>
а на элемент перехода повесил событие
<a class="products-detail products-detail_click" href="<?php echo get_page_link(215);?>" onclick="document.<?php echo "form".$recID?>.submit();">Подробнее</a>
Однако судя по результату, что то я не так сделал, ибо на итоговую страницу ничего не приходит..
-
Ответ изменён 4 года, 1 месяц назад пользователем shiva2019.
-
Ответ изменён 4 года, 1 месяц назад пользователем shiva2019.
Модератор
Yuri
(@yube)
что то я не так сделал
Забыли в обработчике клика по ссылке после submit()
добавить return false;
в результате чего вместо отправки формы получили просто переход по ссылке.
Спасибо.
После return POST действительно передается. Единственно что, страница теперь пустая..почему не пойму..
Модератор
Yuri
(@yube)
Потому что die();
Убедились, что передается всё как надо — убирайте отладку и делайте нормальный обработчик формы.
Ура. Все получилось. Спасибо!!!
-
Ответ изменён 4 года, 1 месяц назад пользователем shiva2019.