Woocommerce 和 Opayo:向发送到 API 的数据添加自定义字段

2023-12-23

非常具体的问题,但是,我在我们的 Wordpress / Woocommerce 网站上遇到了我们公司支付网关的问题,我们在该网站上使用 Opayo 插件(适用于 Opayo Direct)。

问题是:

  • 最初设置时,没有选择模板/选项Reference发送到 API 的数据/对象上的字段

最初做这个网站的人然后尝试联系这个现在不受支持的插件的原始开发人员,他们被发送了一些代码以放入另一个名为的插件中PHP Injection代码类似于以下内容:

add_filter( 'opayo_direct_custom_field_vendordata', 'my_opayo_direct_custom_field_vendordata', 10, 2 );

function my_opayo_direct_custom_field_vendordata ( $vendordata, $order ) {

    // Get Order ID
    $order_id = $order->get_order_number();
    $reference = "test_" . $order_id;

    // Get the reference field - set '_reference_field' to the meta_key from your order
    if( isset( get_post_meta( $order_id, '_reference_field', TRUE ) ) ) {
        $vendordata = get_post_meta( $order_id , '_reference_field', TRUE );
        //$vendordata['_reference_field'] = $reference; ### Commented as I'm unsure if this is correct
    }
    
    return $vendordata;
}

经过大量的测试和小的改变后,似乎仍然没有任何东西出现在ReferenceOpayo 本身的领域?

请告诉我有人以前遇到过这种情况或者知道我可能缺少什么,自从我接触 PHP 以来已经有一段时间了


首先你不会使用$order->get_order_number()当尝试获取订单元数据但使用$order->get_id() with get_post_meta()函数代替。

现在您还可以使用 WC_Data 方法 get_meta() 来用于 $order 对象变量。

您需要找到的是您需要使用的关键 slug,通过以下方式将该自定义字段值合并到供应商数据中:opayo_direct_custom_field_vendordata过滤钩。

尝试以下操作(其中我使用“参考”作为关键 slug,用正确的 slug 替换):

add_filter( 'opayo_direct_custom_field_vendordata', 'my_opayo_direct_custom_field_vendordata', 10, 2 );

function my_opayo_direct_custom_field_vendordata ( $vendor_data, $order ) {
    $reference = $order->get_meta('_reference_field');

    if ( ! empty($reference) ) {
        $vendor_data['reference'] = $reference;
    }
    
    return $vendor_data;
}

或使用get_post_meta()功能:

add_filter( 'opayo_direct_custom_field_vendordata', 'my_opayo_direct_custom_field_vendordata', 10, 2 );

function my_opayo_direct_custom_field_vendordata ( $vendor_data, $order ) {
    $reference = get_post_meta($order->get_id(), '_reference_field', true);

    if ( ! empty($reference) ) {
        $vendor_data['reference'] = $reference;
    }
    
    return $vendor_data;
}

它可以更好地工作...

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

Woocommerce 和 Opayo:向发送到 API 的数据添加自定义字段 的相关文章

随机推荐

  • 如何在转到定义时禁用 Peek Definition

    我的vsCode版本是v1 24 1 当我点击转到定义时 它转到定义 同时它打开查看定义 查看定义很烦人 我只是想知道如何在单击转到时禁用它定义 ps v1 23 1没有这个问题 马特 比尔纳的回答可以解决这个问题 This is a bu
  • 新创建的 NSManagedObject 即使在保存后也会返回临时 objectID

    非常简单的情况 不知道为什么它会引起问题 我有一个在子 NSManagedObjectContext 中创建新 NSManagedObject 的视图 当用户按下 完成 时 它会保存子上下文 然后保存父上下文 然后使用新创建的对象的 obj
  • 激活 virtualenv 然后运行另一个 Python 脚本的 Python 脚本?

    在 Windows Vista 上 我需要一个脚本来启动activate 激活 virtualenv 脚本 C Users Admin Desktop venv Scripts 然后 在虚拟环境中 开始manage py runserver
  • Try/Catch 是否比哈希查找更便宜?

    我知道异常捕获可能很昂贵 但我想知道是否在某些情况下它实际上比查找更便宜 例如 如果我有一本大字典 我可以测试一个键是否存在 If MyDictionary ContainsKey MyKey Then MyValue MyDictiona
  • h:commandButton 在 h:dataTable 中不起作用

    我正在尝试执行action通过commandButton里面一个dataTable 但是action当commandButton放置在数据表内 如下所示
  • 传递一个简单的 IEnumerable 来查看并使用 foreach 循环会返回空白屏幕?

    我有一个简单的客户模型类列表 我将其传递到我的视图 我想迭代客户类 但我的观点是告诉我通过返回空白屏幕来结束 请告诉我这里出了什么问题 型号类别 public class Customer public string CustomerNam
  • ASCII 艺术图像转换算法如何工作? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 有一些不错的免费 图像到 ASCII 艺术 转换网站 如下所示 ASCII art org http www ascii art or
  • Laravel 有没有办法执行 .SQL 文件来加载数据

    我有历史数据想要加载到新数据库中 我可以通过运行 MySQL 命令来做到这一点 但我有兴趣知道是否有artisan命令来做到这一点 没有办法使用以下方式导入开箱即用的数据库转储artisan 但是 您可以创建自定义artisan命令 php
  • 什么场景调用fs.close是必要的

    我在nodejs API中找不到更多关于fs close的解释 我想知道什么场景下调用fs close是必要的 例如 var fs require fs fs writeFile home a tex abc or like fs appe
  • codeigniter 2.1.4 支持http方法自定义路由吗?

    我知道 codeigniter 支持自定义路由到另一个类 方法 例如 route product any catalog product lookup 但是 它是否支持基于调用 url 的 http 请求类型的路由 如 laravel 中那
  • Android Facebook 获取所有个人资料信息

    我如何从 Facebook 获取所有用户个人资料信息 如名字 姓氏 电子邮件等 我已经下载了FB SDK https github com facebook facebook android sdk但没有获取个人资料信息的示例 文件夹 fa
  • 如何用另一个 numpy 数组填充 numpy 数组

    我有一个空的 numpy 数组 另一个填充了值 我想用填充的数组填充空的 numpy 数组 x 次 因此 当 x 3 时 最初为空数组 看起来像 populated array populated array populated array
  • 如何使 ActionBar 上的项目分别为左、中、右各一个?

    我在用着actionbarsherlock去做吧 我想要在操作栏中显示的示例 登录 公司徽标 过滤器 我在操作栏中得到的示例 登录 公司徽标 过滤器 我在 res menu 中创建了登录按钮 公司徽标和过滤按钮 以可绘制的形式 activi
  • Django + uwsgi + nginx 重定向到默认页面“欢迎来到 NGINX”

    我是 python 和 django 的初学者 不过 我正在尝试创建一个服务器来部署我的应用程序 但是当我想访问我的应用程序时 我总是得到默认的 nginx 页面 欢迎使用 nginx 该服务器运行 Ubuntu 12 04 精确 我已经使
  • 将 switch 语句案例分组在一起?

    我可能忽略了一些东西 但是 C 中有没有一种简单的方法可以将案例分组在一起 而不是将它们单独写出来 我记得基本我可以这样做 SELECT CASE Answer CASE 1 2 3 4 C 示例 对于需要的人 include
  • 网络日期的国际化

    有人有任何好的日期国际化 架构 吗 就像英语中的it Monday 中文 Monday 荷兰语 maandag 日语 月曜日 所以我的第一个想法是创建某种类 以 59 种不同的语言存储周一到周日的字符串 显然这根本不可扩展 想象一下现在我需
  • 将实体关系模型扩展到表(子类)

    在 EER 模型中存在子类实体 我想知道在真正的 SQL 表中实现这一点的方法是什么 或者是否有任何指南可以帮助我了解如何将实体子类实现到有帮助的表中 谢谢 马丁 福勒的书企业应用架构模式 http www martinfowler com
  • 从经过身份验证的路由获取图像

    我有一个正在运行的图像上传前端 后端代码 现在我希望能够在上传后从服务器获取图像 问题是图像必须位于经过身份验证的路由后面 用户必须在标头或正文中传递 jwt 令牌 当我尝试像这样获取图像时 fetch imageURL method GE
  • hidpi 显示上的 Android 模拟器?

    我在安装了 KDE Neon 的笔记本电脑上运行 android 模拟器 26 1 3 KDE Neon 是基于 Ubuntu 16 04 和最新 KDE 的发行版 我的笔记本电脑的屏幕分辨率是 14 3840X2160 物理 DPI 31
  • Woocommerce 和 Opayo:向发送到 API 的数据添加自定义字段

    非常具体的问题 但是 我在我们的 Wordpress Woocommerce 网站上遇到了我们公司支付网关的问题 我们在该网站上使用 Opayo 插件 适用于 Opayo Direct 问题是 最初设置时 没有选择模板 选项Referenc