支付插件-使用 woocommerce_api_(action) Action 钩子添加自定义 URL 到WooCommerce
WooCommerce的 woocommerce_api_(action) Action 钩子可以让插件添加一个自定义回调到一个 URL 上面,当这个 URL 被访问的时候,自定义回调中的函数或方法就会执行,这个 API 在 WooCommerce支付网关中会经常用到,除了支付网关,当WooCommerce与第三方服务交互需要接收第三方服务返回的数据时,我们也需要用到这个 API。关于这个 API 的详细信息可参考 WC_API 类文档。
eg byli
//http://yoursite.com/?wc-api=wc_gateway_youpay
$this->return_url = str_replace ( 'https:', 'http:', add_query_arg ( 'wc-api', 'WC_Gateway_Youpay', home_url ( '/' ) ) );
add_action( 'woocommerce_api_wc_gateway_youpay', array( $this, 'check_ipn_response' ) );//設定鈎子return_url
$returnURL = $this->return_url;//plugins_url('class-wc-gateway-youpay.php/validation',__FILE__);
回调 URL 的形式
在WooCommerce2.0 以前,我们可以用类似下面的网址访问自定义回调 URL。
http://yoursite.com/?wc-api=CALLBACK
在WooCommerce2.0 以后, 除了上面带参数的 URL,我们还可以以静态化的方式访问我们的回调。
http://yoursite.com/wc-api/CALLBACK/
添加一个自定义 URL
我们可以通过类似下面的代码添加一个自定义回调 URL:
add_action( 'woocommerce_api_callback', 'callback_handler' );
注意上面的钩子名称 “woocommerce_api_callback” 中的 “callback” 字符,这个就是我们自定义回调,独一无二的名称,会显示在 URL 参数里面,获取自定义回调 URL 的时候也需要用到这个名称。
执行完回调里面定义的操作之后,WooCommerce会退出操作,当然,如果需要,我们也可以在退出操作之前跳转到其他 URL。
获取自定义回调 URL
我们可以通过一个 WC() 实例的一个方法获取上面自定义自定义的回调 URL。
WC()->api_request_url( 'wc_ezship_send_order' )
我们可以在开发 WooCommerce支付网关或者其他服务的时候,通过上面的方法来获取自定义回调 URL 的地址。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
2014-08-27 asp 特殊字符替换
2014-08-27 asp 自我定时删除
2014-08-27 asp 随机生成字符
2013-08-27 ZEN_CART_如何添加自定义页面
2013-08-27 把Wordpress集成到zen-cart里方法 各种修改 经典机制