是否可以扩展woocommerce产品的其他端点?

Tim*_*sen 5 php wordpress woocommerce woocommerce-rest-api

有没有一种方法可以以/wp-json/wc/v3/products无损方式扩展woocommerce rest api中的products-object ,因此使用该端点的插件不会损坏。

我目前已经尝试创建自己的剩余端点来复制对象,但是现在缺少大量数据。

我也尝试过类似的方法,但是它似乎没有用。

add_filter( 'woocommerce_rest_prepare_product', 'wc_rest_api_add_custom_data_to_product', 90, 2 );
function wc_rest_api_add_custom_data_to_product( $response, $post ) {

  // retrieve a custom field and add it to API response
  $response->data['your_new_key'] = get_post_meta( $post->ID, '_your_custom_filed_key', true );

  return $response;

}
Run Code Online (Sandbox Code Playgroud)

资料来源:https : //francescocarlucci.com/woocommerce/woocommerce-api-custom-data-default-endpoints/

在这方面的任何帮助将不胜感激。

Tim*_*sen 3

我找到了一种使用 register_rest_field 扩展端点的方法。

\n

这样我就可以扩展(添加)和覆盖(更新)对象。

\n
function register_images_field() {\n        register_rest_field(\n            \'product\',\n            \'images\',\n            array(\n                \'get_callback\'    => function ( $object ) {\n                    $medium_large     = wp_get_attachment_image_src( get_post_thumbnail_id( $object[\'id\'] ), \'medium_large\' );\n                    $medium_large_url = $medium_large[\'0\'];\n                    $large            = wp_get_attachment_image_src( get_post_thumbnail_id( $object[\'id\'] ), \'large\' );\n                    $large_url        = $large[\'0\'];\n\xe2\x80\x8b\n                    return array(\n                        \'medium_large\' => $medium_large_url,\n                        \'large\'        => $large_url,\n                    );\n                },\n                \'update_callback\' => null,\n                \'schema\'          => null,\n            )\n        );\n    }\n
Run Code Online (Sandbox Code Playgroud)\n

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

\n