php - woocommerce 插件在添加到购物车时向服务器发送请求,而不是在结帐时
问题描述
我为 woocommerce 编写了一个插件。这是给快递公司的。
插件如何工作? 如果餐厅安装了我们的插件,餐厅的顾客将在结帐送货清单中看到我们的公司和我们的价格(作为送货公司)。如果客户选择我们公司,我们将下订单并交付给客户。
问题是什么? 我的问题是:每次客户将商品添加到购物车时,woocommerce 都会向我们的服务器发送请求以验证地址并计算运费……但是为什么要向我们的服务器发送请求以将商品添加到购物车大车?我们只需要在结帐时收到请求……而不是在此之前。
在那个阶段,即使我们还没有客户的地址。
插件使用 woocommerce_shipping_init
api 文档。
有什么选择吗?最佳做法是什么?
问题出在哪里? 这是我的代码:
add_action( 'woocommerce_shipping_init', $this, 'shipping_init' );
在该 shipping_init
方法中,我调用我的服务器端点 api 来计算运费。
当我评论这一行时,插件不会发送任何请求。不在 add to cart
,不在 check-out
。(所以插件不再工作)。
当我取消注释此行时,插件将在客户按下时发送请求 add to cart
。check-out
但我希望当客户按下按钮或访问/cart
页面时,它会发送一个按客户地址计算价格的请求 。
我应该怎么办?这有可能解决这个问题吗?
解决方案
推荐阅读
- python - Python3 Raspberry Pi (ModuleNotFoundError: No module named 'RPi') with code and error and RPi.GPIO version
- github - GitHub Actions 对于 PRIVATE Repositories 是否安全且私密?
- servlets - Tomcat7 Maven 插件服务未找到
- javascript - 有没有办法将事件侦听器应用于整个元素类?
- apache-beam - 具有“local-timestamp-millis”反序列化问题的 Avro 联合字段
- linux - chmod/chown 即使不需要也总是写更新
- reactjs - React CRA - 特定页面的元标记(Spring Boot)
- c++ - 如何使用 mingw 编译和链接最小的 .NET C++ 程序
- python - 在 AWS Lambda 上部署应用程序时出现错误
- javascript - Gatsby 无服务器功能错误:404 未找到