• Не получается загрузить новые карточки товара в битрикс при помощи "csv"?

    omegastripes
    @omegastripes
    Может кому-то пригодится... Сам убил несколько часов, решая эту проблему.

    Сначала нужно настроить поля, которые должны отображаться при экспорте и импорте CSV:
    Меню - Настройки - Настройки модулей - Торговый каталог, Закладка "Экспорт/Импорт", Раздел "Экспорт / импорт из CSV", Ctrl + левым кликом выделить в списках поля, которые должны отображаться при экспорте / импорте, сохранить.

    Далее у меня так и не заработало, пока не сделал следующее:
    Меню - Контент - Инфоблоки - Типы инфоблоков - Каталог товаров - Каталог, Закладки "Поля" и "Поля разделов", Блок "Символьный код", снять галку "Использовать внешний сервис для перевода" (остальные галки в блоке стоят), сохранить.

    Следует заметить, что импорт CSV, в общем случае, может осуществляться по разному:

    Меню - Магазин - Настройки - Импорт данных, профиль "Import CSV (new)", кликнуть профиль "по умолчанию".
    Меню - Контент - Инфоблоки - Импорт - CSV.

    При этом, в первом случае проблемное поле обозначается как IE_CODE - Символьный код (B_IBLOCK_ELEMENT.CODE), а во втором IE_CODE - Мнемонический код (B_IBLOCK_ELEMENT.CODE). То есть имя поля в файле CSV всегда неизменно - "IE_CODE", а имя поля в БД - различно. Что интересно во втором случае половины полей не отображается, в частности у меня нет цены.

    При импорте поставить галки "Первая строка содержит имена полей", "Использовать настройки инфоблока для транслитерации символьных кодов". Ну и, естественно, при сохранении файла CSV из Excel необходимо перед загрузкой открыть его, например, в Notepad++, в меню Кодировка преобразовать в UTF-8, сохранить.

    Вообще, я для себя сделал табличку соответствия полей.
    5bc22c7550752565077560.png
    Ответ написан
    Комментировать
  • Как вывести отзывы о товаре в корзине/чекауте Woocommerce?

    @Chloyka Автор вопроса
    И так, спустя много часов мною был обнаружен ответ. Для вывода комментариев к товару в корзине, используем конструкцию
    $comments = get_comments(array(
    				'post_id' => $product_id,
    				'status' => 'approve'
    			));
    
    
    			wp_list_comments(array(
    				'per_page' => 10,
    				'reverse_top_level' => false
    			), $comments);

    В cart.php
    Что касается вывода на странице чекаута. В моем случае содержимое страницы корзины имеет следующее содержимое
    [woocommerce_cart][woocommerce_checkout]
    Однако вывести комментарии отдельно в шаблон чекаута не вышло. Так, как в моем случае страница корзины содержит сразу корзину и чекаут, я решил реализовать комментарии в чекауте через shadow-dom.
    Вставляем в код cart.php
    <template id="commentslabel_comments">
    	<div class="commentlist">
    <?php
    			$comments = get_comments(array(
    				'post_id' => $product_id,
    				'status' => 'approve'
    			));
    
    
    			wp_list_comments(array(
    				'per_page' => 10,
    				'reverse_top_level' => false
    			), $comments);
    		?>
    	</div>
    </template>

    <script>
    jQuery(document).ready(function(){
      var root = commentslabel.attachShadow({ mode: 'closed' });
    	root.appendChild(commentslabel_comments.content.cloneNode(true));
    });
    </script>

    Остается только внести в содержимое form-checkout.php
    <div id="commentslabel">
    </div>

    На этом все, дело раскрыто!
    Ответ написан
    Комментировать
  • Нерабочий код из книги Python Crash Course?

    @ElsKazi
    забавно что в книге оч много косяков
    так на стр 154 - нет Age=''
    на 175 - не верный аргумент self.manufacturer, надо self.make
    Ответ написан
    Комментировать
  • Как переопределить определенные классы в html тегах в Woocommerce на свои и добавить свои html теги для элементов магазина?

    AntonLitvinenko
    @AntonLitvinenko
    HTML coder
    Посадка своей верстки на woocommerce состоит как бы из двух основных действий.
    1. С помощью хуков и фильтров изменять разметку итд.
    2. Переопределение шаблона. Для этого у себя в теме создаете папку woocommerce и копируете в нее необходимые шаблоны из папки плагина с шаблонами. И меняете верстку уже там
    Первый способ предпочтительнее, но не всегда с помощью его можно решить все.
    Вот пример кода где создаются дополнительные обертки и переносятся кое-какие элементы
    Посмотреть внутри

    // отключение сайдбара
    remove_action( 'woocommerce_sidebar', 'woocommerce_get_sidebar', 10 );
    
    // отключить хлебные крошки
    remove_action( 'woocommerce_before_main_content', 'woocommerce_breadcrumb', 20 );
    
    // добавить основной контейнер
    remove_action( 'woocommerce_before_main_content', 'woocommerce_output_content_wrapper', 10);
    add_action( 'woocommerce_before_main_content', 'storm_output_content_wrapper_start', 10 );
    function storm_output_content_wrapper_start() {
    	?>
    	<div class="container-1000">
    	<?php
    }
    
    // закрыть основной контейнер
    remove_action( 'woocommerce_after_main_content', 'woocommerce_output_content_wrapper_end', 10 );
    add_action( 'woocommerce_after_main_content', 'storm_output_content_wrapper_end', 40 );
    function storm_output_content_wrapper_end() {
    	?>
    	</div><!-- container-1000 -->
    	<?php
    }
    
    add_action( 'woocommerce_before_main_content', 'storm_archive_output_content_wrapper_start', 15 );
    function storm_archive_output_content_wrapper_start() {
    	if( is_shop() || is_product_category() ) {
    		?>
    		<div class="category-content">
    		<?php
    	}
    }
    
    add_action( 'woocommerce_before_main_content', 'storm_catalog_wrapper_start', 20 );
    function storm_catalog_wrapper_start() {
    	if( is_shop() || is_product_category() ) {
    		?>
    		<div class="catalog-list-wrapper">
    		<?php
    	}
    }
    
    //вывод хлебных крошек на странице архива
    add_action( 'woocommerce_before_main_content', 'storm_catalog_breadcrumbs', 25 );
    function storm_catalog_breadcrumbs() {
    	if( is_shop() || is_product_category() ) {
    		?>
    		<div class="breadcrumbs">
    			<?php woocommerce_breadcrumb() ?>
    		</div>
    		<?php
    	}
    }
    
    // вывод сортировки и кнопки переключателя фильтра
    remove_action( 'woocommerce_before_shop_loop', 'woocommerce_catalog_ordering', 30 );
    add_action('woocommerce_before_shop_loop', 'storm_catalog_ordering', 30);
    function storm_catalog_ordering() {
    	?>
    	<div class="catalog-sorting-wrapper">
    
    		<button type="button" class="fixed-toggle filter-toggle" id="filter-toggle"><i class="fa fa-filter"></i><?php _e('Filter','storm-store') ?></button>
    
    		<div class="product-sorting">
    			<span class="product-sorting-label"><?php _e('Сортировать:','storm-store') ?></span>
    			<div class="select-wrapper">
    				<?php woocommerce_catalog_ordering() ?>
    			</div>
    		</div>
    	</div>
    	<?php
    }
    
    // Изменить стрелки пагинации
    add_filter( 'woocommerce_pagination_args', 'custom_woo_pagination' );
    function custom_woo_pagination( $args ) {
    	$args['prev_text'] = '<span class="fa fa-angle-left"></span><span class="sr-only">Previous page</span>'; 
    	$args['next_text'] = '<span class="fa fa-angle-right"></span><span class="sr-only">Next page</span>';
    	return $args;
    }
    
    // вывод пагинации
    remove_action( 'woocommerce_after_shop_loop', 'woocommerce_pagination', 10 );
    add_action('woocommerce_after_shop_loop', 'storm_pagination', 10);
    function storm_pagination() {
    	?>
    	<div class="pagination-wrapper">
    		<?php woocommerce_pagination(); ?>
    	</div>
    	<?php
    }
    
    add_action( 'woocommerce_after_main_content', 'storm_catalog_wrapper_end', 15 );
    function storm_catalog_wrapper_end() {
    	if( is_shop() || is_product_category() ) {
    	?>
    		</div> <!-- catalog-list-wrapper  -->
    		<?php
    	}
    }
    
    add_action( 'woocommerce_after_main_content', 'storm_archive_output_content_wrapper_end', 30 );
    function storm_archive_output_content_wrapper_end() {
    	if( is_shop() || is_product_category() ) {
    	?>
    		</div><!-- category-content -->
    		<?php
    	}
    }

    Ответ написан
    Комментировать
  • Как сделать макрос для Excel на проверку ссылок на сайтах?

    Лови, рабочий пример, я тут тему создавал https://qna.habr.com/q/1064616
    Ну или вот тут файл https://www.planetaexcel.ru/forum/index.php?PAGE_N...
    Ответ написан
    Комментировать
  • Как массово выкачать фотографии по ссылкам?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    Powershell скрипт
    get-content d:\filewithlinks.txt | foreach {Start-BitsTransfer -Source $_ -Destination 'd:\downloadedfiles\' -transfertype download}


    если не ошибаюсь то еще
    wget -i d:\filewithlinks.txt можно =)
    Ответ написан
    2 комментария
  • Как добавить свой класс в custom logo?

    Lebezniy
    @Lebezniy
    Веб разработка
    <?php
    $logo_img = '';
    if ($custom_logo_id = get_theme_mod('custom_logo')) {
        $logo_img = wp_get_attachment_image($custom_logo_id, 'full', false, array(
            'class'    => 'logo-footer', // здесь Ваш class
            'alt' => get_bloginfo('name'),
            'itemprop' => 'logo',
        ));
    }
    ?>
    <a href="<?php echo esc_url(home_url('/')); ?>" rel="home" class="logo">
            <?php echo $logo_img; ?>
    </a>


    Источник: Шпаргалка по работе с WordPress - блок «Вывод логотипа в WordPress».
    Ответ написан
    Комментировать
  • Как добавить/удалить класс при прокрутке страницы в JavaScript?

    первая ссылка в гугле
    $(window).scroll(function() {
    var height = $(window).scrollTop();
     /*Если сделали скролл на 100px задаём новый класс для header*/
    if(height > 100){
    $('header').addClass('header-fixed');
    } else{
    /*Если меньше 100px удаляем класс для header*/
    $('header').removeClass('header-fixed');
    }
    });
    Ответ написан
    Комментировать
  • Как отключить прокрутку fullpage.js в определенных блоках(normalScrollElements не работает)?

    potapchino
    @potapchino
    document.querySelector('#sidebar').onwheel = e => e.stopPropagation();
    Ответ написан
    Комментировать
  • Как определить на чём написан сайт? Использовался ли движок или фреймворк?

    @sslab
    Чтобыы узнать CMS сайта и прочие технологии, на которых реализован сайт, можете воспользоваться сервисом, который расположен здесь
    home.png
    Ответ написан
    Комментировать
  • Как увеличить количество вариаций woocommerce больше 30?

    vagono
    @vagono Автор вопроса
    Нашел решение.

    Добавляем в functions.php следующий код:

    function iconic_wc_ajax_variation_threshold( $qty, $product ) {
        return 50;
    }
    
    add_filter( 'woocommerce_ajax_variation_threshold', 'iconic_wc_ajax_variation_threshold', 10, 2 );


    Где return 50; нужное количество вариаций для динамического отображения
    Ответ написан
    Комментировать
  • Как сделать плавный скролл (смягчение скролла) на сайте?

    @mrcoolvip1
    Плавный скролл можно сделать с помощью плагина JQuery Custom Content scroller.
    manos.malihu.gr/repository/custom-scrollbar/demo/e...
    просто применить его не к отдельному блоку, а к body или html.
    Ответ написан
    2 комментария
  • Как задать класс изображениям внутри записи на Wordpress?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Самый простой способ - на хуке the_content обычной заменой или регуляркой, но это если у картинок всегда одна структура (например, мы точно знаем что тег будет <img src="..." class="..." ...). Но вообще парсить html регулярками не самая светлая мысль - для этого есть DOMDocument:
    function add_class_to_images( $content )
    {
        $document = new DOMDocument();
        libxml_use_internal_errors(true); // чтобы не ругался на семантические HTML5 теги
        $document->loadHTML( $content );
        libxml_clear_errors();
    
        $images = $document->getElementsByTagName( 'img' );
    
        /** @var \DOMElement $image */
        foreach ( $images as $image ) {
            $image->setAttribute( 
                'class', 
                $image->getAttribute( 'class' ) . ' my-new-class'
            );
        }
    
        return $document->saveHTML();
    }
    add_filter( 'the_content', 'add_class_to_images' );
    Ответ написан
    9 комментариев
  • Как сделать кнопку сброса фильтров товаров в Woocommerce?

    MaximusDem
    @MaximusDem
    Начинающий разработчик
    Держи такой вариант
    1) Это вставишь в шапку сайта
    <?php $filterreset = $_SERVER['REQUEST_URI'];
    $filterreset = strtok($filterreset, '?'); ?>

    2) А кнопку сброса где-нибудь в шаблоне, там где надо
    <a href="<?php echo $filterreset; ?>">Сбросить фильтр</a>
    Ответ написан
    Комментировать