php - 是否可以扩展 woocommerce 产品休息端点?

标签 php wordpress woocommerce woocommerce-rest-api

有没有办法以非破坏性的方式扩展 woocommerce Rest api /wp-json/wc/v3/products 中的产品对象,以便使用该端点的插件,不会损坏。

我目前尝试创建自己的休息端点来复制该对象,但现在缺少大量数据。

我也尝试过类似的方法,但似乎不起作用。

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;

}

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

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

最佳答案

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

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

function register_images_field() {
        register_rest_field(
            'product',
            'images',
            array(
                'get_callback'    => function ( $object ) {
                    $medium_large     = wp_get_attachment_image_src( get_post_thumbnail_id( $object['id'] ), 'medium_large' );
                    $medium_large_url = $medium_large['0'];
                    $large            = wp_get_attachment_image_src( get_post_thumbnail_id( $object['id'] ), 'large' );
                    $large_url        = $large['0'];
​
                    return array(
                        'medium_large' => $medium_large_url,
                        'large'        => $large_url,
                    );
                },
                'update_callback' => null,
                'schema'          => null,
            )
        );
    }

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

关于php - 是否可以扩展 woocommerce 产品休息端点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58023657/

相关文章:

javascript - 使用 JS 或其他方法单击后更改嵌入式 youtube 播放器的不透明度

php - 获取革命 slider 短代码

php - 使用 date_i18n 格式化 WooCommerce 传递消息的日期

php - 获取所有 WooCommerce 订阅

wordpress - 根据产品 ID 获取产品变体

php - 需要多个数据映射器的域对象

php - openssl_pkey_export 和 "cannot get key from parameter 1"

css - 怎么把图片放在左边,文字放在右边

php - PHP 中的构造函数

php - 使用 Zend_Pdf 时出现 PDF 文档错误