Задать вопрос
Ответы пользователя по тегу WordPress
  • Как разработать свою тему интернет-магазина на woocommerce + elementor pro?

    r3n0
    @r3n0
    // _ AppSec // Bug Bounty / Legal Hacking
    Привет.

    Мне нужна помощь, чтобы разобраться, как все таки можно разработать свою тему под интернет-магазин на WP без кода, или с его минимальным применением (применением готовых кусков, шаблонов и т.д.)

    Какую задачу ты в итоге решаешь? Нужен ИМ на базе WordPress + WooCommerce + Elementor для работы или ты просто хочешь освоить что-то новое для себя?

    Как бы вы реализовывали эту задачу? В чем плюсы и минусы у каждого способа? Что почитать, что посмотреть?

    Задача не совсем ясна, но о некоторых нюансах упомяну.

    "Вукоммерс" - это уже комбайнер, и ты хочешь его завязать с ещё одним комбайнером - "Элементор". Понимаю, что хочется "без кода" в визуальном редакторе накликать нужный результат, но это будет адский замес из костылей и с далеко не самыми скромными требованиями к хостингу и открытым вопросом о дальнейшем сопровождении хотя бы с технической стороны. Более того, шаблоны "Вукоммерс" часто придётся обновлять, учитывая изменения в самом плагине, - это всё для сильно мотивированных людей, а без этих обновлений нередко страницы отображаются вкривь и вкось, если вообще отображаются. Короче, данный вариант для новичка + "без кода" не самый дружелюбный и не самый стабильный.

    "Элементор" тоже тяжёлый плагин. Если версия Pro покупается легально, то есть не варез, то это уже плюс. Каких-то огромных сложностей с пользованием этого конструктора нет, но минимальные технические навыки работы с подобными инструментами очень пригодятся, чтобы при зависании плагина не впадать в ступор.

    Из готовых решений можно посмотреть платные темы оформления на ThemeForest, но у них есть ряд существенных минусов:
    - ориентированность на Запад по части интегрированных систем оплаты и сопутствующих опций/функциональностей;
    - отсутствие гарантий поддержки продукта разработчиком в долгосрочной перспективе;
    - отсутствие гарантий адекватного стандартизированного кода (код-ревью делается, но минимальный, чтобы это не были совсем помои);
    - отсутствие гарантий своевременного закрытия уязвимостей, если таковые будут найдены;
    - принцип all-in-one: в премиум темы/плагины стараются добавить как можно больше разной функциональности, зачастую гибко не настраиваемой, что в итоге даёт ощутимую лишнюю нагрузку на хостинг.

    Если ИМ нужен для последующей продажи товаров через него, то лучше было бы смотреть в сторону нишевых движков: CS-Cart, OpenCart и т.п. Более-менее дружелюбные варианты для новичка.

    Или "Тильда" - там можно добиться сочетания функциональности ИМ и конструктора страниц.
    Ответ написан
  • CloudFlare ломает админку?

    r3n0
    @r3n0
    // _ AppSec // Bug Bounty / Legal Hacking
    Привет.

    Чаще всего эта ошибка появляется из-за неправильных настроек SSL. Какой режим SSL стоит в Cloudflare? Flexible? Если так, то он не подходит для WordPress без донастройки. Должен быть режим "Full (strict)".

    Другой вариант: временно поставь на паузу CF и установи на своём сайте этот плагин - должно помочь. На странице плагина есть мануал по установке и подключению.
    Ответ написан
  • Не работает форма обратной связи на сайте WordPress. Выдает ошибку: Ошибка сервера. Форма не отправлена. Как решить эту проблему?

    r3n0
    @r3n0
    // _ AppSec // Bug Bounty / Legal Hacking
    Привет.

    Для отправки сообщений используется mail() в WordPress, если не настроено иначе, например, через плагин. У тебя же ошибка cURL, и какая-то странная загрузка чего-то, хорошо хоть из официального репозитория. Включи и посмотри лог ошибок PHP или дебаг WordPress, там будет полезная информация по твоей ситуации. Без подробностей эти два события - отправка сообщения через форму обратной связи и ошибка cURL - никак не связаны между собой.

    По связке WordPress и cURL #7 я предположу, что на странице "Health Check" у тебя будет минимум 3 проблемы подсвечены: ошибка WordPress REST API, отсутствие доступа к wordpress.org и невозможность выполнения петлевого запроса. Тут три совета: а) обратиться в техподдержку хостинга, чтобы они на своей стороне исправили ошибку (наиболее частые варианты: блокировка с их стороны и проблема с корневыми сертификатами); б) если сайт работает по https://, то проверь, чтобы он целиком гонял запросы по этому протоколу (исключи возможность CORS-ошибки); в) если используется какой-то механизм защиты/фаерволла - временно отключи для диагностики проблемы (плагины защиты нередко создают большие проблемы для владельцев и пользователей сайта).
    Ответ написан
  • Вышло уведомление в админке в wordpress. Не закрывается и не дает работать. Как исправить?

    r3n0
    @r3n0
    // _ AppSec // Bug Bounty / Legal Hacking
    Привет.

    Описание ситуации мизерное, так что посоветовать для начала могу это: первое - смотри логи ошибок PHP или дебаг WordPress; второе - смотри консоль браузера на предмет ошибок; третье - посмотри откуда тянется этот "зависший" элемент; четвёртое - удали кеш.

    З.Ы.: скорее всего аддон заброшен автором, было бы разумнее поискать альтернативу.
    Ответ написан
  • Не могу зайти в редактирование в wp?

    r3n0
    @r3n0
    // _ AppSec // Bug Bounty / Legal Hacking
    Привет.

    Не знаю, актуален вопрос или нет, но скорее всего дело либо в read-only файлов, либо в сбитых правах/владельце файлов и директорий. Если эта ситуация не относится к системе/веб-серверу, тогда смотрите в сторону самого WordPress: либо какой-то плагин тюнинга/защиты так срабатывает, либо константа в wp-config.php.

    Более ничего предположить не могу, опираясь на скудное описание проблемы.
    Ответ написан
    Комментировать
  • Как скрыть кнопку Добавить в корзину?

    r3n0
    @r3n0
    // _ AppSec // Bug Bounty / Legal Hacking
    Привет.

    Итоговая реализация потребует кастомизации под задачу, но оттолкнуться можно от этого.

    Выводим ссылку на загрузку файла в карточке товара:
    add_action('woocommerce_product_meta_end', 'download_products');
    
    function download_products() {
    	global $product;
    	$files = $product->get_files();
    	if ( !empty($files) && current_user_can( 'vipuser' ) && has_term( 'vipaccess', 'product_cat' ) ) {
    		foreach( $files as $key => $each_download ) {
    			echo '<p><a href="' . $each_download['file'] . '" download>Скачать файл <!--'. $each_download['name'].'--></a></p>';
    		}
    	}
    }


    Убираем из карточки товара цену, количество и кнопку добавления товара в корзину:
    add_action('init', 'remove_add2cart_for_vip_users');
    
    function remove_add2cart_for_vip_users(){
    	if ( is_user_logged_in() && current_user_can( 'vipuser' ) ) {
    		remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 );
    		remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 );
    		remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
    	}
    }


    Из очевидного: а) делать такое на базе Вукоммерс своими силами — затея довольно сомнительная из-за самого Вукоммерса; б) проще/лучше воспользоваться готовыми плагинами; в) если всё же хочется написать эту функциональность самому, то надо более основательно продумывать логику, потому что тут легко перемудрить или, наоборот, не доглядеть что-то с ролями/правами/доступами.
    Ответ написан
    Комментировать
  • Могут ли по сайту найти админа?

    r3n0
    @r3n0
    // _ AppSec // Bug Bounty / Legal Hacking
    Привет.

    Могут ли по сайту найти админа?

    Могут. Вопрос в том, кто будет искать.

    Насколько реально получить из сайта на Вордпресс личную информацию админов?

    Зависит от того, что за информация там хранится, а главное — для чего и зачем*.

    То есть, узнать из реальный IP и прочую подобную информацию.

    Что за "прочая подобная информация"? Почта?

    Учитывая сколько уязвимостей находится в плагинах и темах оформления WordPress, больше шансов на утечку с этой стороны. Опять же, где хранятся такие данные? В базе данных, что логично, — это раз. Значит, SQLi для тебя будут особенно болезненными. Часто встречаются такие уязвимости в плагинах? Весьма.

    Два — логи всевозможных плагинов "защиты", и тут уже много нюансов, начиная от торчащих наружу логов, неправильного распределения прав в самом плагине, что может привести к раскрытию чувствительной информации, заканчивая более серьёзными уязвимостями. Тут, очевидно, проблемой становится сам плагин "защиты", добавляющий тебе рисков там, где, по идее, должен от них избавлять.

    Третье — IP и почта отображаются на странице с комментариями в админпанели (и хранятся в отдельной таблице базы данных, что логично). Если комментарии не нужны на сайте, то имеет смысл их отключить глобально. Если нужны — убрать логирование IP и почты комментаторов.

    Это самое базовое. Остальные нюансы зависят от используемых плагинов и от того, где что они добавляют/убирают/выводят/хранят.

    *
    На сайте работает плагин Loginozer Pro с защитой от брутфорс-атак и прочими подобными настройками, если что

    Это всё вообще ни о чём. Более того, такой класс плагинов чаще как раз помогает при атаке злоумышленникам, нежели наоборот. Что самое смешное, ведь именно этот плагин (как минимум) и хранит в себе то, утечку чего ты хочешь не допустить, и то, чего изначально в самом WordPress нет — подробных логов с IP/почтами/логинами и прочего. Не говоря о том, что защита от всяких брутфорсов в последнюю очередь должна решаться силами самой CMS.

    Вообще, лучше вопрос ставить изначально иначе, более конкретно: от кого/чего хочешь защититься, какие риски? Ответив на эти вопросы, ты поймёшь что и как надо защищать.

    Если речь про органы правопорядка, то уровень сайта — это сразу мимо. Такие вопросы "там" решаются на другом уровне by design.
    Ответ написан
    Комментировать
  • Как настроить адаптив элементов wpbakery page builder?

    r3n0
    @r3n0
    // _ AppSec // Bug Bounty / Legal Hacking
    Привет.

    У конструктора есть специальная вкладка (для колонок) "Настройки адаптивности", где ты регулируешь ширину (этих самых колонок) и смещение/ширину для основных устройств.
    Ответ написан
  • Wordpress печатает код шаблона, как его удалить?

    r3n0
    @r3n0
    // _ AppSec // Bug Bounty / Legal Hacking
    Привет.

    Начни диагностику с самого простого: по очереди отключай плагины один за другим, каждый раз проверяя ушли эти обрывки кода или нет. Если движок актуальной версии, то также проверь, чтобы все плагины были обновлены. Очень большой шанс, что проблема именно с каким-то плагином, чуть меньше шансов, что проблема вызвана активной темой оформления. Ещё меньше шансов, что проблема в серверном ПО. Перед любыми экспериментами, разумеется, имеет смысл сделать полную резервную копию сайта.

    Что ещё может помочь: логи ошибок (либо дебаг WordPress, либо логи PHP).

    Вроде бы есть функция wp_print_media_templates(), которая это делает. Она есть в одном месте сайта: public_html/wp-includes/media.php
    Но я боюсь это комментировать, т.к. не знаю, чем аукнется.
    Это и не нужно комментировать, потому что это системный файл. Можно на будущее взять за основу правило не вмешиваться в работу директорий /wp-admin/ и /wp-includes/. Таким образом ты избавишь себя от кучи проблем.
    Ответ написан
  • Как подключить вордпресс по FTP к серверу на таймвеб?

    r3n0
    @r3n0
    // _ AppSec // Bug Bounty / Legal Hacking
    Привет.

    Если IP/root/пароль от "ТаймВеб", то предположу, что у тебя VPS. Для подключения по FTP должны быть другие креды - это раз. Два - может быть классическая проблема с правами на директории и файлы при переносе + проверить пользователя от имени которого запущен веб-сервер и кто владелец директорий/файлов непосредственно. Третье - можно попробовать указать в wp-config.php директиву define('FS_METHOD', 'direct');.
    Ответ написан
    Комментировать
  • Как лучше организовать платную подписку на сайте WordPress?

    r3n0
    @r3n0
    // _ AppSec // Bug Bounty / Legal Hacking
    Привет.

    Решений много, как платных, так и бесплатных. Бесплатные можешь поискать в репозитории WordPress по ключевым словам: members-only, paywall, members, membership, restrict-access, subscriptions. Платёжные шлюзы российских агрегаторов придётся добавлять отдельно.

    Платные решения: обычно дорогие, без гарантий поддержки разработчиком плагина в будущем, нужные российские платёжные шлюзы будут далеко не везде, если вообще будут.

    Альтернативный вариант решения задачи: нанять разработчика на фрилансе.
    Ответ написан
    Комментировать
  • Как правильно подключать файлы внутри плагина WP есть уязвимость: Unauthenticated Local File Inclusion (LFI)?

    r3n0
    @r3n0
    // _ AppSec // Bug Bounty / Legal Hacking
    Привет.

    У тебя там эта уязвимость встречается ещё минимум один раз. Плюс, есть BAC и PXSS. По-мелочи ещё косяки видны, но это уже второстепенное.

    По идее, тебе контакт от WPScan должен был либо отчёт отправить, либо в письме самом дать PoC и детали по уязвимости как упомянутый LFI воспроизводится.

    66792dd53eea3280146718.png

    Возможен импорт/экспорт настроек фильтра гостем, потому что нет проверки доступа/привилегий. Тут же возможен вектор с XSS, если сначала выполнить импорт с полезной нагрузкой, а потом экспорт с валидным nonce-токеном.

    Persistent XSS с правами контрибьютора и выше через шорткоды.

    В открытом доступе писать детали незакрытых уязвимостей не есть хорошая практика, а контакта твоего я не нашёл нигде.
    Ответ написан
    Комментировать
  • Не работают ссылки на страницы сайта на WordPress в хромиум браузерах, в FireFox все отрабатывается корректно. Что сделать?

    r3n0
    @r3n0
    // _ AppSec // Bug Bounty / Legal Hacking
    Привет.

    Вёрстка странная - это раз. Два - у тебя одна ссылка перекрывает собой вторую ссылку, смотри:

    <div class="s6_box">
    	<div class="product_bg _1">
    		<a href="https://put-k-rodam.ru/catalog/podgotovka-k-zachatiyu/" class="product_link product w-inline-block"><div class="btn add">узнать подробнее</div></a>
    		<h3 class="h3 prduct"><a href="#" class="h3_link">Подготовка к зачатию</a></h3>
    	</div>
    </div>


    Вот это чудо
    <h3 class="h3 prduct"><a href="#" class="h3_link">Подготовка к зачатию</a></h3>
    и перекрывает нормальную ссылку. Учитывая это месиво с разметкой, было бы уместно сначала спросить, что ты пытаешься реализовать таким странным образом.
    Ответ написан
    3 комментария
  • В результате поиска не выводится миниатюра wordpress?

    r3n0
    @r3n0
    // _ AppSec // Bug Bounty / Legal Hacking
    Привет.

    Говоря простым языком, если ПС Google не видит точной заглавной картинки (featured image) статьи, то она будет пытаться угадать какая картинка в статье наиболее точно подходит к тексту, и отображать в своей выдаче именно её.

    Что можно сделать, чтобы улучшить ситуацию: schema.org / og:image и следование общим лучшим практикам конкретно для этой ПС. В случае с WordPress такая задача может решаться в т.ч. и с помощью плагина.

    Конкретных деталей нет, так что более предметно говорить не о чем. Что гуглить и во что вникать я написал выше.
    Ответ написан
    Комментировать
  • Как в cf7 реализуется checked на чекбоксы?

    r3n0
    @r3n0
    // _ AppSec // Bug Bounty / Legal Hacking
    Привет.

    Если правильно понял суть вопроса:

    .wpcf7-form .wpcf7-checkbox input[type=checkbox]:checked {
    	//нужные стили
    }
    Ответ написан
    Комментировать
  • Как исправить проблему со входом в админ панель wordpress?

    r3n0
    @r3n0
    // _ AppSec // Bug Bounty / Legal Hacking
    Привет.

    После занесения логина и пароля и нажатия кнопки войти - перехода в админку не происходит, просто обновляется страница входа.

    Посмотрите в браузере в инструментах разработчика вкладки "Console" и "Network". В первой интересуют сообщения об ошибках, во второй - уходит ли вообще запрос после ввода пары логин:пароль.

    база данных была заблокирована провайдером в качестве защиты от повреждений

    Что за компания, если не секрет?

    wp-config/htaccess в норме

    А что в вашем случае есть норма? Вы там не увидели каких-то аномалий?

    Как исправить ошибку, в чем может быть причина?

    Смотрите логи ошибок PHP и консоль браузера, тут нужно больше информации. Можете попробовать в другом браузере или в режиме "Инкогнито" залогиниться на своём сайте, у WordPress иногда случается глюк с cookies, и как раз на странице входа в админапанель.
    Ответ написан
    2 комментария
  • Contact form 7 как обязательные поля обводить красным?

    r3n0
    @r3n0
    // _ AppSec // Bug Bounty / Legal Hacking
    Привет.

    .wpcf7-not-valid {border: 1px red solid;}
    Ответ написан
    Комментировать
  • Можно такой интернет-магазин реализовать на Wordpress?

    r3n0
    @r3n0
    // _ AppSec // Bug Bounty / Legal Hacking
    Привет.

    Подскажите пожалуйста, на сколько реально реализовать такой сайт на Wordpress и реально ли это?
    На 100% реально. Но не факт, что оптимально.

    Возможно под это подойдет лучше OpenCart или что то другое?

    Возможно. Зависит от деталей задачи и от компетенций исполнителя.

    Или тут нужно разрабатывать CMS отдельно под такой сайт?

    Это изобретение велосипеда. Эксклюзивной функциональности вы не перечислили, и вполне можно использовать уже готовые решения, как самой CMS, так и нужных модулей.
    Ответ написан
    Комментировать
  • Можно ли как то понять это проблема Woocommerce (WordPress) админки или моего хостинга nginx?

    r3n0
    @r3n0
    // _ AppSec // Bug Bounty / Legal Hacking
    Привет.

    И самое главное я не помню было ли так изначально и что там должно быть?

    Эта ерунда используется для внутренних уведомлений WooCommerce, всяких промо-акций и прочего мусора, который проталкивает разработчик. Вот эта ерунда и падает в этот самый Inbox. Выглядит это так:

    64bbbd4f35359848303391.png

    А когда мусора там нет, то выглядит это вот так:

    64bbbd6f16fd7596177515.png

    Можно ли как то понять это проблема Woocommerce (WordPress) админки или моего хостинга nginx?

    Эта ошибка связана, если не запамятовал, с количеством передаваемых в URL символов. Чаще всего ломается из-за плагинов тюнинга или безопасности, но в более редких случаях из-за конфига веб-сервера.
    Ответ написан
    3 комментария
  • Где посмотреть действующий пароль при создании заказа woo?

    r3n0
    @r3n0
    // _ AppSec // Bug Bounty / Legal Hacking
    Привет.

    В актуальной версии WooCommerce v7.9.0 есть опция «When creating an account, send the new user a link to set their password» (вкладка «Accounts & Privacy» на странице настроек плагина) — это решение пришло на замену отправки пароля в открытом виде на почту нового пользователя, как было ранее. Без этой опции при оформлении заказа увидите поле для ввода желаемого пароля.

    А если я от лица заказчика хочу изменить пароль на свой. Тогда как? Ведь там будучи уже на аккаунте требует ввести действующий пароль в настройках профиля.
    Такая логическая ошибка есть очень много где, и никаким другим способом, кроме восстановления пароля, оно не лечится.
    Ответ написан
    Комментировать