Как получить значение всех полей, созданных в Pods для карточки товара WooCommerce

Рейтинг: 0Ответов: 1Опубликовано: 16.03.2023

Я в Pods добавил несколько полей к product для карточки товара WooCommerce. Как я могу получить значения этих полей у себя на сайте? Я вот понимаю как получить значение определенного поля, просто для этого нужно знать имя поля, а это не очень гибко.

Ответы

▲ 0Принят

Можно использовать метод find() с указанием пост-тайпа product в pods. Затем циклом пройтись по всем постам и получить значений всех полей.

Пример:

$allProducts = pods( 'product' )->find();

$allFields = [];
foreach ( $allProducts as $product ) {
    $fields = $product->fields();
    
    $productFields = [];
    foreach ( $fields as $field_name => $field_value ) {
        $productFields[$field_name] = $field_value;
    }
    $allFields[] = $productFields;
}

var_dump($allFields);

Если нужно получить значения полей конкретного товара можно обойтись методом get_post_meta и fields() методом:

$productId = 1337; 

$podItemId = get_post_meta( $productId, '_pods_pod_item_id', true );

// Get Pod Objects of Product
$productPod = pods( 'product', $podItemId );

// Use fields method
$productFields = $productPod->fields();

foreach ( $productFields as $fieldName => $fieldValue ) {
    echo "{$fieldName}: {$fieldValue}";
}