• Почему не импортируются изображения через Импорт WordPress?

    Ivseti
    @Ivseti Автор вопроса
    Фронтенд HTML, CSS и немного JS с PHP
    Короче говоря, разобрался... Кому интересно, в фанкшн.пхп темы добавить фильтр:

    add_filter( 'https_ssl_verify', '__return_false' );


    И вуаля! Картинки импортируются.
    Ответ написан
    1 комментарий
  • Проблема с плагином Woocommerce Subscription. Как ее решить?

    eprivalov
    @eprivalov Автор вопроса
    Учусь
    Решил проблему:

    add_filter( 'wcs_can_user_resubscribe_to_subscription', '__return_true', 100 );
    Ответ написан
    Комментировать
  • Как убрать дубликаты при выводе свойств элементов на сайте битрикс?

    @PetrPo
    В result_modifier.php
    if($arResult['ITEMS']) {
    	$arResult['FILE_TYPES'] = $filmTypes = [];
    	
    	foreach($arResult['ITEMS'] as $key => $arItem) {
    		$filmTypesProp = isset($arItem['DISPLAY_PROPERTIES']['FILM_TYPES']) ? $arItem['DISPLAY_PROPERTIES']['FILM_TYPES'] : false;
    		$value = $filmTypesProp && $filmTypesProp['VALUE'] ? $filmTypesProp['VALUE'] : false;
    		$displayValue = $filmTypesProp && $filmTypesProp['DISPLAY_VALUE'] ? $filmTypesProp['DISPLAY_VALUE'] : false;
    		
    		if($value && $displayValue) {
    			$filmTypes['VALUE'][] = $value;
    			$filmTypes['DISPLAY_VALUE'][] = $displayValue;
    		}
    	}
    	
    	$arResult['FILE_TYPES'] = [
    		'VALUE' => array_values(array_unique($filmTypes['VALUE'])),
    		'DISPLAY_VALUE' => array_values(array_unique($filmTypes['DISPLAY_VALUE'])),
    	];
    }


    Где сам select выводишь
    <?if(isset($arResult['FILE_TYPES']) && $arResult['FILE_TYPES']):?>
    	<select class="drop" id="regionDropdown">
    		<option value="All">Показать все</option>
    		<?foreach($arResult['FILE_TYPES']['DISPLAY_VALUE'] as $value):?>
    			<option value="<?=$value;?>"><?=$value;?></option>
    		<?endforeach;?>
    	 </select>
    <?endif;?>
    Ответ написан
  • Не выполняется скрипт при нажатии?

    @alex5792 Автор вопроса
    front man
    Вот код кнопки
    <a href="#" class="button yith-wcqv-button" data-product_id="389">Quick View</a>


    А вот сам скрипт плагина
    /**
     * frontend.js
     *
     * @author Your Inspiration Themes
     * @package YITH WooCommerce Quick View
     * @version 1.0.0
     */
    
    jQuery(document).ready(function($){
        "use strict";
    
        var buttons     = '',
            qv_modal    = '',
            qv_content  = '',
            qv_close    = '',
            qv_nav      = '',
            products_ids = [],
            center_modal = function() {
    
                var t = $(document).find( '.yith-quick-view .yith-wcqv-wrapper' ),
                    window_w = $(window).width(),
                    window_h = $(window).height(),
                    width    = ( ( window_w - 60 ) > yith_qv.popup_size_width ) ? yith_qv.popup_size_width : ( window_w - 60 ),
                    height   = ( ( window_h - 120 ) > yith_qv.popup_size_height ) ? yith_qv.popup_size_height : ( window_h - 120 );
    
                t.css({
                    'left' : (( window_w/2 ) - ( width/2 )),
                    'top' : (( window_h/2 ) - ( height/2 )),
                    'width'     : width + 'px',
                    'height'    : height + 'px'
                });
            };
    
        if( typeof yith_qv === 'undefined' ) {
            return;
        }
    
        /*==================
         * INIT PLUGIN
         ==================*/
    
        $.fn.yith_wcqv_init = function() {
    
            buttons     = $(document).find( '.yith-wcqv-button' );
            qv_modal    = yith_qv.type != 'yith-inline' ? $(document).find( '.yith-quick-view' ) : $(document).find( '.yith-quick-view' ).clone();
            qv_content  = qv_modal.find( '.yith-quick-view-content' );
            qv_close    = qv_modal.find( '.yith-quick-view-close' );
            qv_nav      = qv_modal.find( '.yith-quick-view-nav' );
    
    
            // build products id array
            $.each( buttons, function(){
                var product_id = $(this).data('product_id');
                if( $.inArray( product_id, products_ids ) == -1 ) {
                    products_ids.push( product_id );
                }
            } );
    
            // nav event
            if( qv_nav.length ) {
                nav_ajax_call(qv_nav);
            }
            // close event
            close_modal_qv( qv_close );
    
            // responsive
            if( yith_qv.type != 'yith-inline' ) {
                center_modal();
                $( window ).on( 'resize', center_modal );
            }
    
            // off old event ( prevent multiple open )
            buttons.off( 'click' );
    
            // calculate position
            if( buttons.hasClass( 'inside-thumb' ) ) {
                imagesLoaded( qv_content, function(){
                    button_position( buttons );
                });
            }
    
            $(document).on( 'click', '.yith-wcqv-button', function(e){
    
                var t           = $(this),
                    data_type   = t.data('type'),
                    product_id  = t.data( 'product_id' );
    
                if( ! product_id ) {
                    return;
                }
    
                e.preventDefault();
    
                if( ! yith_qv.enable_loading ) {
                    qv_loader( t );
                }
    
                // if is inline move modal
                if ( yith_qv.type == 'yith-inline' ) {
    
                    var elem        = t.parents( yith_qv.main_product ),
                        last_elem   = ( elem.hasClass( 'last' ) ) ? elem : elem.nextUntil( '.first', '.last' );
    
                    if( ! last_elem.length ){
                        last_elem = t.closest( '.products' ).find( yith_qv.main_product ).last();
                    }
    
    
                    if( last_elem.next( '.yith-quick-view' ).length ) {
                        // if in same row of li call qv_loader
                        qv_loader( qv_content );
                    }
                    else if ( qv_modal.hasClass('open') ) {
                        // if in another row close it and move
                        qv_modal.removeClass('open').removeClass('loading');
    
                        qv_modal.slideUp( 'slow', function(){
                            last_elem.after( qv_modal );
    
                            // ajax call
                            ajax_call( t, product_id );
                        });
    
                        return;
                    }
                    else {
                        // and move it
                        last_elem.after( qv_modal );
                    }
                }
                else {
                    // add loading effect
                    $(document).trigger( 'qv_loading' );
                }
    
                ajax_call( t, product_id );
    
            });
        };
    
        /*=====================
        * MAIN BUTTON POSITION
         =======================*/
    
        var button_position = function( buttons ){
    
            var img_height = $(document).find( 'img.attachment-shop_catalog' ).height(),
                trigger_h = buttons.height();
    
            // add position
            buttons.css({
                'top'     : ( img_height - trigger_h ) / 2 + 'px'
    Ответ написан
    Комментировать
  • Как правильно сделать js редирект?

    Seasle
    @Seasle Куратор тега JavaScript
    const url = new URL(location.href)
    url.searchParams.set('session', '1')
    history.pushState(null, document.title, url.toString())

    или
    const params = new URLSearchParams(location.search);
    params.set('session', '1');
    location.search = params.toString();
    Ответ написан
    3 комментария
  • Как заставить фильтр Битрикс показывать только значения свойств текущего раздела?

    sabramovskikh
    @sabramovskikh
    Фильтр в комплексном подключается? Там передается в параметр компонента фильтра SECTION_ID и свойства берутся из этого раздела
    Ответ написан
    1 комментарий