Hm…
{
"id": 10395,
"sku": "8017924000476",
"name": "TEST BOJA 566",
"variations": []
},
{
"id": 10353,
"sku": "",
"name": "TEST BOJA",
"variations": [
{
"id": 10354,
"sku": "",
"name": "TEST BOJA - 200ml"
},
{
"id": 10355,
"sku": "",
"name": "TEST BOJA - 75ml"
}
]
},
Dakle ovo pozivam sa
wp-json/wc/v2/products?_fields=id,sku,name,variations,&per_page=100&offset=1
E sad pod variations imam prazne stavke i negdje samo navedene IDeve.
Ja sam sa strane wordpressa stavio tamo da prema IDu povuče što želim, dakle
ID
SKU
NAME
no problem mi je kako to izvuči sada van jer response ide po proizvodima, i kada doše na varijabilni koji ima VARIATIONS key i neki values vrti FOREEACH petlju, za svaku varijaciju i napravi novi array. NO on bude kao dio vrijednosti KEYa VARIATIONS:
Ja trebam ovo iz VARIATIONS premjestiti ma svjejedno gdje, može i na kraj , no što god napravim ako išta probam staviti van foreach ostane prazno. Makar je varijabla koja to sprema inicijalizirana van petlje.
Već sam lud, imam sve dobio što mi treba samo trebam to sada formatirati. I nikako.
Kod koji priprema odgovor je:
<?php
function add_custom_value_to_product_response($response, $object, $request) {
// spremaj temp varijacije
$variation_data = array();
// dohvati varijacije i što treba
$variations = $object->get_children();
if (!empty($variations)) {
// prođi varijacije za ID i SKU, NAME
foreach ($variations as $variation_id) {
$variation = wc_get_product($variation_id);
$variation_data[] = array(
'id' => $variation->get_id(),
'sku' => $variation->get_sku(),
'name' => $variation->get_name(),
);
}
//ovaj dio ga doda po varijations key. Ja trebam da ovo gore doda van u matičnu top level array, makar na kraj ili kako god.
$response->data['variations'] = $variation_data;
}
return $response;
}
add_filter('woocommerce_rest_prepare_product_object', 'add_custom_value_to_product_response', 10, 3);
Da dodam znači trebao bi dobiti ovo:
{
"id": 10395,
"sku": "8017924000476",
"name": "TEST BOJA 566",
"variations": [] // ovo isto opcija da se makne ali mislim da neće biti problem.
},
{
"id": 10354,
"sku": "",
"name": "TEST BOJA - 200ml"
},
{
"id": 10355,
"sku": "",
"name": "TEST BOJA - 75ml"
}
},