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

Настройка стиля отображения виджета "недавно просмотренные товары"

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

  1. Ashbrook

    Ashbrook

    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Возможно-ли изменить стиль отображения виджета "недавно просмотренные товары"? У меня он выводится в сайдбаре в вертикальном виде. Название товара выводится справа от фото товара, но из-за ограниченной ширины сайдбара, часть текста перекидывается уже
    под изображение. Получается какая-то мешанина...
    [​IMG]

    Хотелось бы в принудительном порядке выводить этот виджет в виде: сначала изображение, а описание к этому товару уже под этим изображением.
    Возможно-ли это? Где именно надо искать эти стили для редактирования?
    Спасибо.
     
  2. rikitiki

    rikitiki Местный

    Сообщения:
    749
    Симпатии:
    184
    Баллы:
    43
    В первую очередь в Файребаге. Освойте его и не будет вопросов.
    Вообще-то по умолчанию в виджете слева картинка, а справа заголовок и ценнник. И миниатюра размером 90px x 90px ограничена iшириной 32px У вас же она большая, оттого и заголовки не влезают.

    .woocommerce ul.product_list_widget li img {
    box-shadow: none;
    float: right;
    height: auto;
    margin-left: 4px;
    width: 32px;
    }

    В width измените размер и размер картинки изменится. float: right; замените на float: left и картинка будет слева, а текст справа. Уберите float и картинка, а за ним заголовок будут одной строкой. В этом случае, чтобы заголовок был под картинкой и не городить css, проще всего вставить за картинкой тег br, осуществляющий перенос заголовка на новую строку. Или, как в витринах, заменить span заголовка на h3. Но для этого надо лезть в код виджета.
     
    • Нравится Нравится x 1
    • Согласен Согласен x 1
  3. Ashbrook

    Ashbrook

    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Спасибо, разобрался!
     
  4. dave14

    dave14 Местный

    Сообщения:
    129
    Симпатии:
    38
    Баллы:
    28
    А как вообще можно добавить блок недавно просмотренных товаров? Пробовал этот код, но все время выводит, что просмотренных товаров нет.

    PHP:
    <?php
    /*
    Plugin Name: WooCommerce - Recently Viewed Products
    Plugin URL: http://remicorson.com/
    Description: Adds a "recently viewed products" shortcode
    Version: 1.0
    Author: Remi Corson
    Author URI: http://remicorson.com
    Contributors: corsonr
    Text Domain: rc_wc_rvp
    Domain Path: languages
    */

    /**
    * Register the [woocommerce_recently_viewed_products per_page="5"] shortcode
    *
    * This shortcode displays recently viewed products using WooCommerce default cookie
    * It only has one parameter "per_page" to choose number of items to show
    *
    * @access      public
    * @since       1.0
    * @return      $content
    */
    function rc_woocommerce_recently_viewed_products$atts$content null ) {

        
    // Get shortcode parameters
        
    extract(shortcode_atts(array(
            
    "per_page" => '5'
        
    ), $atts));

        
    // Get WooCommerce Global
        
    global $woocommerce;

        
    // Get recently viewed product cookies data
        
    $viewed_products = ! empty( $_COOKIE['woocommerce_recently_viewed'] ) ? (array) explode'|'$_COOKIE['woocommerce_recently_viewed'] ) : array();
        
    $viewed_products array_filterarray_map'absint'$viewed_products ) );

        
    // If no data, quit
        
    if ( empty( $viewed_products ) )
            return 
    __'You have not viewed any product yet!''rc_wc_rvp' );

        
    // Create the object
        
    ob_start();

        
    // Get products per page
        
    if( !isset( $per_page ) ? $number $number $per_page )

        
    // Create query arguments array
        
    $query_args = array(
                        
    'posts_per_page' => $number,
                        
    'no_found_rows'  => 1,
                        
    'post_status'    => 'publish',
                        
    'post_type'      => 'product',
                        
    'post__in'       => $viewed_products,
                        
    'orderby'        => 'rand'
                        
    );

        
    // Add meta_query to query args
        
    $query_args['meta_query'] = array();

        
    // Check products stock status
        
    $query_args['meta_query'][] = $woocommerce->query->stock_status_meta_query();

        
    // Create a new query
        
    $r = new WP_Query($query_args);

        
    // If query return results
        
    if ( $r->have_posts() ) {

            
    $content '<ul class="rc_wc_rvp_product_list_widget">';

            
    // Start the loop
            
    while ( $r->have_posts()) {
                
    $r->the_post();
                global 
    $product;

                
    $content .= '<li>
                    <a href="' 
    get_permalink() . '">
                        ' 
    . ( has_post_thumbnail() ? get_the_post_thumbnail$r->post->ID'shop_thumbnail' ) : woocommerce_placeholder_img'shop_thumbnail' ) ) . ' ' get_the_title() . '
                    </a> ' 
    $product->get_price_html() . '
                </li>'
    ;
            }

            
    $content .= '</ul>';

        }

        
    // Get clean object
        
    $content .= ob_get_clean();
       
        
    // Return whole content
        
    return $content;
    }

    // Register the shortcode
    add_shortcode("woocommerce_recently_viewed_products""rc_woocommerce_recently_viewed_products");
     
  5. searchingman

    searchingman Местный

    Сообщения:
    1.634
    Симпатии:
    552
    Баллы:
    113
    Есть стандартный виджет WooCommerce:Недавно просмотренные товары.
     
    • Согласен Согласен x 1
  6. dave14

    dave14 Местный

    Сообщения:
    129
    Симпатии:
    38
    Баллы:
    28
    Да, про виджет я знаю, а как просто блок на страницу товара добавить?
     
  7. searchingman

    searchingman Местный

    Сообщения:
    1.634
    Симпатии:
    552
    Баллы:
    113
    Любой виджет можно вывести через функцию the_widget().
     
    • Нравится Нравится x 2
  8. маdest

    маdest

    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    А как убрать в этом виджите вывод цены?
     
  9. Roman52

    Roman52

    Сообщения:
    7
    Симпатии:
    0
    Баллы:
    1
    Приветствую! Тоже интересует вопрос, как поменять шаблон вывода недавно просмотренных товаров, например убрать из него картинку(css display:none - не предлагать). Интересует именно сам механизм, как мы это делаем с шаблоном, перенося его в папку с нашей темой и делаем с ним что хотим, не боясь обновления плагина. Можно ли сделать что то похожее с виджетами, а с виджетом недавно просмотренные товары в часности?
     
  10. artemkomarov

    artemkomarov Местный

    Сообщения:
    170
    Симпатии:
    70
    Баллы:
    28
    Виджеты выводятся через шаблон yourtheme/woocommerce/content-widget-product.php точно так же как вы описали просто копируете себе в тему и тд.
     
    • Нравится Нравится x 1
  11. Roman52

    Roman52

    Сообщения:
    7
    Симпатии:
    0
    Баллы:
    1
    Спасибо за ответ!
    А я могу как то редактировать файл plugins\woocommerce\includes\widgets\class-wc-widget-recently-viewed.php чтобы он не затирался при обновлении?
    Вообще задача такая - есть вывод виджета недавно просмотренных товаров. И на него woocommerce вешает свои стили. Мне эти стили не нужны, я напишу свои. Перебивать их !important неохота (возможно придется). Отключать их в function.php не получится, так как это файл с кучей других стилей которые нужны.
    Если была бы возможность править файл plugins\woocommerce\includes\widgets\class-wc-widget-recently-viewed.php я бы просто поменял класс у тега <ul class="product_list_widget"> в котором и выводятся последние просмотренные товары, и на этот класс повесил бы нужные стили.