【问题标题】:Auto-populate input form field from URL parameters从 URL 参数自动填充输入表单字段
【发布时间】:2018-02-19 04:05:03
【问题描述】:
我在 woocommerce 页面 (http://.../product/abcd/) 上有一个按钮,该按钮有一个“立即预订约会”按钮,该按钮链接到另一个页面,其中包含要提交的表单字段 (http://.../booking-appointments/?id=1238&sku=1),其中有 ProductID 和 SKU上一页中该产品的 URL。
我希望它在每次从 URL 参数加载此页面时自动填充 ProductID 字段。
感谢任何帮助。
【问题讨论】:
标签:
php
jquery
wordpress
woocommerce
custom-fields
【解决方案1】:
要在您的预订表单(页面)中自动填充产品 ID 和产品 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 文件或任何插件文件中。
产品 id 和产品 sku 需要在 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已经在您的“轻松约会”预订表格中非常活跃,我不知道这是否会起作用。
此答案与:Add custom "Booking" button to WooCommerce Product single pages
【解决方案2】:
您可以在 URL 中传递产品 ID 和 SKU,并通过$_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 属性以防止用户/客户编辑产品 ID。提交表单时,您可以使用 PHP 从后端保护它。