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

Решено Вывод веса вариативного товара woocommerce

Тема в разделе "Ищу плагин, функционал", создана пользователем Arhidiablo, 24 июл 2016.

  1. Arhidiablo

    Arhidiablo

    Сообщения:
    5
    Симпатии:
    1
    Баллы:
    3
    Доброго времени суток, уже неделю голову ломаю, перерыл весь яндекс и гугл. Есть вариативный товар, есть несколько вариантов, в зависимости от выбора меняется вес товара. Не могу вывести вес на страницу товара.
    Сначало был уверен и шел на принцип ( зачем грузить плагином, ведь мне нужно вывести всго одно значение ), пытался вытащить через глобальные переменые. На просторах интернета находил решения но ни одно не дало нужный результат, я так пологаю из за того, что они были 12-13 года, а плагин не стоит на месте, все меняется.
    Позже нарыл плагин от сафали ( VARIATION DETAILS ON PAGE PRODUCT (?) ), но после установки плагина вес так и не стал выводится, думал проблема, в том, что я перекраивал плагин, создал слепок измененого плагина поставил чистый - не работает, запили пару стандартных тем вукомерц, тоже не выводится. Заного перепробовал варианты которые находил прописывать хуки и выводить через шорт коды. Дошел до того, что начал лазать по документации woocommerce и забугорным форумам. Подскажите может есть у кого решение этого вопроса?

    Ashampoo_Snap_2016.07.24_18h46m46s_018_.png Ashampoo_Snap_2016.07.24_18h49m49s_020_.png

    На Вашем форуме находил похожую тему но она к сожалению не помогла решить вопрос.

    Вобщем сам вопрос, как вывести вес вариативного товара ? ( приветствуются любые варианты )

    P.S. Даже делал чистый ВП + плагин вуукомерц + дефолтная тема/готовая фрии тема, очень много вариантов перебрал, толкового пока не нашел.
     
  2. -Vladislav-

    -Vladislav- Местный

    Сообщения:
    212
    Симпатии:
    50
    Баллы:
    28
    • Нравится Нравится x 1
  3. -Vladislav-

    -Vladislav- Местный

    Сообщения:
    212
    Симпатии:
    50
    Баллы:
    28
    var3.jpg
     
    • Нравится Нравится x 1
  4. searchingman

    searchingman Местный

    Сообщения:
    1.634
    Симпатии:
    552
    Баллы:
    113
    Вы правы. Не нашел в интернете решения. Пришлось немного поизучать исходники плагина.

    1. Чтобы вывести значение вариации используется шаблон \wp-content\plugins\woocommerce\templates\single-product\add-to-cart\variation.php. Копируем его правильно в свою тему и начинаем править, добавив вывод веса рядом с ценой.
    HTML:
    <div class="woocommerce-variation-price">
            {{{ data.variation.price_html }}} {{{ data.variation.weight }}}
        </div>
    В итоге получили, что когда значение веса вариации заполнено, то выводится значение с единицей веса (см. скриншот).
    Если значение веса вариации не заполнено, то выводится пустое значение с единицей веса. (см. скриншот).
    Желательно, чтобы вывод был более "дружественным" и если вес не указан, то ничего не выводилось.

    2. Для этого добавляем в functions.php своей темы следующий код
    PHP:
    function my_woocommerce_available_variation($available_variation$product$variation) {
        
    $available_variation['weight'] = $variation->has_weight() ? "Вес товара: ".$variation->get_weight()." гр." "";
        return 
    $available_variation;
    }
    add_filter'woocommerce_available_variation''my_woocommerce_available_variation'20);
    В итоге при указанном весе вариации вывод веса будет следующим (см. скриншот). При пустом значении веса вариации информации о весе не будет вообще.

    Таким же образом можно выводить другие параметры вариации, н-р, артикул или габариты.
     
    Последнее редактирование: 25 июл 2016
    • Нравится Нравится x 2
    • Полезно Полезно x 1
  5. Arhidiablo

    Arhidiablo

    Сообщения:
    5
    Симпатии:
    1
    Баллы:
    3
    -Vladislav- Усложняю не я, а подписанное заказчиком и не преклонное ТЗ :) Но в любом случае, благодарю за информацию !

    searchingman - благодарю за информацию, изначально добавил все это в своей теме, не заработало, в альтернативной скаченной теме, не заработало, откатил чистый плагин, не заработало, но на тестовом домине поднял WP + Woocommerce на дефолтной теме ( Twenty Sixteen ), и стоило сделать первый шаг:

    Ashampoo_Snap_2016.07.25_13h06m26s_021_.png

    И все шикарно отобразилось, я так пологаю, что у меня может быть или ковырнул в ВП чего лишнего ( что то тестил и не, подтер ), или конфликт плагинов ( сейчас на тестовый начну тулить все плагины которые в работе, пошагово ), чуть позже отпишу в чем была трабла !
     
    • Согласен Согласен x 1
  6. Arhidiablo

    Arhidiablo

    Сообщения:
    5
    Симпатии:
    1
    Баллы:
    3
    Обнаружил проблему, вернее ее источник. Изначально хотел на тестовом сайте устанавливать плагины которые стоят на сайте проекта, но пошел от обратного, забэкапил боевой проект и начал отключать плагины. Вся соль была в плагине WC Variations Radio Buttons который передавливает selectы в radiobuttonы, не совсем понимаю такую взаимосвязь, но думаю проблема, в том, что плагин, что выше указанный метод использует одинаковые фильтры?

    Ashampoo_Snap_2016.07.26_13h31m03s_023_.png Ashampoo_Snap_2016.07.26_13h31m54s_024_.png
     
  7. searchingman

    searchingman Местный

    Сообщения:
    1.634
    Симпатии:
    552
    Баллы:
    113
    Посмотрел плагин WC Variations Radio Buttons . Плагин для вывода использует свой шаблон \wp-content\plugins\wc-variations-radio-buttons\templates\single-product\add-to-cart\variable.php и подменяет JS на свой \wp-content\plugins\wc-variations-radio-buttons\assets\js\frontend\add-to-cart-variation.js, который не использует шаблон \wp-content\plugins\woocommerce\templates\single-product\add-to-cart\variation.php

    Исправить ситуацию можно правкой \wp-content\plugins\wc-variations-radio-buttons\assets\js\frontend\add-to-cart-variation.js. Заменить
    PHP:
    $single_variation.htmlvariation.price_html variation.availability_html );
    на
    PHP:
    $single_variation.htmlvariation.price_html variation.availability_html variation.weight );
    После этого вес отображается (см. скриншот).
     
    • Нравится Нравится x 1
    • Полезно Полезно x 1
  8. Arhidiablo

    Arhidiablo

    Сообщения:
    5
    Симпатии:
    1
    Баллы:
    3
    Все никак не зайду поблагодарить ! Очень выручили ! Низкий поклон Вам !
    P.S. Если честно, не пойму почему так сложна реализация вывода веса, учитывая, что это поле изначально заложено в плагине, и что бы его вытащить нужно как минимум бубен и три поколения шаманов в роду :D
     
    • Нравится Нравится x 1
  9. angelpnz

    angelpnz

    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Спасибо за инструкцию, тоже пригодилась!

    Подскажите пожалуйста, как вывести итоговый вес в корзине, главное еще вывод в самом заказе (чтоб менеджер смог подобрать курьера)
    Заранее спасибо!