[РЕШЕНО] Как вывести значения полей продукта Drupal Commerce

Аватар пользователя shevgeny

Подсказите, как вывести ID термина сущности "продукт" (Commerce) через PHP. Именно значения.
Пытаюсь так:
<?php print render($content['product:field_TAXONOMY_TERM']); ?>
— выводится отформатированное поле с меткой и кучей оберток. А мне необходим только чистый ID термина.

Пытаюсь так:

<?php $product commerce_product_load($node->field_product['und'][0]['product_id']);
echo 
$product->field_TAXONOMY_TERM['und'][0]['value']; ?>

— вообще вылетает ошибка.

На d.org копался, но либо я ничего не понимаю, либо не туда смотрю.

UPD: Решение:

<?php print render($content['product:field_TAXONOMY_TERM']['#items'][0]['tid']); ?>
Странно, что никто из сообщества и бывалых разработчиков на Dru не предложил эту вариацию, но в моем случае замена ['und'] банальным ['#items'] решило задачу. Может быть это не совсем кошерно, но всё же может кому-то будет полезно.

Модули и темы:
Тип материала:
Версия Drupal:
0 Thanks

Комментарии

Аватар пользователя BatKor
BatKor 1 год назад

Разобрались? ставьте devel и dpm($content); or krumo($content);

Аватар пользователя shevgeny
shevgeny 1 год назад

пока не разобрался

Аватар пользователя dgastudio
dgastudio 1 год назад

$product->field_TAXONOMY_TERM['und'][0]['value']
->
$product->field_TAXONOMY_TERM['und'][0]['tid']

Аватар пользователя shevgeny
shevgeny 1 год назад

увы, безрезультатно

Аватар пользователя deadie
deadie 1 год назад

 <?php $product commerce_product_load($node->field_product['und'][0]['product_id']);?>
в $product что-то появляется? вар_дамп хоть скиньте что-ли..
кстати, вместо 'und' лучше использовать LANGUAGE_NONE

Аватар пользователя postgres
postgres 1 год назад

а вы перед этим $node= node_load($nid) делаете? Код ваш верен, чудес не бывает, если данные на месте, то все должно быть в порядке

Аватар пользователя shevgeny
shevgeny 1 год назад

вы знаете, все, с кем я общался по этому вопросу, предлагали этот код как работающий, однако в моем случае он не сработал, но сработал другой:
<?php print render($content['product:field_TAXONOMY_TERM']['#items'][0]['tid']); ?>

Аватар пользователя postgres
postgres 1 год назад

как много это объясняет. :) Конечно, от контекста много зависит. То что в вашем случае $content - это render массив многое меняет в понимании вопроса.
Вот вам еще ссылочка на эту тему:

https://www.youtube.com/watch?v=3qjTzP2bHHM

Аватар пользователя shevgeny
shevgeny 1 год назад

Мне нужно было вычленить id термина из поля товара. Об этом я сразу сказал, и привел 2 примера того, как пробовал решить задачу. Видимо, недостаточно доходчиво, сожалею.

Аватар пользователя postgres
postgres 1 год назад

Второй момент - $node->field_product не заполнен.

Аватар пользователя deadie
deadie 1 год назад

«— выводится отформатированное поле с меткой и кучей оберток. А мне необходим только чистый ID термина.»
вы ж поленились посмотреть девелом, что там выводится...

Аватар пользователя shevgeny
shevgeny 1 год назад

дело не в том, что поленился, я просто его не понимаю :) потому и спрашивал у "знатоков")