• Как указать в php-скрипте исключение для категории?

    @abezgauz
    web-кузнец
    Здравствуйте.

    Во-первых,
    >> Помогите, пожалуйста, разобраться, с ночи пробую разные варианты со строкой:
    Строками, а не строкой.

    Во-вторых, "строка" тут не при чём.
    // Запрет на добавление в корзину товаров из категории подписок,
    // если уже есть товар из категории подписок в корзине
    add_filter('woocommerce_add_to_cart_validation', 'for_subscriptions_limit_cart_items', 10, 3);
    
    function for_subscriptions_limit_cart_items ($passed, $product_id, $quantity) {
    
    	$subscription_category = 'subscriptions';
    	// Если корзина пуста
    	if ( WC()->cart->is_empty() ) {
    		return $passed;
    	}
    
    	$subscription_in_cart = false;
    
    	// Поиск товаров из категории подписок в корзине
    	foreach (WC()->cart->get_cart() as $cart_item) {
    		if ( has_term($subscription_category, 'product_cat', $cart_item['product_id']) ) {
    			$subscription_in_cart = true;
    		}
    	}
    
    	if ($subscription_in_cart) {
    		// проверяем, что новый товар тоже из категории подписок
    		if ( has_term($subscription_category, 'product_cat', $product_id) ) {
    			// добавляем товар в корзину
    			return $passed;
    
    		// если новый товар не из категории подписок
    	} else {
    		// Показать сообщение
    		wc_add_notice(__('A subscription is already in cart (Other items are not allowed in cart).', 'woocommerce' ), 'error');
    		// Не добавляем новые товары
    		return false;
    		}
    	}
    	return $passed;
    }


    И третье :) Если не ошибаюсь, я продолжил мысль своего старого вопроса: https://qna.habr.com/q/917125

    Кажется вы только что публиковали похожий, но удалили (сорри, если это были не вы). Анатолий мне там подсказал решение, гляньте, если что. Может быть полезно.
    Ответ написан
    3 комментария
  • Как на Windows 10 установить порядок запуска Ubuntu на первое место?

    @abezgauz
    web-кузнец
    Здравствуйте.

    Существует утилита "Grub Customizer". Существуют её альтернативы. В таком порядке я думал.

    https://ruprogi.ru/software/grub-customizer

    Подходит вариант?
    Ответ написан
    2 комментария
  • Как сделать такую сетку на inline-block?

    @abezgauz
    web-кузнец
    Здравствуйте.

    pandaa, поддерживаю предложения с флексами. Оно само просится.

    Дополню:
    1. Для чего делать из блоков строки?

    Строка это то, что находится в контейнере. Ваши блоки (ведь, да?) должны будут содержать внутри себя что-то.

    Это изврат, это противоречие спецификации в котором нет неободимости.

    2. Вообще, никто позиционирование с помощью transform не отменял. Оно живо. И поддержка шире, чем у флексов.
    Ответ написан
  • Как настроить сервер?

    @abezgauz
    web-кузнец
    Здравствуйте.
    Хорошо, что уточнили по поводу адаптера.

    Вставляете в ноут шнур от инета.
    Далее предполагается, что вы успешно запустили установку сервера выставив нужные настройки в bios (с флешки, диска - не суть).

    Делаете разметку (тут инструкции не устарели).
    Подключаетесь к своей сети (аналгин).
    Ждёте завершения установки и уводите машину в ребут.

    Теперь (предполагается, что вы в терминале):

    Узнаём имя устройства.
    iw dev
    iw wlваши_цифры link
    >> not connected...

    Означает, что устройство не подключено ни к одной сети.

    Сканируете доступные сети.
    iw wlваши_цифры scan

    >> command failed: Network is down (-100)

    Означает, что сетевое устройство/интерфейс выключено.

    sudo ip link set iw wlваши_цифры up
    Включаете.

    Повторный вывод списка доступных сетей даст профит, но дальнейшая команда потрубет установки дополнительных пакетов, а инетов то нет. Следовательно, первично настраивать сервер всегда желательно при подключенном кабеле интернета (лирика).

    Подключаемся к нужной сети.
    nmcli dev wifi connect ROUTERSSID SPI

    Гуглите ROUTERSSID SPI - это важные понятия.

    Анализируем выхлоп при пинге на внешнюю машину:
    ping 8.8.8.8

    Если всё ок - отключайте шнур.

    Теперь, обновляете OS:
    sudo apt-get update
    sudo apt-get dist-upgrade


    Читаете, что такое ufw, а пока:
    sudo ufw allow from локальный_адрес_клиента
    где локальный адрес клиента (можно узнать, например из админки роутера или спец.командами, которые в общем доступе в гугле)

    sudo ufw enable
    Пуск.

    Этим самым вы разрешили ВСЁ для клиента и включили брандмауэр.

    Далее:
    sudo apt-get install apache2
    sudo service apache2 status
    Смотрим....
    sudo service apache2 start
    Если не включился
    sudo a2enmod rewrite
    Гуглите, что это и зачем (mod_rewrite)

    sudo apt-get install mysql-server
    sudo apt install php-mysql libapache2-mod-php php-cli php-cgi php-gd mariadb-server-10.6 php php-zip php-xml php-xmlrpc php-curl php-json php-mbstring

    Можно ещё, чтоб веб-морда была:
    sudo apt-get install phpmyadmin

    На вопрос о том с чем сопоставлять (или типа того) выбираете апач.

    После чего начинаете настраивать апач:
    sudo nano /etc/apache2/apache2.conf
    и вставляете в конец:
    Include /etc/phpmyadmin/apache.conf


    Даете права.
    sudo chmod -R 755 /var/www
    sudo chown -R ваш_логин:ваш_логин /var/www

    Сверяйте имя.

    Для работы баз данных.
    sudo -i
    mysql -uroot -p
    SELECT user,plugin,host FROM mysql.user WHERE user = 'root';
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'введите_желаемый_пароль';
    FLUSH PRIVILEGES;


    Выходите из под sudo.
    exit

    Создаёте простую страничку:
    mkdir /var/www/wp
    nano /var/www/wp/index.html
    <html>
    <head>
    <title>testerer</title>
    </head>
    
    <body>
    
    Hello, kitty!
    
    </body>
    </html>


    Ctrl+S

    На клиенте:
    sudo nano /etc/hosts

    Добавляете строку:
    # Временнное
    ip_сервера wp.local www.wp.local


    Ctrl+S

    sudo cp -P /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/wp.conf
    sudo nano /etc/apache2/sites-available/wp.conf
    Раскомментируем: #ServerName www.example.com и заменим на ServerName wp.local
    DocumentRoot /var/www/html на /var/www/wp

    Это конфиг нового сайта.

    sudo a2ensite wp.conf
    Это его включение.

    sudo service apache2 restart

    И уже можете смотреть страничку в обозревателе на клиенте. Или выгрузить архив движка в папку проекта, удалить index.html и выполнить установку сайта.
    Базы данных доступны в локальной сети по адресу: адрес_сервера/phpmyadmin/

    Вам пригодятся:
    mc
    w3m (или кто-то другой)

    Внимание! Это минимум из минимумов!

    p.s.
    Тут до меня дошло. Вам под апач это всё надо же?

    p.s.s.
    Большинство писал на память, сверял некоторые выхлопы гуглением. Ну... Если есть ошибки суть всё-равно должна быть ясна в сочетании с "неактульными манами".
    Ответ написан
    3 комментария
  • Как передать alert в iframe?

    @abezgauz
    web-кузнец
    Здравствуйте.

    >> Тоесть выполнить какое то действие, если нажали на кнопку в index.html, а в page2.html получить результат.
    cookie или localstorage

    Первое, что пришло в голову (реализуемо на чистом js).
    Ответ написан
  • Bbpress не движок?

    @abezgauz
    web-кузнец
    >> Я же прав, bbPress уже не может жить вне установки WP - это просто плагин? Нет никаких отдельных (актуальных) ветвей разработки?
    Ну, как же, сами скинули обсуждение форка... :D Надо проверить их актуальность.
    шучу

    Актуальную версию bbPress вне WP ставить на сегодня не предусмотрено
    Ответ написан
    1 комментарий
  • Как отключить в wordpress вход в систему по имени?

    @abezgauz
    web-кузнец
    Здравствуйте!
    Есть и другой путь:

    /*
     * Сокрытие админского логина
     */
    function hide_login_in_name($author) {
    
    	if ( strstr($author, "Test") ) {
    		return "Test2";
    	}
    	return $author;
    
    }
    
    add_filter('get_comment_author', 'hide_login_in_name');


    Test - подлинное имя
    Test2 - то, что будет отображено вместо него

    Если задались вопросом обеспечения безопаности - пишите в личку, посоветую может ещё чего неинтересного :)
    Ответ написан
    Комментировать