gpt4 book ai didi

php - Woocommerce & Opayo : Add a custom field to the data sent to the API

转载 作者:行者123 更新时间:2023-12-04 08:03:20 24 4
gpt4 key购买 nike

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

  • 最初设置时,没有为 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;
    }
    在进行了大量测试和小的更改后, Reference 中似乎仍然没有显示任何内容。 Opayo 本身的领域?
    请告诉我之前有人遇到过这种情况或知道我可能遗漏了什么,我已经有一段时间没有接触 PHP

    最佳答案

    首先你不使用 $order->get_order_number()尝试获取订单元数据但使用 $order->get_id() 时与 get_post_meta()函数代替。
    现在您还可以使用 WC_Data 方法 get_meta() 用于 $order 对象变量。
    您需要找出通过 opayo_direct_custom_field_vendordata 将该自定义字段值合并到供应商数据所需的关键 slug。过滤钩。
    尝试以下操作(其中我使用“引用”作为关键 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;
    }
    它可以更好地工作......

    关于php - Woocommerce & Opayo : Add a custom field to the data sent to the API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66334711/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com