Автозаполнение поля формы ввода из параметров URL

У меня есть кнопка на странице WooCommerce (http://.../product/abcd/) с кнопкой «Записаться на прием сейчас», которая ссылается на другую страницу с полями формы для отправки (http://.../booking-appointments/?id=1238&sku=1) у которого есть ProductID а также SKU на URL этого продукта с предыдущей страницы.

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

Любая помощь приветствуется.

1

Решение

Чтобы автоматически заполнить идентификатор продукта и его номер в форме бронирования (страница), попробуйте это (без каких-либо гарантий, так как это может быть проверено на реальной форме на странице формы):

add_action( 'wp_footer', 'autopopulate_product_id_script' );
function autopopulate_product_id_script() {
if( isset( $_GET['id'] ) ):
?>
<script type="text/javascript">
(function($){
$('input[name="productid"]').val("<?php echo $_GET['id']; ?>");
$('input[name="productsku"]').val("<?php echo $_GET['sku']; ?>");
})(jQuery);
</script>
<?php
endif;
}

Код помещается в файл function.php вашей активной дочерней темы (или темы) или также в любой файл плагина.

Идентификатор продукта и артикул продукта должны быть переданы в URL, например: http//www.example.com/booking-page/?id=124&&sku=AH1584

И ваш <imput> текстовые поля должны быть примерно такими:

<input type="text" name="productid" val="">
<input type="text" name="productsku" val="">

Так что для продукта sku это нечто похожее, что вы сможете легко добавить …

Но так как javascript уже очень активен в вашей форме бронирования «Easy Appointments», я не знаю, сработает ли это.


Этот ответ связан с: Добавить кастом "бронирование" кнопка на отдельных страницах WooCommerce продукта

1

Другие решения

Вы можете передать идентификатор продукта и SKU в URL и получить его через $_GET, Затем загрузите его в поле ввода. Вот пример:

http://www.example.com/?product-id=123&sku=abcd456

Тогда используйте $_GET чтобы получить параметры URL:

$productId = $_GET['product-id'];
$sku = $_GET['sku'];

Ваше поле ввода будет выглядеть так:

<label for="product-id">Product ID:</label> <input type="text" name="product-id" id="product-id" value="<?php echo $productId; ?>" disabled>

Я даже добавил disabled атрибут, чтобы запретить пользователю / клиенту редактировать идентификатор продукта. Вы можете использовать PHP, чтобы защитить его от бэкэнда при отправке формы.

2

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector