У меня есть кнопка на странице WooCommerce (http://.../product/abcd/
) с кнопкой «Записаться на прием сейчас», которая ссылается на другую страницу с полями формы для отправки (http://.../booking-appointments/?id=1238&sku=1
) у которого есть ProductID
а также SKU
на URL этого продукта с предыдущей страницы.
Я хочу, чтобы он автоматически заполнял ProductID
поле автоматически каждый раз, когда эта страница загружается из параметров URL.
Любая помощь приветствуется.
Чтобы автоматически заполнить идентификатор продукта и его номер в форме бронирования (страница), попробуйте это (без каких-либо гарантий, так как это может быть проверено на реальной форме на странице формы):
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 продукта
Вы можете передать идентификатор продукта и 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, чтобы защитить его от бэкэнда при отправке формы.