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

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

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

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


person pkmangg    schedule 11.09.2017    source источник


Ответы (2)


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

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="">

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

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


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

person LoicTheAztec    schedule 11.09.2017
comment
Еще раз спасибо, но где мне добавить ‹input type=text name=productid val=›‹input type=text name=productsku val=› в файлах? - person pkmangg; 11.09.2017

Вы можете передать идентификатор продукта и 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 для защиты от серверной части при отправке формы.

person Edward    schedule 11.09.2017