Wordpress 是否可以将特殊查询参数值传递给WooCommerce产品链接?

Wordpress 是否可以将特殊查询参数值传递给WooCommerce产品链接?,wordpress,woocommerce,hook-woocommerce,woocommerce-rest-api,Wordpress,Woocommerce,Hook Woocommerce,Woocommerce Rest Api,我希望以一种有点奇怪的方式使用WooCommerce,我想知道是否有任何方法可以实现这一点。以下是我想要的工作流程: 步骤#1:从不同的站点子域,提供指向特定虚拟产品的链接,但带有带有唯一用户id号的查询参数 说明:用户位于othersite.example.com,他们在WooCommerce商店中获得购买产品的链接,该商店在https://example.com/product/virtual-product 但是,此产品将是一种支付,用于解锁othersite.example.com网站上

我希望以一种有点奇怪的方式使用WooCommerce,我想知道是否有任何方法可以实现这一点。以下是我想要的工作流程:

步骤#1:从不同的站点子域,提供指向特定虚拟产品的链接,但带有带有唯一用户id号的查询参数

说明:用户位于
othersite.example.com
,他们在WooCommerce商店中获得购买产品的链接,该商店在
https://example.com/product/virtual-product

但是,此产品将是一种支付,用于解锁
othersite.example.com
网站上的某些内容,该网站有自己的用户和身份验证系统。(火力基地)

是否可以通过url查询参数从
othersite.example.com
传递用户id,然后将其包含在订单信息中?

例如,从
othersite.example.com
可以向某人提供类似于
https://example.com/product/virtual-product?userid=00000000000000000
,其中
00000000000000000
是他们在
othersite.example.com
上的用户id

然后,如果该
userid
查询值可以包含在订单中,那么应该可以执行以下步骤

步骤#2:有一个webhook,在购买产品时启动,告诉为
othersite.example.com
管理用户的服务器,具有
userid
00000000000000000
的用户已成功购买该产品

有没有办法接受订单中的自定义值?或者这完全超出了WooCommerce的功能范围

非常感谢。

  • 我相信这可以通过使用直接指向签出页面的重定向/链接来实现,比如:“”(已测试)

  • 在本例中,“checkout”代表您的签出页面的名称,“PRODUCTID”代表所需产品的id,“000000”代表其他网站中重定向用户的用户id

  • 然后,您可以将一个隐藏的输入字段添加到签出页面(到签出表单中,这样您将按顺序看到该值),并使用URL将“000000”(用户id)分配给该字段的值

我希望这能奏效。如果您在实现方面有任何问题,可以问我

-用于添加隐藏输入字段的有用链接:

-使用JS从当前URL获取值的有用链接:

-使用PHP/Wordpress Core从当前URL获取值的有用链接:


-有用的链接(包含4个部分),用于向签出添加自定义字段、验证此字段、将此字段保存到订单字段以及在订单页面中显示此字段的值:

非常感谢,这非常有意义。但是我不能让隐藏的表单值按顺序显示。我添加了这样的输入表单
,但是当创建订单时,就看不到了。我是否需要为它做些什么来识别和保存此字段?我从一个webhook获得了包含所有详细信息的订单,但是缺少“userid”值。您好,您是否将URL中的用户id分配给此输入字段?如果是,您可以使用“console.log”或其他脚本测试它,以确保它获得正确的数据吗?如果这些都可以,那么问题是,正如您所说的,以正确的方式在order部分显示这个输入。要解决这个问题,请检查我的答案所附的链接。如果你解决了这个问题,请告诉我。我通过提供新链接编辑了我的答案,你可以获得更多帮助。我相信最后一个链接会解决你的问题。谢谢。很抱歉,我最终使用了一个完全不同的解决方案,所以我没有尝试和测试所有这些。最后一个环节似乎接近解决问题的答案。我猜您必须使用
'type'=>'hidden'
创建一个隐藏字段,然后在模板页面上添加一些客户端javascript,该javascript接受查询参数并将其添加到隐藏输入的
值中。很高兴听到这个消息。如果您共享您的解决方案(不是所有代码,而是至少步骤/指南),那么其他开发人员可能会使用它:)祝您度过愉快的一天。