• Как защититься от хотлинка на виртуальном хостинге?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Если на входе стоит Nginx, то не важно то вы там делаете для статики (картинки, стили, скрипты) в .htaccess - запрос до Apache (и, соответственно, до обработки правил в .htaccess) не дойдет никогда. Для этого Nginx на входе и ставят.

    Hotlink protection на Nginx делается легко с помощью всего лишь одного правила для вашего виртуального хоста. Если хостер не дает вам возможности редактировать конфиг вашего виртуального хоста (или хотя бы его часть) - надо менять хостера. Другого способа решить вашу проблему я не вижу. Разве что CDN, как пишет Михаил (по сути, это еще один Nginx на входе перед всем остальным, но в этот раз вы можете редактировать конфиг, в отличие от вашего хостинга).
    Ответ написан
    Комментировать
  • У кого-нибудь есть максимально быстрый Wordpress?

    4mobile
    @4mobile
    WEB developer
    Кеширование сильно помогает.
    Хороший тарифный план у хостера (от $5 в мес.) помогает.
    Можно много чего повырезать-оптимизировать если шаблон вы делаете самостоятельно, если готовый - сложнее, запаритесь ловить баги и зависимости скриптов.
    Можно сделать отложенную загрузку изображений, слайдеров и другого тяжелого контента.
    Кое что, чаще всего не нужное, может поотключать этот код https://gist.github.com/smartdeal/110d74364a431278...
    Смотрите в отладке что дольше всего доставляется при загрузке сайта.

    Но если сами не до конца разбираетесь, заплатите деньги тому кто умеет.
    Ответ написан
    Комментировать
  • У кого-нибудь есть максимально быстрый Wordpress?

    deniscopro
    @deniscopro Куратор тега WordPress
    WordPress-разработчик, denisco.pro
    Не очень понял как WordPress связан с javascript. Подключением скриптов на фронтенде занимается используемая тема и плагины. Если тема плохо работает, то нужно её переработать или заменить или заказать индивидуальную. Аналогично с плагинами.

    P.S. Для интереса, глянул в браузере время формирования страницы сервером у себя на сайте — 50-80 мс. Не представляю куда тут и что нужно ускорять в пять раз.
    Ответ написан
    Комментировать
  • Как сделать лебл товара на woocommerce?

    zorca
    @zorca Куратор тега WordPress
    1. Прочитать инструкцию по кастомизации шаблонов Woocommerce
    2. Найти нужный шаблон, для сингла это к примеру тынц
    3. Дописать в шаблон свою логику вывода лейбла
    4. Пометить этот ответ как решение :-)
    Ответ написан
    2 комментария
  • Pug + php(wordpress) + gulp как сделать такую сборку!?

    zorca
    @zorca Куратор тега WordPress
    Используйте стартовые темы с включенным сборщиком, например Sage. Можно использовать и Pug, насколько я помню, в нем прекрасно живут куски PHP. Есть отдельные проекты, совмещающие функционал Pug и PHP: Tale Jade и Pug PHP.
    Ответ написан
    Комментировать
  • Документация по Woocommerce?

    maksym1991
    @maksym1991
    WordPress adept
    Ответ написан
    Комментировать
  • Для каждого автора личная библиотека медиафайлов в Вордпресс?

    serovpochta
    @serovpochta Автор вопроса
    Лысый
    Кажется решение
    Ответ написан
    Комментировать
  • Оформление заказа woocommerce с помощью формы без покупки?

    @PARKERPR Автор вопроса
    add_filter('woocommerce_cart_needs_payment', 'disabled_payment');
    function disabled_payment () {
    return false;
    }

    Вот решение данной проблемы. Добавить в function.php
    Ответ написан
    1 комментарий
  • Woocommerce страницы конфликтуют с категориями?

    kumaxim
    @kumaxim
    Web-программист
    === VANGA MODE ON ===
    Вам нужно ознакомиться с принципом работы Rewrite API в Wordpress. Если очень коротко, то есть список из 16-ти базовых правил: категории(/category/), теги(/tags/), страницы, посты и навигация/пагинация, т.е. циферки внизу страниц категорий/тегов(/page/1/ или /page/2 и т.п.).

    Разумеется, WP дает возможность разработчику самому добавить новое правило, если ему это необходимо. Новое правило может быть добавлено либо в начало(рекомендуется) либо в конец стандартного списка правил.
    Для добавления нового правила, чаще всего используют функцию add_rewrite_rule, однако, если ты начнешь копать в старые плагины, то ты увидишь, что на ряду с этим также, новое правило может добавляться на фильтре generate_rewrite_rules.

    Оба этих способа приводят к одному результату, про различия можешь в сети почитать, где-то на StackOverflow было довольно грамотное описание.

    На сколько я помню, Woocommerce добавляет свои правила через функцию add_rewrite_rule в начала списка правил, поэтому, если у Вас есть две страницы с одним УРЛом(товар в Woocommerce и категория/страница/тег), то Wordpress отправит Вас на первое что ему попадется. Ранее, по всей видимости, у Вас первым был товар Woocommerce, потом категория.

    Как Вы думайте где WP хранит правила? Я вариантов кроме таблицы wp_option в БД не знаю. При переносе Вашей БД между серверами, возможно, при экспорте/импорте там чего-то оптимизировалось, и теперь Ваше правило Woocommerce упало вниз, т.е. стало идти после стандартных правил Wordpress. По этой причине Вы и наблюдайте такое поведение.
    === VANGA MODE OFF

    Как такое исправить:
    • Самый правильный, на мой взгляд, способ - добавить префикс категории и тегу, чтобы они не пересекались. Смотреть внизу странице Settings => Rewrite в админке.
    • Второй - попробуйте деактивировать все плагины и обновить/переустановить Wordpress из самого Wordpress(страница Home => Updates). После активируйте снова все плагины. Гипотетически, это должно запустить где-то функцию flush_rewtire_reles(), которая очищает все УРЛ-правила для WP и Ваше ожидаемое поведение должно восстановиться. Хотя, лично мне это кажется "тугим" методом....


    Если вариант 1 и 2 не выгорают - ставите плагин Query Monitor и начинайте дебажить
    Ответ написан
    Комментировать
  • Какую подобрать конфигурацию для WEB-сервера на VDS/VPS для магазина на WordPress (2017)?

    icCE
    @icCE
    youtube.com/channel/UC66N_jRyZiotlmV95QPBZfA
    вопрос построения высоко-нагруженного веб-сервера


    А что, уже точно магазин имеет такую посещаемость , что надо делать сразу высоконагруженный ?
    Просто практика показывает, что это зря потраченные/вложенные деньги и до высоких нагрузок еще далеко. Как минимум чуть ли не год.

    1. Какую использовать лучше ОС для WEB-сервера? CentOS or Ubuntu? Какие версии?

    То, что вам ближе или то, по чему вас смогут быстро проконсультировать.
    Как по мне вообще все равно.

    2. Какую лучше использовать конфигурацию (см. выше описание)?

    Я бы просто начал с ngix+php-fpm+mariadb он же mysql.
    + настроил мониторинг для понимание нагрузок на сервер.

    3. Как устанавливать, используя какие средства?

    эм. ну в ubuntu sudo apt-get nginx php-fpm mariadb-server mariadb-client

    как вариант вообще не заниматься этим, а взять готовые шаблоны например у vscale.io
    Ответ написан
    9 комментариев
  • Есть ли плагин Ajax подгрузки товаров woocommerce?

    maxxannik
    @maxxannik
    Сайты на WordPress + Интернет магазины WooCommerce
    1. Мало шансов найти такой плагин тк это нарушает лучшие практики
    2. Если вы представитель малого бизнеса без денег, то не надо пытаться изобретать то чего никто не использует. Это дорого и часто плохо влияет на результаты. Берите тему StoreFront и научитесь использовать ее базовые возможности. Это уже позволит сделать магазин удобней и красивее чем 90% существующих магазинов в России. Без программирования и придумывания никому не нужных кнопок.
    3. Если у вас есть деньги, то не составит труда нанять спецов которые это все запрограммируют.
    Ответ написан
    Комментировать
  • Как организовать прием оплат с сайта согласно 54-ФЗ?

    maxxannik
    @maxxannik
    Сайты на WordPress + Интернет магазины WooCommerce
    У WooCommerce есть официальный плагин для Яндекс Кассы. На сколько я помню Яндекс Касса поддерживает 54 ФЗ вот так https://kassa.yandex.ru/blog/lk54fz
    Ответ написан
    Комментировать
  • Как изменить вычисление цены в корзине woocommerce?

    maxxannik
    @maxxannik
    Сайты на WordPress + Интернет магазины WooCommerce
    Мне кажется вы где то переусложнили и недодумали.

    В корзине и далее в заказ попадают order_item. Это почти тоже самое что и продукт, но не продукт.
    Продукт есть лишь исходный набор данных для order_item.
    А значит в order_item вы вольны писать все что угодно. Любую цену, заголовок или описание.
    Главное найти нужные хуки в механизме формирования корзины и ордера.

    Как при этом хранить набор цен и единиц внутри продукта - особо не важно. Можно в метаполях, можно в комментах или в отдельных таблицах.
    Ответ написан
    Комментировать
  • Оптимизация сайта на Wordpress + Woocommerce?

    maxxannik
    @maxxannik
    Сайты на WordPress + Интернет магазины WooCommerce
    W3 Total Cache на мой взгляд не лучшее решение. Рабочее, но не лучшее.
    Тут вероятно лучше Batcache. Он гибче.
    Далее есть кейсы когда все страницы жестко кешируются. И отдаются из мемкеша моментально.
    А весь интерактив и данные зависимые от авторизации подгружаются через AJAX.
    Плюс основная проблема в поиске. Часто нужен фасетный поиск. В этом случае ставят Эластик или Алголию.
    Ответ написан
    Комментировать
  • Как решать конфликты интересов между клиентами фрилансера?

    begemot_sun
    @begemot_sun
    Программист в душе.
    Нет не должен. Это не клиента дело с кем вы работаете и что вы делаете конкуренту.
    Ответ написан
    13 комментариев
  • Как в Woocommerce изменить поведение кнопки "добавить в корзину"?

    @Quieteroks
    php программист
    Это самая отвратительная идея для приложения...
    Количество выбирается в корзине, при оформлении заказа. Или указывается перед нажатием кнопки "Добавить в корзину" в отдельном поле. Но многократное тыканье на кнопку?? А если мне нужно 145 батончиков шоколада?
    Ответ написан
    1 комментарий
  • Можно ли учитывать состав товара в Woocommerce?

    maxxannik
    @maxxannik
    Сайты на WordPress + Интернет магазины WooCommerce
    Создание системы производственного учета из Woo - интересная идея :)
    При большом желании конечно можно сделать. Встречались решения и посложнее :)

    Добавить тип поста "Номенклатура", добавить к продуктам метабокс "Материальные затраты". Сохранять структуру затрат в метаполе.
    Затем написать отчет, который будет это все выводить на основе списка заказов.

    На малом объеме будет работать.
    Если записей встанет под 1 млн штук и более, то метаполе уже не прокатит. Надо будет переписать на таблицу.
    А если записей более 1 млн штук, то надо будет подключать отдельный NoSQL или OLAP сервер для их прожовывания, свода и кросстабуляции.

    Готовых решений такого типа не встречал. Шансов что то готовое найти мало ввиду крайней индивидальности пожелания. Потому такие задачи решаются как правило с участием программистов. Рискну предположить что для этой задачи нужен программист выше среднего. Иначе вместо решения можно получить кучу костылей.
    Ответ написан
    5 комментариев
  • Существует ли плагин для Woocommerce - купи 5 раз и на 5-тый раз получи подарок?

    ILoveYAnny
    @ILoveYAnny Автор вопроса
    1) Качаем https://srd.wordpress.org/plugins/first-order-discount/

    2) Правим код плагина ( у меня тут ещё +10% скидка для зарегестрированных пользователей)
    function first_order_add_fee() {
    	global $wpdb, $woocommerce;
    	if ( is_user_logged_in() ) {
    		$customer_id = get_current_user_id();
    		$orderNumCheck = wc_get_customer_order_count( $customer_id ); // count orders by current customer
    		$options = get_option( 'first_order_add_settings' );
    		$discountType = $options['first_order_choose'];
    		$discountValue = $options['first_order_add_value'];
    		$subtotal = WC()->cart->cart_contents_total;
    		$discount = $discountValue/100;
    	    
    		$check5order = $orderNumCheck + 1;
    		
    		if ($check5order % 5 == 0) {
    		
    			    $product_id = 1802;
    				$found = false;
    				//check if product already in cart
    				if ( sizeof( WC()->cart->get_cart() ) > 0 ) {
    					foreach ( WC()->cart->get_cart() as $cart_item_key => $values ) {
    						$_product = $values['data'];
    						if ( $_product->id == $product_id )
    							$found = true;
    					}
    					// if product not found, add it
    					if ( ! $found )
    						WC()->cart->add_to_cart( $product_id );
    				} else {
    					// if no products in cart, add it
    					WC()->cart->add_to_cart( $product_id );
    				}
    		}
    		
    		WC()->cart->add_fee( 'Скидка 10%', -$subtotal*$discount );
    		
    	}
    }
    
    function add_custom_price( $cart_object ) {
        foreach ( $cart_object->cart_contents as $key => $value ) {
    		if ($value["product_id"] == "1802") {
    			$currPrice = $value['data']->price;
    			$currQuant = $value["quantity"];
    			$totalPrice = $currPrice * $currQuant;
    			$salePrice = $totalPrice - $currPrice;
    			$salingPrice = $salePrice/$currQuant;
    			$value['data']->price = $salingPrice;
    		}
        }
    }
    
    add_action( 'woocommerce_before_calculate_totals', 'add_custom_price' );
    add_action( 'woocommerce_cart_calculate_fees','first_order_add_fee' );
    Ответ написан
    Комментировать
  • Как сделать Вывод инструкций google?

    Gori4ka
    @Gori4ka
    WordPress Developer
    Ответ написан
    Комментировать