Введите часть искомого слова, названия или фразы...
↑ ↓
  1. Новые темы озаглавленные с маленькой буквы - удаляются без предупреждения!
  2. Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!

Как сделать ссылкой значение Атрибута?

Тема в разделе "Вопросы, советы и доработки.", создана пользователем ВладБлад, 6 авг 2015.

  1. ВладБлад

    ВладБлад

    Сообщения:
    199
    Симпатии:
    10
    Баллы:
    18
    Сейчас значения атрибутов выводятся текстом. Как сделать их ссылкой? (типа тегов).
    Пример:
    "Тип кожи: жирная."
    "Жирная" - это ссылка на все товары со значением этого атрибута.
     
  2. brash

    brash

    Сообщения:
    11
    Симпатии:
    5
    Баллы:
    3
    я такую задачу решил с помошью плагина
    advanced custom field
    Если кратко - то устанавливаем плагин, в плагине создаем поле к примеру
    jirnaya
    В строке тип поля - выбираем таксономия
    в строке Таксономия - выбираем наш атрибут наверно он будет называтся типа - pa_jirnaya
    Вернуть значение - Объект термина

    а в шаблоне в моем случае в файле woocomerce/single-product/meta.php

    <?php $terms = get_field('jirnay'); if (($terms) != null) : ?>
    <?php foreach( $terms as $term): ?>
    <a href="<?php echo get_term_link( $term ); ?>"><?php echo $term->name; ?>//вот ваша ссылка
    <?php endforeach; ?>
    <?php endif; ?>
    ------
    или еще проще пойти в файле woocomerce/single-product/meta.php написать
    жирная и вставить такую ссылку:
    вашсайт.ру
    /?taxonomy=pa_kommunikatsii&term=jirnaya (помоему чтоб ссылка работала плагин advanced custom field ставить все равно придется)
    вобщем вот такая конструкция должна выйти
    Тип кожи:<a href="вашсайт.ру/?taxonomy=pa_kommunikatsii&term=jirnaya">Жирная</a>
    -----
    Если что сильно не пинайте, сам с woocomerce недавно познакомился, может все это делается проще))
     
  3. searchingman

    searchingman Местный

    Сообщения:
    1.634
    Симпатии:
    552
    Баллы:
    113
    Разве в /single-product/meta.php выводятся не артикул, связанные категории и теги?
    Атрибуты выводятся в \woocommerce\templates\single-product\product-attributes.php
    Нужно "поработать" с этим кодом
    PHP:
                    if ( $attribute['is_taxonomy'] ) {

                        
    $values wc_get_product_terms$product->id$attribute['name'], array( 'fields' => 'names' ) );
                        echo 
    apply_filters'woocommerce_attribute'wpautopwptexturizeimplode', '$values ) ) ), $attribute$values );

                    } else {

                        
    // Convert pipes to commas and display values
                        
    $values array_map'trim'explodeWC_DELIMITER$attribute['value'] ) );
                        echo 
    apply_filters'woocommerce_attribute'wpautopwptexturizeimplode', '$values ) ) ), $attribute$values );

                    }
     
    Последнее редактирование: 11 авг 2015
  4. brash

    brash

    Сообщения:
    11
    Симпатии:
    5
    Баллы:
    3
    Ну я наверно вам костыль предложил, так как мои атрибуты выводятся произвольными полями.
    http://ci62906.tmweb.ru/nedvijimost/3-k-kvartira-59-m-1-5-et/ - вот тут если посмотреть, в поле коммуникации выводятся атрибуты ссылкой.

    В вашем случае даже не знаю хватит ли моих знаний, если что то получится, то я напишу)
     
  5. brash

    brash

    Сообщения:
    11
    Симпатии:
    5
    Баллы:
    3
    вот нарыл, как работает вот тут посмотрите на примере атрибута блочный
    http://ci62906.tmweb.ru/nedvijimost/2-k-kvartira-43-m-5-9-et/
    в functions.php вставляете:

    add_filter ('woocommerce_attribute', 'link_attributes', 10, 3);
    function link_attributes($attributes_string, $attribute, $terms) {
    global $post;
    $taxonomy = get_taxonomy( $attribute['name'] );
    if ( $taxonomy && ! is_wp_error( $taxonomy ) ) {
    $attribute_string = '';
    $terms = wp_get_post_terms( $post->ID, $taxonomy->name );
    if ( !empty( $terms ) ) {
    foreach ( $terms as $term ) {
    if (strlen($attribute_string) > 0) {
    $attribute_string .= ', ';
    }
    $archive_link = get_term_link( $term->slug, $attribute['name'] );
    $attribute_string .= '<a href="' . $archive_link . '">'. $term->name . '</a>';
    }
    }
    }
    return '<p>'.$attribute_string.'</p>';
    }
     
    • Нравится Нравится x 3
    • Это здорово! Это здорово! x 1
  6. ВладБлад

    ВладБлад

    Сообщения:
    199
    Симпатии:
    10
    Баллы:
    18
    Чудесно! Спасибо! Работает! :)