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

Решено Картинка простого товара в сгруппированном товаре.

dim70

Опытный
Добрый день! Вот этот код добавляет картинку к простому товару в составе сгруппированного:

PHP:
add_action( 'woocommerce_grouped_product_list_before_price', 'woocommerce_grouped_product_thumbnail' );

function woocommerce_grouped_product_thumbnail( $product ) {
    $image_size = array( 70, 70 );  // array( width, height ) image size in pixel 
    $attachment_id = get_post_meta( $product->id, '_thumbnail_id', true );
    ?>
    <td class="label">
        <?php echo wp_get_attachment_image( $attachment_id, $image_size ); ?>
    </td>
    <?php
}
Как сделать так, чтобы эта выводимая картинка стала кликабельна, то есть чтобы при нажатие картинка увеличивалась? Пример http://www.alkomprof.ru/tovar/kollektsiya-plitki-city-london-proizvodstvo-cerrol-polsha/ 43434.JPG
 

dim70

Опытный
мне посоветовали использовать плагин Fancybox for WordPress. В этом плагине есть раздел "Extra FancyBox Calls (advanced)" который позволяет насколько я понял применять возможности плагина ко всем картинкам на странице сайта. Я использовал следующий код в разделе плагина "Extra FancyBox Calls (advanced)"
PHP:
jQuery(".label").fancybox({
  'transitionIn': 'elastic',
  'transitionOut': 'elastic',
  'speedIn': 600,
  'speedOut': 200,
  'type': 'iframe'
});
434124124.JPG

какой-то результат получился - стало открываться модальное окно, но в нём не полное изображение картинки, как хотелось бы мне, а просто страница ошибки 404 http://www.alkomprof.ru/tovar/kollektsiya-plitki-talisman-31x60-proizvodstvo-saloni-ispaniya/. Как всегда истина, где то рядом, но пока ухватить её не могу. Помогите советом.
 
Последнее редактирование:

dim70

Опытный
вариант решения как бы с другой стороны:
PHP:
add_action( 'woocommerce_grouped_product_list_before_price', 'woocommerce_grouped_product_thumbnail' );

function woocommerce_grouped_product_thumbnail( $product ) {
    $image_size = array( 300, 300 );  // array( width, height ) image size in pixel
    $attachment_id = get_post_meta( $product->id, '_thumbnail_id', true );
    ?>
    <td class="label">
        <?php echo wp_get_attachment_image( $attachment_id, $image_size );


              echo '<a href="' . $large_image_url[0] . '" title="' . the_title_attribute('echo=0') . '" >';
   the_post_thumbnail('thumbnail'); // этот вот код я добавил
              echo '</a>'

        ?>
    </td>
    <?php
}
и теперь выводится две маленьких картинки, одна под другой, и нижняя стала кликабельна, но снова ведёт не на полное изображение, а на страницу сайта. Как мне сделать, чтобы при нажатие на маленькую картинку, она становилась большой?
 

dim70

Опытный
скажите, мой вопрос очень сложный, что никто не смог ответить, или же наоборот очень простой?
 

Rodrigez

Форумчанин
скажите, мой вопрос очень сложный, что никто не смог ответить, или же наоборот очень простой?
Код:
add_action( 'woocommerce_grouped_product_list_before_price', 'woocommerce_grouped_product_thumbnail' );
function woocommerce_grouped_product_thumbnail( $product ) {
    $image_size = array( 300, 300 );
    $attachment_id = get_post_meta( $product->id, '_thumbnail_id', true );
    ?>
    <td class="label">
        <?php echo '<a href="'. wp_get_attachment_image_url ( $attachment_id, "full" ) .'" title="'. the_title_attribute('echo=0') .'" >'. wp_get_attachment_image( $attachment_id, $image_size ). '</a>' ?>
    </td>
    <?php
}

Если не будет открываться попапом через fancybox попробуйте добавить в ссылку <a ... rel="fancybox" ... href
 

dim70

Опытный
поменял свой код на Ваш. после этого вместо 5 товаров с картинками стал отображаться всего один и без картинки
было
PHP:
add_action( 'woocommerce_grouped_product_list_before_price', 'woocommerce_grouped_product_thumbnail' );

function woocommerce_grouped_product_thumbnail( $product ) {
    $image_size = array( 70, 70 );  // array( width, height ) image size in pixel
    $attachment_id = get_post_meta( $product->id, '_thumbnail_id', true );
    ?>
    <td class="label">
        <?php echo wp_get_attachment_image( $attachment_id, $image_size ); ?>
    </td>
    <?php
}
21.JPG
стало
PHP:
add_action( 'woocommerce_grouped_product_list_before_price', 'woocommerce_grouped_product_thumbnail' );
function woocommerce_grouped_product_thumbnail( $product ) {
    $image_size = array( 300, 300 );
    $attachment_id = get_post_meta( $product->id, '_thumbnail_id', true );
    ?>
    <td class="label">
        <?php echo '<a href="'. wp_get_attachment_image_url ( $attachment_id, "full" ) .'" title="'. the_title_attribute('echo=0') .'" >'. wp_get_attachment_image( $attachment_id, $image_size ). '</a>' ?>
    </td>
    <?php
}
22.JPG
 

Rodrigez

Форумчанин
поменял свой код на Ваш. после этого вместо 5 товаров с картинками стал отображаться всего один и без картинки
Попробуйте варианты "full" заменить на 'full' или 'large' или wp_get_attachment_image_url (...) вообще на
PHP:
... wp_get_attachment_image_url( $attachment_id, '', 1 ) ...
 

dim70

Опытный
вот если я использую такой вариант
PHP:
add_action( 'woocommerce_grouped_product_list_before_price', 'woocommerce_grouped_product_thumbnail' );

function woocommerce_grouped_product_thumbnail( $product ) {
    $image_size = array( 70, 70 );  // array( width, height ) image size in pixel
    $attachment_id = get_post_meta( $product->id, '_thumbnail_id', true );
    ?>
    <td class="label">
        <?php echo '<a href="' . $large_image_url[0] . '" title="' . the_title_attribute('echo=0') . '" >';
   the_post_thumbnail('thumbnail');
              echo '</a>'
      
        ?>
то получаю картинку кликабельной, title у картинки правильный появляется, но при нажатие на картинку открывается просто страница на которой находишься, http://www.alkomprof.ru/tovar/kollektsiya-plitki-akvarel-2-proizvodstvo-kerabud-rossiya/
 

Rodrigez

Форумчанин
вот если я использую такой вариант
Не открывается потому что ссылка не вставляется вообще, там тупо код <a href title=..., т.е. ссылки href как таковой нет вообще. Я попробовал на тестовой площадке, мой код работает начиная с первого варианта и до последнего, непонятно почему у вас не срабатывает функция wp_get_attachment_image_url...

В вашем первоначальном коде $large_image_url необъявлена, попробуйте такой код
PHP:
<?php
add_action( 'woocommerce_grouped_product_list_before_price', 'woocommerce_grouped_product_thumbnail' );
function woocommerce_grouped_product_thumbnail( $product ) {
    $attachment_id = get_post_meta( $product->id, '_thumbnail_id', true );
    $large_image_url = wp_get_attachment_image_src( get_post_thumbnail_id(), 'large' ); 
    ?>
    <td class="label">
        <a href="<?php echo $large_image_url[0];?>" title="<?php the_title_attribute(''); ?>"><?php the_post_thumbnail( 'thumbnail' );  ?></a>    
    </td>
    <?php
}
 
Сверху Снизу