如何触发woocommerce回调函数?

2023-12-11

我正在尝试通过在浏览器中访问回调 URL 来测试我的回调函数是否有效http://localhost:90/wordpress- payment-demo/wc-api/callback_handler/但我一直得到-1。这是我的回调函数。

$this->id = 'paymentplugin';

add_action( 'woocommerce_api_wc_' . $this->id , array( $this, 'callback_handler' ) );

function callback_handler() { 
    header( 'HTTP/1.1 200 OK' );
    echo "callback";
    die();
}

我还尝试使用 Postman 发布到 URL,但收到状态代码 400 错误请求。


这看起来像是自定义 WooCommerce 支付网关的 Webhook。在这种情况下,您可能不需要_wc_ in the add_action功能。

Example:

$this->id = 'paymentplugin';

add_action( 'woocommerce_api_' . $this->id , array( $this, 'webhook' ) );

function webhook() { 
    header( 'HTTP/1.1 200 OK' );
    echo "callback";
    die();
}

你也不需要结束执行,因为这是由 WooCommerce 完成的,因此您可能需要删除die()功能:

$this->id = 'paymentplugin';

add_action( 'woocommerce_api_' . $this->id , array( $this, 'webhook' ) );

function webhook() { 
    header( 'HTTP/1.1 200 OK' );
    echo "callback";
}

另一件需要考虑的事情是headers。我不知道是否需要发送它们,但我最近创建了一个自定义网关,它的 webhook 中只有此代码,并且运行良好:

function webhook() {
  $order_id = isset($_GET['order_id']) ? $_GET['order_id'] : null;
  $order = wc_get_order( $order_id );
  $order->payment_complete();
  wc_reduce_stock_levels($order_id);
}

支付提供商基本上会发送一个包含我之前发送的订单 ID 的 IPN,因此我可以确认订单已付款。

这是我最近创建的自定义网关的链接,希望它能有所帮助:

https://github.com/usainicola/weldpay-woocommerce

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何触发woocommerce回调函数? 的相关文章

  • 电子商务是否从头开始

    我需要开发一个包含电子商务部分的新网站 我来这里是想从你那里得到一些关于我应该走哪条路的提示 该网站将有一个静态部分 其中包括一些静态页面和用于销售产品的电子商务部分 我是 Django 和 PHP 开发人员 但这是我第一次需要开发电子商务
  • Magento:如何在 CMS 页面中包含 php 调用

    按照此页面的说明进行操作 http www magento cc how to use php on a cms page html http www magento cc how to use php on a cms page html
  • 是否可以在 UML 中可视化一堆函数

    我正在改进一个使用类和函数文件 只是包含各种函数的 php 文件 的内容管理系统 例如 我有一堂课叫Admin以及一个功能文件 其功能包括显示管理员概述 创建新管理员 编辑现有管理员 删除管理员 函数文件使用类并执行 mvc 概念的可视化部
  • PHP-MySQLi 连接随机失败并显示“无法分配请求的地址”

    大约两周以来 我一直在处理 LAMP 堆栈中最奇怪的问题之一 长话短说 与 MySQL 服务器的随机连接失败并显示错误消息 Warning mysqli real connect HY000 2002 Cannot assign reque
  • PHP 读取使用 setcookie() 创建的 cookie

    来自manual https www php net setcookie 直到下一次加载 Cookie 应该可见的页面之前 Cookie 才会变得可见 这意味着创建的 cookiesetcookie将无法访问 COOKIE直到下一页加载 有
  • Laravel 5.4 将json保存到数据库

    帮我将 json 保存到数据库 表字段类型 文本 我有带有强制转换数组的模型 class Salesteam extends Model protected casts team members gt array 我想要像这样 index
  • zend 表单验证

    我想知道 Zend Form 如何验证输入 我的意思是它如何知道要验证哪些输入字段 我查看了 php 全局变量 POST GET 但没有看到任何设置为标识符 例如 的内容 以便了解如何验证 有人能给我推荐一些关于这些东西的指南吗 好吧 找出
  • use 语句顺序会影响 PHP 中的功能吗?

    我使用 PHP 的命名空间已经有一段时间了 我认为它对我的编程来说是一个很好的补充 今天早上我想知道一些关于use陈述 我想知道顺序是否use影响我的 PHP 代码的功能 根据 PHP net 使用别名引用外部完全限定名称或导入的能力是命名
  • Symfony 生成器形式、原则和 M:N 关系

    我有一个基本的 M N 设置 包含三个表 candidate position 和 Candidate position 这是 MySQL Workbench 的 ERD 屏幕截图 现在 我们继续讨论表单 在 symfony 生成器的默认世
  • 在 mysqli 准备好的语句程序风格中获取最后插入的 id 的正确方法是什么?

    我正在使用 mysqli 准备好的语句在表中插入记录 如下所示 link mysqli connect localhost my user my password world check connection if link printf
  • Zend RegEx Validator 的自定义有意义的错误消息

    我正在验证表单中的文本字段 如下所示 name new Zend Form Element Text name name gt setLabel First Name gt setRequired true gt addFilter new
  • 错误 #520009 - 帐户受到限制

    我收到 520009 错误 帐户 电子邮件受保护 cdn cgi l email protection被限制 当尝试进行并行付款时 我的代码使用沙箱运行良好 但我切换到实时端点 它开始失败 有问题的帐户是有效的 PayPal 帐户 我使用的
  • 在 PHP 中将整数转换为十六进制值

    如何将PHP中第一类中的数字转换为第二类中的数字 是否有内置函数来转换数字 也是我的标题 将整数转换为十六进制值 甚至正确 class Permission const READ 1 const UPDATE 2 const DELETE
  • 通过 post 使用 php 发送 XML

    我知道有很多类似的问题 但我尝试过摆弄所有的解决方案 但似乎无法使其发挥作用 我正在尝试将 xml 直接发布到 Web 服务并获得响应 从技术上讲 我正在尝试连接到freightquote com 您可以在右上角找到该文档this http
  • 如何从另一个数组值中过滤数组值并返回新数组? [复制]

    这个问题在这里已经有答案了 我有两个数组 all languages and taken languages 第一个包含所有语言 例如 200 种或其他语言 第二个包含之前选择的语言 从 0 到 200 种 我需要删除所有已采用的语言 ta
  • 将客户分配到 magento 的多个客户组

    您好 我想将多个组分配给特定客户 例如 Rajat 客户 属于 批发 零售商 电力 实际上我在上面看到了同样的话题每个客户有多个客户组 https stackoverflow com questions 6153011 multiple c
  • 控制数据是否存在于数组中

    我在mysql中有两个不同的表 我正在使用curl从json文件中获取数据 我的第一个表名称是 tblclients 该表存储客户端数据 我的第二个表名称是 tblcustomfieldsvalues 该表使用 tblclients 表的
  • 创建单个随机 Magento 优惠券

    我遇到了一些麻烦 我想要做的是每次有人订阅我们的时事通讯时 在 Magento 中自动生成一个随机优惠券代码 这张优惠券可减 10 美元 并且有exp 订阅后两周的日期 因此 我正在尝试编写一个简单的脚本 当提交 订阅我们的时事通讯 表单时
  • sqlite3和pdo_sqlite有什么区别

    我正在将我的 Web 应用程序从 MySQL 迁移到 SQLite 数据库 我发现有两个 PHP 扩展用于与 sqlite 通信 php sqlite3 dll and php pdo sqlite dll 什么扩展比较好 或者另一个问题
  • 使用 Webmin 设置 cron 作业

    我正在尝试使用 Webmin 设置一个 Cron 作业每 5 分钟运行一次 它需要定位 php 文件并运行该文件中的 php 脚本 当我在 命令 字段中输入文件路径时 它不起作用 我只是想知道我做错了什么 以及我需要 Cron 作业运行的文

随机推荐

  • Android:ActivityThread.performLaunchActivity 错误

    每次在调试器中启动程序时 我都会收到 ActivityThread performLaunchActivity ActivityThread ActivityRecord Intent 错误 该程序甚至无法启动 任何帮助将不胜感激 我对这个
  • $_GET 和 $_POST 不起作用

    我是 php 的初学者 正在尝试一些非常简单的测试来开始 我似乎无法从 GET 获取任何值 这个测试 php usr bin php h1 GET test h1 p p 调用时会产生以下结果http my url test php aVa
  • Debezium 是否可以配置 table_name => kafka 主题映射?

    我读了http debezium io docs connectors mysql 但我找不到任何关于是否可以配置 debezium 的信息 以便可以将 2 个 或更多 表的更改写入同一个 kafka 主题 在我看来 它总是 1 个表 gt
  • 类的泛型类型参数的推断失败取决于该类的属性

    我有一个相当简单的情况 Typescript 无法推断类型 我想知道为什么 Typescript 会这样 Typescript 类型推断失败的情况 如果您有以下类声明 declare class Swine grunt void decla
  • IE7 中的 javascript split regex 错误

    我正在尝试用这个正则表达式进行拆分 在 javascript 中 我在 IE7 和 FF 中得到不同的结果 Firefox 结果是正确的
  • 如何在 Android RecyclerView 中添加分隔线?

    我正在开发一个 Android 应用程序 我正在使用RecyclerView 我需要添加一个divider in RecyclerView 我尝试添加 recyclerView addItemDecoration new DividerIt
  • Titanium - 从以前版本的 iOS 应用程序中检索 SQLite 数据

    我受委托更新一个本机 iOS 应用程序 但由于我们也打算将其发布到其他平台 因此我们正在使用 Appcelerator 的 Titanium 编写新版本 当前的应用程序使用 SQLite 数据库来存储用户信息 当用户将其应用程序更新到新数据
  • 通用属性的缺点?

    我在我的项目中使用通用属性 但我不知道 使用它们有什么缺点 请告诉我一个场景 它们有一个缺点 下面是我的部分代码 public class GenericResult
  • 比较两个频谱图以找到它们匹配算法的偏移量

    我每天通过互联网录制 2 分钟的广播 总是有相同的开始和结束歌曲 由于广播的确切时间可能会有所不同 或多或少有 6 分钟 因此我必须录制大约 15 分钟的广播 我希望确定这些歌曲在 15 分钟记录中出现的确切时间 这样我就可以提取我想要的音
  • 为什么 python xlrd 在打开 .xlsm 而不是 .xls 时出错

    Python 程序可以正常打开 xls 但无法打开 xlsm 并且会立即失败 xlrd open workbook Some filename xlsm 错误 发生异常 AttributeError bytes 对象没有属性 seek 任何
  • 拉取 JSON 数据

    我正在尝试从 json 数据获取事件日历 我只想突出显示日期 并在用户单击日期时在日历下方更新一个包含事件详细信息的 div 我的应用程序以以下形式提供 JSON Date 02 06 2012 Title Eat Bike and Swi
  • 创建 Zip,然后将文件夹复制到其中

    我正在尝试创建一个 zip 文件 然后将三个文件夹复制到其中 我在第 33 行字符 1 上收到错误 需要错误状态对象 我已经搜索和谷歌搜索 但似乎无法理解我正在阅读的内容或理解我真正需要搜索的内容 无论如何 这是我的代码 Option Ex
  • 如何才能让我的表单始终处于最重要的位置?

    我有这些光标形状的小表格 我需要始终将它们置于一切之上 FormStyle已经fsStayOnTop我使用这段代码 SetWindowPos tempCursor Handle HWND TOPMOST 0 0 0 0 SWP NOMOVE
  • Firefox 和 Chrome 在本地主机上运行缓慢;已知修复不适用于 Windows 7

    众所周知 当启用 IP6 时 Firefox 和 Chrome 在本地主机上速度很慢 在以前版本的 Windows 中 最简单的修复方法是从主机文件中注释掉这一行 如中所述这个问题的答案 1 localhost 然而 正如这个问题所指出的
  • php - 使用户能够收藏帖子

    在我的网站上 我希望允许用户收藏帖子 登录的用户被定向到一个显示所有帖子的页面 在每个帖子下我都放置了一个指向收藏夹的超链接 我希望文本从最喜欢变为最喜欢 反之亦然 我怎么做 HTML 和 PHP
  • 加载图像时如何运行 JavaScript 回调?

    我想知道图像何时完成加载 有没有办法通过回调来做到这一点 如果没有 有没有办法做到这一点 complete 回调 这是符合标准的方法 没有额外的依赖项 并且等待时间不会超过必要的时间 var img document querySelect
  • 如何仅使用 css 以 iphone 经典风格设置聊天气泡样式

    我试图创建一个 html 页面 它看起来类似于消息 线程视图 就像在我们的 android 和 iphone 设备中一样 这是我编码的内容 CSS 样式
  • 扁平化字典的字典

    如何在Python中展平字典的字典 并将它们放入列表中 例如 假设我有以下字典 data id1 x 1 y 2 z 3 id2 x 4 y 5 z 6 如何得到 id id1 x 1 y 2 z 3 id id2 x 4 y 5 z 6
  • 如何在Eclipse默认代码编辑器中添加监听器?

    我想向 Eclipse 中的默认代码编辑器添加一个侦听器 每当打开或关闭新代码文件时都应该触发它 有这样的东西吗 我用谷歌搜索了几个小时 但找到了一个可行的解决方案 我特别关注默认的 Java 代码编辑器 但是 一旦我知道如何连接到这样的编
  • 如何触发woocommerce回调函数?

    我正在尝试通过在浏览器中访问回调 URL 来测试我的回调函数是否有效http localhost 90 wordpress payment demo wc api callback handler 但我一直得到 1 这是我的回调函数 thi