简体   繁体   中英

Auto-populate input form field from URL parameters

I have a button on a woocommerce page ( http://.../product/abcd/ ) that has a button "Book Appointments Now" that links to another page with form fields to submit ( http://.../booking-appointments/?id=1238&sku=1 ) which has ProductID and SKU on the URL of that product from the previous page.

I want it to auto-populate the ProductID field automatically each time this page loads from the URL parameters.

Any help is appreciated.

You can pass the product ID and SKU in the URL and get it via $_GET . Then load it into the input field. Here's an example:

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

Then use $_GET to get the URL parameters:

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

Your input field would be like this:

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

I even added a disabled attribute to prevent the user/customer from editing the product ID. You can use PHP to secure it from the backend when the form gets submitted.

To auto populate the product ID and the product SKU in your booking form (page), you should try this (without any guaranty as it can be tested for real on your page form) :

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;
}

Code goes in function.php file of your active child theme (or theme) or also in any plugin file.

The product id and the product sku need to be passed in url something like: http//www.example.com/booking-page/?id=124&&sku=AH1584

And your <imput> text fields should be something like:

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

So for the product sku is something similar, that you will be able to add with ease…

But as javascript is already very active in you "Easy Appointments" booking form, I don't know if this will work.


This answer is related to: Add custom "Booking" button to WooCommerce Product single pages

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM