반응형
wc_get_products()의 결과를 json 인코딩할 수 없습니다.
저는 다음 코드를 사용하여 베스트셀러 제품을 받아 JSON으로 결과를 보내고 있습니다.그러나 wc_get_products()의 결과를 인코딩할 수 없습니다.
$best_selling_args = array(
'meta_key' => 'total_sales',
'order' => 'DESC',
'orderby' => 'meta_value_num'
);
$products_posts = wc_get_products( $best_selling_args );
// var_dump( $products_posts );
echo wp_json_encode( $products_posts );
wc_get_products ()은(는) 보호된 데이터가 포함된 개체 배열을 반환합니다.
Array
(
[0] => WC_Product_Simple Object
(
[data:protected] => values
.
.
.
)
[1] => WC_Product_Variable Object
(
[data: protected] => values
.
.
.
)
[2]
.
.
.
)
그러나 wc_json_encode()는 이러한 보호된 데이터를 인코딩할 수 없습니다.
그래서 아래와 같은 작업을 해야 json의 모든 데이터를 얻을 수 있습니다.
<?php
$best_selling_args = array(
'meta_key' => 'total_sales',
'order' => 'DESC',
'orderby' => 'meta_value_num'
);
$products_data = wc_get_products( $best_selling_args );
$simplified_data = array();
foreach ($products_data as $key => $single_product_data) {
$simplified_data[$key] = $single_product_data->get_data();
}
echo '<pre>';
print_r( wp_json_encode( $simplified_data ) );
echo '</pre>';
언급URL : https://stackoverflow.com/questions/53496680/unable-to-json-encode-the-result-of-wc-get-products
반응형
'sourcecode' 카테고리의 다른 글
mariadb - 테이블 XXX가 엔진에 없습니다. (0) | 2023.10.21 |
---|---|
인쇄 미리 보기에 배경색이 표시되지 않음 (0) | 2023.10.21 |
SHA256으로 문자열 해시 (0) | 2023.10.21 |
부트스트랩-선택 - 변경 시 이벤트를 발생시키는 방법 (0) | 2023.10.21 |
조각과 해당 컨테이너 활동 사이에 데이터 전달 (0) | 2023.10.21 |