Woocommerce программное управление атрибутами
Информация основана на https://stackoverflow.com/questions/53705122/add-a-new-term-to-a-product-attribute-and-set-it-in-the-product-in-woocommerce В коде происходит следующее: Указан слаг заранее созданного атрибута, с которым будем работать. Указано значение атрибута, которое нужно добавить к товару. Получаем ID этого значения. Если Такого значения не было, то создаем его. Получаем все атрибуты текущего товара и ищим среди них наш атрибут. Если такого нет, то создаем и добавляем. Если есть — то добавляем в него наше значение. Как-то так $attribute_slug = ‘consist’; // Слаг заранее созданного атрибута. В нем будем работать. В моём случае это состав. $znacheniename_of_attribute = ‘Значение’; // Имя одного из значений этого атрибута $taxonomy = ‘pa_’ . $attribute_slug; // The taxonomy $term_name = $znacheniename_of_attribute; // The term "NAME" $term_slug = sanitize_title($term_name); // The term "slug" // Check if the term exist and if not it create it (and get the term ID). if( ! term_exists( $term_name,…
Организация локальной разработки на WordPress в PHP Storm
Я использую связку OpenServer + PHP Storm + Xdebug. Есть немало инструкций как настроить эту связку, но иногда с первого раза не работает. Здесь я расскажу на конкретном примере как это получилось у меня. Итак, я использую OpenServer 5.2.2 (https://ospanel.io/). Установка не вызывает трудностей, но есть некоторые моменты дальнейшей настройки. Это версии модулей: Я использую: Apache-PHP-7-x64 PHP-7.1-x64 MySQL-5.7 Если Вы используете другие версии – запомните их, они ещё понадобятся. Допустим, Ваш сайт будет расположен тут: D:\OSPanel\domains\beta.rollbox.su. Сразу в ней распакованы файлы wordpress. PHP Storm. У меня стоит версия 2018.2.4. Открываем папку сайта D:\OSPanel\domains\beta.rollbox.su и видим примерно это Заходим в настройки File -> Settings… -> Languages & Frameworks -> PHP и выбираем соответствующую версию PHP ( такую же как в OpenServer ). Иначе дебаг не будет работать Теперь нужно установить расширение для браузера (я использую Firefox) — Xdebug helper от BrianGilbert_. Заходим в настройки Выбираем IDE key – PhpStorm ->…
Web-сервер Nginx — пошагово
В этой инструкции пошагово разберём установку и настройку LEMP — стека для организации web-сервера на системе CentOS 7. Будет сделано: первоначальная настройка CentOS установка и конфигурирование Nginx + php-fpm установка и настройка MariaDB установка PHP создание двух тестовых сайтов, установка WordPress автоматический Backup баз данных поддержка HTTPS с помощью Let’s Encrypt Итак, мы находимся в только что установленном CentOS: Выполняем обновление системы: sudo yum clean all sudo yum update sudo yum autoremove Устанавливаем текстовый редактор nano, файловый менеджер mc и инструменты для работы с сетью, программу для скачивания: sudo yum install mc nano net-tools wget -y Назначение имени компа: sudo nano /etc/sysconfig/network 1HOSTNAME=_имя_компьютера_ sudo hostnamectl set-hostname _имя_компьютера_ Назначение статического IP: с помощью программулины: sudo nmtui либо в рукопашку: sudo nano /etc/sysconfig/network-scripts/ifcfg-eth0 123456789BOOTPROTO="none" IPADDR="192.168.2.203" GATEWAY="192.168.2.254" DNS1="192.168.2.254" DNS2="8.8.8.8" # Disable ipv6 # IPV6INIT="no" # Subnet # PREFIX=24 Перезапуск сети: sudo systemctl restart network Настройка времени: Написано здесь Редактируем правила фаервола: Смотрим работает ли…
Setcookie не работает
Добрый день! Вот решил поделиться своим открытием насчёт функции Setcookie в PHP. При генерации страницы мне нужно чтобы у клиента установился определённое значение в cookie. Поковырявшись с Setcookie и убедившись что оно не работает, я обычно бросал это неблагодарное дело и пользовался JavaScript`ом, однако если у клиента отключены скрипты, то такой фокус не прокатит. Так почему же Setcookie не работает? В основном это две причины: очевидная и не очень. Очевидная причина: Как пишут нам в инструкции cookie должны передаваться до того как будут выведены какие-либо другие данные скрипта (это ограничение протокола). Это значит, что в скрипте вызовы этой функции должны располагаться прежде остального вывода, включая вывод тэгов <html> и <head>, а также пустые строки и пробельные символы. Да, это очень важное замечание, поскольку, проигнорировав его, вы получите сообщение об ошибке следующего содержания: Cannot modify header information — headers already sent by (output started at… Типа невозможно изменить заголовки страницы, так…
Яндекс, что ты делаешь?! Прекрати!!!
В конце мая 2016 года на этом сайте я решил заменить счётчик посещений от Lifeinternet на Яндекс Метрику. Причиной стал перевод сайта на https, а Lifeinternet его не поддерживает. Зарегистрировался, вставил JavaScript-код на сайт и начал радоваться отображению результатов: Дааа, это поинтереснее чем стандартная статистика WordPress! Тут тебе и: Доля новых/старых посетителей Источник трафика (с поисковиков, прямые заходы, внутренние переходы и т.д) Глубина просмотра Время на сайте Устройство, с которого происходил просмотр И даже примерный возраст аудитории! (тут наверно как-то проходит связь с социальными сетями, иначе как ещё определить возраст.. хммм, молодцы!) Так я жил и радовался пока не решил, спустя полгода, полазить по менюшкам яндекс-метрики, где обнаружил много интересного, занятного, а порой и пугающего! (О_о) Поехали: Пункт меню Отчеты Какой-то прям колоссальный набор отчётов: Посещаемость, конверсии График переходов с сайтов, поисковых систем, поисковым фразам. Я даже нашел конкретных людей, кто оставил пост Вконтакте про мои статьи!!! Возраст, пол, интересы…
Запуск сайта на локальном компьютере
Чтобы осуществить запуск сайта на локальном компьютере с операционной системой Windows Вам понадобится Denwer. Джентльменский набор Web-разработчика («Д.н.w.р», читается «Денвер») — проект Дмитрия Котерова, локальный сервер (Apache, PHP, MySQL, Perl и т.д.) и программная оболочка, используемые Web-разработчиками для разработки сайтов на «домашней» (локальной) Windows-машине без необходимости выхода в Интернет. Главная особенность Денвера — удобство при удаленной работе сразу над несколькими независимыми проектами и возможность размещения на Flash-накопителе. Установка Для начала нужно скачать Denwer с официального сайта или здесь. Запускаем программу установки и отвечаем на несложные вопросы. Рекомендую не менять стандартные настройки если в этом нет необходимости, а на все вопросы отвечать положительно =). Да, антивирус может ругаться, успокойте его. После установки должно вылезти окно браузера с дальнейшими инструкциями и наставлениями автора. Запускаем Start Denwer на Рабочем столе, переходим по адресу http://localhost. Должно быть что-то типа этого: Открываем в моём компьютере Z:\home, здесь будут находиться наши сайты. Можем проверить эти ссылки…
Не могу создать директорию uploads. Проверьте, доступна ли родительская директория для записи.
При загрузке изображения в библиотеку WordPress выскакивает ошибка «Не могу создать директорию uploads/2016/01. Проверьте, доступна ли родительская директория для записи.» Исправить это легко. Достаточно зайти на адрес: http://YOUR_SITE/wp-admin/options.php И в поле upload_path изменить параметр на правильный путь
Получить результат выполнения PHP скрипта в PHP
Долгий способ, но обычно работает всегда: $htm = file_get_contents(‘http://url/hashinfo.php’); echo $htm; Быстрый способ, но не на всех хостингах работает: ob_start(); include(‘hashinfo.php’); $htm = trim(substr(ob_get_clean(), 3)); //Обрезаем 3 первых лишних символа и пробелы с двух сторон echo $htm;
Проверка правильности введенного E-mail JavaScript
function checkmail(value) { reg = /^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/; if (!value.match(reg)) { //alert(«Пожалуйста, введите свой настоящий e-mail»); return 0; }else{ return 1; } }
Работа с cookie
Cookie — небольшой фрагмент данных, отправленный веб-сервером и хранимый на компьютере пользователя. Браузер всякий раз при попытке открыть страницу соответствующего сайта пересылает этот фрагмент данных веб-серверу в составе HTTP-запроса. Применяется для сохранения данных на стороне пользователя, на практике обычно используется для: аутентификации пользователя; хранения персональных предпочтений и настроек пользователя; отслеживания состояния сеанса доступа пользователя; ведения статистики о пользователях. Получать и записывать cookie можно как с помощью JavaScript, так и при помощи PHP. Рассмотрим эти варианты: JavaScript и Cookie <script> //Функция получения куков function getCookie(c_name) { var i,x,y,ARRcookies=document.cookie.split(«;»); for (i=0;i<ARRcookies.length;i++) { x=ARRcookies[i].substr(0,ARRcookies[i].indexOf(«=»)); y=ARRcookies[i].substr(ARRcookies[i].indexOf(«=»)+1); x=x.replace(/^s+|s+$/g,»»); if (x==c_name) { return unescape(y); } } } //Функция записи куков (имя, значение, время_жизни_в_днях) function setCookie(c_name,value,exdays) { var exdate=new Date(); exdate.setDate(exdate.getDate() + exdays); //Если в конце убрать + «; path=/», то кук будет доступен только для текущей страницы //Если не убирать, то кук будет доступен для любой страницы в пределах домена var c_value=escape(value) + ((exdays==null) ? «»…