错误 Woocommerce REST API 扩展订单“line_items”响应

Posted

技术标签:

【中文标题】错误 Woocommerce REST API 扩展订单“line_items”响应【英文标题】:Error Woocommerce REST API extending Orders "line_items" response 【发布时间】:2021-07-03 08:40:57 【问题描述】:

我正在尝试为 Orders 端点中的 line_items 创建一个新值,但它显示了一个我不知道如何解决的错误!

代码来自:Woocommerce REST API extending order response

其他有用的链接:

https://developer.wordpress.org/reference/functions/register_rest_field/

https://francescocarlucci.com/woocommerce/woocommerce-api-custom-data-default-endpoints/

Is it possible to extend the woocommerce products rest endpoint?

代码

function get_product_order_image( $response, $object, $request ) 
 
    if( empty( $response->data ) )
        return $response;
    $order_pid= $response->data['line_items'][0]['product_id'];
     $l_w_product_meta = get_post_meta($response->data['line_items'][0]['product_id']);
    $order_imgUrl= wp_get_attachment_url( $l_w_product_meta['_thumbnail_id'][0], 'full' );

    $response->data['line_items'][0]['cover_image'] = $order_imgUrl;
 
    return $response;
 

add_filter( "woocommerce_rest_prepare_shop_order_object", array( $this, "get_product_order_image"), 10, 3 );

错误:

由于文件 wp-content/themes/store-child/functions.php 的第 336 行出现错误,您的 PHP 代码更改已回滚。请修复并再次尝试保存。

Uncaught Error: Using $this when not in object context in wp-content/themes/store-child/functions.php:336
Stack trace:
#0 wp-settings.php(528): include()
#1 wp-config.php(89): require_once('/kunden/631823_...')
#2 wp-load.php(37): require_once('/kunden/631823_...')
#3 wp-admin/admin.php(34): require_once('/kunden/631823_...')
#4 wp-admin/theme-editor.php(10

谢谢!!

【问题讨论】:

【参考方案1】:

如果需要将函数添加到主题的functions.php而不是在类中,请尝试替换:

add_filter( "woocommerce_rest_prepare_shop_order_object", array( $this, "get_product_order_image"), 10, 3 );

与:

add_filter( "woocommerce_rest_prepare_shop_order_object", "get_product_order_image", 10, 3 );

它应该可以解决您发布的错误。

【讨论】:

感谢您的回答!但是,它显示了错误:由于文件 Unknown 的第 0 行出现错误,您的 PHP 代码更改已回滚。请修复并再次尝试保存。在没有堆栈帧的情况下抛出异常 你有没有两次声明同一个函数?我不知道他指的是什么错误。 它适用于您建议的第一个更改!我不知道为什么第一次尝试没有,但是非常感谢!!!

以上是关于错误 Woocommerce REST API 扩展订单“line_items”响应的主要内容,如果未能解决你的问题,请参考以下文章

错误 Woocommerce REST API 扩展订单“line_items”响应

登录时 WooCommerce REST API 身份验证失败

使用Javascript的WooCommerce Rest API Oauth

WooCommerce REST API 无效的 JSON

WooCommerce REST API - 按修改日期过滤订单

woocommerce通过rest api验证用户名和密码