• Как вывести определённый виджет в wordpress?

    @Nikolays93
    Web-разработчик
    Когда то давно мне пригодился плагин - widget-shortcode.

    После установки каждому виджету присваивается шорткод вроде [widget id="text-1"].
    Для вывода шорткода используйте <?php echo do_shortcode('[widget id="text-1"]'); ?>
    Ответ написан
    Комментировать
  • Как сделать отправку письма с параметрами вариативного товара на почту woocommerce?

    @Nikolays93
    Web-разработчик
    Создаем contact-form-7 форму. В форму добавить поле. к пр.:
    <p>[textarea your-message class:form-control x6 placeholder "Оставьте ваш комментарий"]</p>

    (Я делаю это в модальном окне - к пр. popup maker)
    Ниже добавляем кнопку.
    <button type="button" id="get-product">Заказать</button>

    Далее в script.js или тэг script вставляем:
    jQuery(document).ready(function($) {
        // Внутри этой функции $() будет работать как синоним jQuery()
        // 
        $( '#get-product' ).on('click', function(){
          var title = $('.product_title').text();
          var params = '';
          var n = 1;
          $('.variations tr').each(function(i){
            var key = $('label', this).text();
            var $val = $('select option:selected', this);
            if ($val.val() != 'undefined' && $val.val() != ''){
              params+= n+'. '+key+': '+$val.text()+'.\n';
              n++;
            }
          });
          $( '[name="your-message"]' ).val( 'Доброго времени суток, хочу приобрести '+title+'. \n\nПожалуйста, перезвоните мне.\n\n Выбраные параметры:\n'+params );
        });
    });

    Что здесь происходит: При нажатии на #get-product собираются значение params из таблицы .variations (label : выбранное из списка значение) и вставляются в поле [name="your-message"] с комментарием..

    В стандартном шаблоне woocommerce ~2.6 работало, удачи ;)
    Ответ написан
    3 комментария
  • Возможно ли вывести последний, предпоследний и пред предпоследний пост?

    @Nikolays93
    Web-разработчик
    Почитайте про класс WP_QUERY
    $query = new WP_Query(	array(
    	'post_type' => 'post', // page, post, product..
    	'posts_per_page' => 3, // -1 = all posts
    	'order'   => 'DESC', // or ASC
    	) );
    
    if ( $query->have_posts() ) {
    	echo '<ul>';
    	while ( $query->have_posts() ) { $query->the_post();
    		echo '<li><a href="'.get_permalink().'">' . get_the_title() . '</a></li>';
    	}
    	echo "</ul>";
    }
    wp_reset_postdata();


    post_type - записи(post), страницы(page) или товар(product)..
    post_per_page = Если не добавлять постраничной навигации выведет названия 3х записей..
    order = брать записи с конца(DESC) или сначала(ASC)
    Ответ написан
    Комментировать
  • Как устранить ошибку кодировки в Sublime Text 3 SFTP?

    @Nikolays93
    Web-разработчик
    Попробуйте
    Файл > Sftp\ftp > Edit
    Раскомментировать и исправить

    "remote_encoding": "cp1251",
    Ответ написан
    Комментировать
  • Как вывести данные товаров со скидкой на главной странице Opencart?

    @Nikolays93
    Web-разработчик
    Может кому пригодится:(Актуально для 1 версии)
    Между public function index() { и $this->response->setOutput($this->render()); в controller/ИМЯ_СТРАНИЦЫ.php
    вставить:
    // Загружаем модели
    		$this->load->model('catalog/product');
    		$this->load->model('tool/image');
    
    		if (isset($this->request->get['page'])) {
    			$page = $this->request->get['page'];
    		} else {
    			$page = 1;
    		}
    		
    		if (isset($this->request->get['limit'])) {
    			$limit = $this->request->get['limit'];
    		} else {
    			$limit = $this->config->get('config_catalog_limit');
    		}
    
    		$data = array(
    			'sort'  => 'p.sort_order',
    			'order' => 'ASC',
    			'start' => ($page - 1) * $limit,
    			'limit' => $limit // Количество на странице
    			);
    
    		$results = $this->model_catalog_product->getProductSpecials($data);
    
    		$this->data['special_products'] = array();
    
    		foreach ($results as $result) {
    			// Получаем изображение
    			if ($result['image']) {
    				$image = $this->model_tool_image->resize($result['image'], $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height'));
    			} else {
    				$image = false;
    			}
    			// Получаем цену
    			if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {
    				$price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax')));
    			} else {
    				$price = false;
    			}
    			// Получаем цену со скидкой
    			if ((float)$result['special']) {
    				$special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax')));
    			} else {
    				$special = false;
    			}	
    			// Получаем налоги
    			if ($this->config->get('config_tax')) {
    				$tax = $this->currency->format((float)$result['special'] ? $result['special'] : $result['price']);
    			} else {
    				$tax = false;
    			}				
    			// Получаем рэйтинг
    			if ($this->config->get('config_review_status')) {
    				$rating = (int)$result['rating'];
    			} else {
    				$rating = false;
    			}
    
    			$this->data['special_products'][] = array(
    				'product_id'  => $result['product_id'],
    				'thumb'       => $image,
    				'name'        => $result['name'],
    				'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 300) . '..',
    				'price'       => $price,
    				'special'     => $special,
    				'tax'         => $tax,
    				'rating'      => $result['rating'],
    				'reviews'     => sprintf($this->language->get('text_reviews'), (int)$result['reviews']),
    				'href'        => $this->url->link('product/product', 'product_id=' . $result['product_id'])
    			);
    		}


    Первые 2 строки кода желательно исключить если они уже указаны где то на странице.

    На выводе что то вроде: ИМЯ_страницы.tpl
    <ul class="jcarousel-skin">
                        <?php foreach ($special_products as $special_product):
    
                            $price = (!empty($special_product['special'])) ? '<div class="price">'.$special_product['special'].'</div>' : '';
    
                            if ($special_product['special'] && $special_product['price']){
                                $tag_price = '<div class="tag-price"><span class="price-new">'. $special_product['special'] .'</span><span class="price-old">'. $special_product['price'] .'</span></div>';
                            } else { $tag_price = ''; }
                            
                            $thumbnail = '';
                            if ($special_product['thumb']) {
                                $thumbnail = '<div class="image"><a href="'. $special_product['href'].'"><img src="'. $special_product['thumb'] .'" alt="'. $special_product['name'] .'" /></a></div>';
                            } else {
                                $thumbnail = '';
                            }
                            $name = '<div class="name"><a href="'.$special_product['href'].'">'. $special_product['name'].'</a></div>';
    
                            /*Item OUTPUT*/
                        echo '<li>'.$tag_price.$thumbnail.'<div class="about">'.$name.$price.'</div></li>';
                        
                        endforeach; ?>
                        </ul>

    Код взял из своих сниппетов, если не понятен фронт юзайте var_dump($special_products);
    Ответ написан
    Комментировать
  • Не срабатывает Popup maker. Что делать?

    @Nikolays93
    Web-разработчик
    1).Введите название всплывающего окна на латинице к примеру "zayavka" вместо "Заявка". //Браузеры ругаются на классы типа: popmake-%d0%b7%d0%b0%d1%8f%d0%b2%d0%ba%d0%b0.
    2).Проверьте таргетинг. // установите к примеру "На всем сайте" (Первая галочка на правом столбце)
    3).Установите свою собственную тему вывода модального окна.
    4).Добавите в Дополнительные css селекторы класс вашего элемента. // к примеру (.btn-view-price)

    После выполнения всех пунктов, модальное окно просто обязано работать если вы соблюдали версию плагина
    Ответ написан
    3 комментария
  • Что исправить в этом крошечном плагине, чтобы заработало на моём сайте?

    @Nikolays93
    Web-разработчик
    Попробуйте добавить в конец JS кода
    });
    });


    Эта функция намного проще реализуется в CSS3.
    Ответ написан