支付插件-使用 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 的地址。

posted @   也许明天  阅读(434)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享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里方法 各种修改 经典机制
点击右上角即可分享
微信分享提示