Подтвердить что ты не робот

Woocommerce получает атрибуты

В Woocommerce вы можете добавить глобальные атрибуты и условия продукта. Так, например:

Size (attribute)
small  (term)
medium (term)
large  (term)

Это независимое от продукта. Затем вы можете выбрать из предварительно определенных атрибутов продукта.

Мне нужно получить все термины в атрибуте с php. Поэтому выберите необходимый атрибут, например размер, а затем верните массив, содержащий [small,medium,large].

Кажется довольно простым, но я не могу найти никакой помощи в этом.

4b9b3361

Ответ 1

Немного запутанный, особенно при просмотре документов WooCommerce, поскольку нет абсолютно никакого упоминания о получении списка терминов/атрибутов.

Атрибуты сохраняются как пользовательская таксономия, а термины - это таксономические термины. Это означает, что вы можете использовать собственные функции Wordpress: Справочник по функциям Wordpress get_terms()

Нажав на атрибут в WooCommerce, вы можете посмотреть URL-адрес, и вы можете видеть, что все они добавлены с помощью "pa _"

Скорее всего, вам нужно:

$terms = get_terms("pa_size");
foreach ( $terms as $term ) {
echo "<option>" . $term->name . "</option>";
}

Ответ 2

Я хотел иметь возможность получить все различные атрибуты из встроенного сервера, которые были установлены, и получить их в массиве, с которым я буду работать, я взял некоторый код из файла class-wc-admin-attributes.php и изменил его для моих нужд:

$attribute_taxonomies = wc_get_attribute_taxonomies();
$taxonomy_terms = array();

if ( $attribute_taxonomies ) :
    foreach ($attribute_taxonomies as $tax) :
    if (taxonomy_exists(wc_attribute_taxonomy_name($tax->attribute_name))) :
        $taxonomy_terms[$tax->attribute_name] = get_terms( wc_attribute_taxonomy_name($tax->attribute_name), 'orderby=name&hide_empty=0' );
    endif;
endforeach;
endif;

var_dump($taxonomy_terms);

exit;

Это будет охватывать все таксономии атрибутов, извлекать термины для каждого, оставляя вас с массивом терминных объектов для работы с каждой таксономией.

Ответ 3

Я использую это:

echo '<h1>variations</h1>';
mario( $product->get_available_variations());
echo '<h1>Atributos</h1>';
mario($product->get_attributes());
echo '<h1>Poste Terms</h1>';
mario(wp_get_post_terms( $post->ID, 'pa_color'));


function mario($texto){
    echo '<pre>';var_dump($texto);echo '</pre>';
};

Действительно с: "wp_get_post_terms ($ post- > ID, 'pa_color')" Я ищу только один термин, но идея состоит в том, чтобы зациклировать ключ ['name'], который возвращает эту функцию.