根据自定义帖子类型匹配/查询自动填充结帐输入

Ash*_*BSc 5 php wordpress woocommerce wordpress-hook hook-woocommerce

我最近遇到了一个让我有点困惑的问题。在我的 WP 设置中,我有一个基本的 WooCommerce 解决方案(对于主题,我使用 Timber starter 主题来利用树枝模板)。除此之外,我正在使用名为“站点”的自定义帖子类型。站点代表建筑站点列表,不要与网站混淆。

Sites CPT 有 X 个高级自定义字段“字段”,以及标准的“标题”,ACF 字段是:

  • 采购订单编号 (po_number) ->字符串-> 必需/非空
  • 作业编号 (job_number) ->字符串-> 必需/非空
  • 街道地址 (street_address) ->字符串-> 必填/非空
  • 办公室名称 (office_name) ->字符串-> 必填/非空
  • Town(城镇)->字符串-> 必需/不为空
  • 县(县)->字符串-> 可选/可为空
  • 邮政编码 (post_code) ->字符串-> 必需/非空

因此,管理员方面的上述大部分内容都是必需的,因此我们知道数据将存在。

我遇到的问题是,在结帐时,我们想要与上述字段匹配的字段,以及电子邮件地址字段(必填)和联系电话字段(必填)。

目的是,当客户输入他们的“职位编号”并点击“查找”按钮时,会启动一个查询,将该职位编号与自定义帖子类型上的职位编号字段进行匹配,如果找到匹配项,该记录中的其他字段填写到结帐表单的其余部分中。


在尝试解决方案方面,我唯一能做的就是匹配和返回数据的数据库查询,但我对 WP 整体还是相当陌生,而且似乎有一些概念,例如 Ajax 具有特定用例在 WP 中,DB 结构似乎很复杂,所以我想我会在这里问一下,看看是否有人有解决方案。

到目前为止,没有代码可以显示,否则我会显示,并且就 WooCommerce 模板而言,它们都是标准的并且没有被修改。

总结一下,目标是:

客户去结帐 -> 输入他们已知的工作编号并点击“查找”-> 运行某种查询以将该工作编号与工作编号的 CPT ACF 字段进行匹配 -> 如果找到匹配项,则返回这些字段并使用该数据填写 Woo Checkout 字段。

非常欢迎任何想法解决方案或建议,在此先感谢您。

dev*_*707 2

您可以使用自定义代码以及一些最佳逻辑来做任何您想做的事情,如下我将向您解释的那样。

请遵循以下逻辑/步骤。

创建自定义字段结帐

首先在结帐页面 woo-commerce 上创建自定义字段: 自定义字段

https://wisdmlabs.com/blog/add-custom-fields-woocommerce-checkout-page/

并且不要忘记添加检查按钮

创建 ajax 调用 ( WP-ajax ) 并在按钮上进行设置。

通过单击按钮创建 ajax 调用并通过作业 ID 获取用户详细信息

您必须编写代码以从 ajax 函数上的 job_number 获取用户数据,该数据是与 ajax 函数匹配的返回用户。( 你 )

通过用户元获取用户(您必须将 job_number 与用户元一起存储才能通过 job_number 获取用户详细信息) get_user_meta:您将从用户元中获取用户 ID。

当您获得用户 ID 时,您可以轻松找到用户 woocommerce 用户元,似乎是送货地址、帐单地址等,并且您应该使用自定义 ajax 调用返回这些数据,并使用 jquery 在 woocommerce 结帐字段中设置。

我希望您能从我的逻辑和步骤中得到启发。

谢谢。