• Как создать каталог товаров и карточку товара в модальном окне на Wordpress?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте!
    Не знаю какой плагин использовать для вывода. Или как организовать вывод. Прошу направить по этому вопросу.

    Если вам нужен интернет-магазин, то вам скорее всего нужен плагин Woocommerce. Витрина, каталоги, товары (виртуальные, скачиваеыме, вариативные, одиночные и т.д.), корзина и многое другое.

    Есть карточка товара в модальном окне по любому товару. В ней есть поля и слайдер. Тоже прошу подсказать, как лучше организовать.

    Вы хотите при клике на карточке товара аяксом загружать информацию о товаре и отображать в модальном окне.
    1) реализовать самому - клик на элементе триггерит аякс запрос на сервер с ID товара. На ответ возвращаются данные о товаре в json и это все добавляется в модалку
    2) использовать готовый плагин -
    Например - WooCommerce Quick View
    https://ru.wordpress.org/plugins/woo-quick-view/
    https://ru.wordpress.org/plugins/yith-woocommerce-...
    Можно еще поискать, если эти не устроят. Например, можно глянуть на codecanyon
    3) найти готовую тему, в которой некий функционал quick view уже реализован. За этим на themeforest
    Ответ написан
  • Как поменять ссылки кнопок в WooCommerce?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Так вам надо при помощи хуков скрыть кнопку "В корзину" в каталоге.
    Далее вместо нее добавить другую кнопку с названием "Подробнее" и в качестве ссылки вывести permalink и все.

    Скрыть корзину - https://stackoverflow.com/questions/26976296/hide-...
    add_action( 'woocommerce_after_shop_loop_item', 'remove_add_to_cart_buttons', 1 );
    
        function remove_add_to_cart_buttons() {
          if( is_product_category() || is_shop()) { 
            remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart' );
          }
        }


    А вот, тут информация, как заменить кнопку на кастомную кнопку -
    https://stackoverflow.com/questions/43914659/repla...
    Ответ написан
    2 комментария
  • Слайдер для WordPress?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Вам именно плагин нужен или скрипт подойдет?
    Вот, скрипты -
    https://owlcarousel2.github.io/OwlCarousel2/
    flexslider.woothemes.com
    А если плагин, то:
    Layer Slider
    Revolution Slider
    Ответ написан
    Комментировать
  • Какое можно выбрать решение для мини магазина на wordpress?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Задача состоит в том чтобы натянуть верстку именно на WP. А дальше какие плагины я буду использовать это уже не так важно.


    Важно какой плагин вы будете использовать, чтобы натянуть верстку на WP. Так как каждый из плагинов имеет свой API и соответственно, адаптировать шаблоны нужно под шаблон.

    Рекомендую Woocommerce.
    Этапность работы:
    1) создать тему для ВП - https://codex.wordpress.org/Theme_Development
    2) интегрировать WC в вашу тему - https://docs.woocommerce.com/document/woocommerce-...
    Ответ написан
    Комментировать
  • Какие подводные камни при создании новостного сайта с помощью граберов?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте!
    1) То что вы добавите активную ссылку на первоисточник, это не говорит о том, что вы юридически защищены. Например, в случае, если они на сайте написали, что "копирование материалов сайта без разрешения администратора строго запрещено". Но обычно, проблем не наблюдается.
    2) С точки зрения SEO на мой взгляд это бесполезная затея, ибо уже куча сайтов-дупликаторов, которые при помощи парсеров копируют контент. Проблема в том, что для поисковиков в силу того, что ваш материал является полностью скопированным, то нет смысла его продвигать, ибо эти сайты в результатах выдачи всегда будут ниже, чем первоисточники. В общем, скопированный контент = некачественный контент. И вроде бы могут даже заблокировать сайт (не уверен в этом)
    3) Вариант с парсингом и уникализацией контента, тоже чреват последствиями, так как иногда текст становится нечитабельным и соответственно, постоянных пользователей сайта не будет...
    Ответ написан
    3 комментария
  • Итог натяжки верстки на вп и создания темы на вп один и тот же?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Нет разницы в натяжке или в создании темы. Это одно и тоже!
    Почему могла возникнуть разница?

    Потому, что некоторые недобросовестные разработчики из-за лени вместо создания нормальной темы, которую можно полноценно редактировать из админки (неважно как, хоть виз. редактором, хоть кастомными полями, хоть фреймворком например, Redux, хоть стандартными средствами WP), создают шабоны, в которые впихивают весь html код. К слову, даже не утруждаются нормально стили и скрипты подключить используя functions.php (согласно кодексу ВП), а заливают все через header.php. Не раз имел дело с такими сайтами и не раз терял кучу времени, чтобы дать возможность клиенту редактировать страницы сайта из админки.
    Так что... разницы в натяжке или создании темы нет, если вы добросовестно делаете свою работу.т
    Ответ написан
    Комментировать
  • Как на сайте доставки еды в Wordpress настроить время оформления заказов без доп.плагинов?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Без доп. плагинов точно не подскажу. Можно например, средствами js отлавливать клик на добавление товара в корзину и другие необходимые триггеры, а далее в случае, если время нерабочее, то сделать event.preventDefault и показать модалку с просьбой оформить заказ позже. Ну и разумеется кнопку "Оформить заказ" теми же средствами js сделать disabled и все
    А при помощи плагинов думаю, что сами найдете, так как подобных плагинов куча.
    Ответ написан
    Комментировать
  • Как закончить программу "Максимальное значение"?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Здравствуйте!

    Вот, ваш исходый код:
    import java.util.ArrayList;
    import java.util.Scanner;
    
    public class Main {
    
        public static void main(String[] args) {
            Scanner input = new Scanner(System.in);
            ArrayList array = new ArrayList<>();
            System.out.println("Введите числа");
            while (true) {
                int number = input.nextInt();
                array.add(number);
                if (number == 0) {
                    break;
                }
                int max = 0;
                
                for (int i = 0; i < array.length; i++) {
                    if (array.get(i) > max) {
                        max = array.get(i);
                    }
                }
    
            }
        }
    
    }


    Вы пытаетесь получить размер используя length, но при этом используете объект ArrayList. У ArrayList для получения размера нужно использовать size()
    Ошибка:
    i < array.length;
    Либо создавайте массив чисел, либо если используете ArrayList (списочный массив), то вызывайте метод size() для получения размера списка.

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

    Добавил комментарии в код:
    if (number == 0) {
                    break; // вышли из цикла
                }
    
                // до сюда код не исполнится, так как выше break и вы вышли из цикла
                int max = 0;
                for (int i = 0; i < array.length; i++) {
                    if (array.get(i) > max) {
                        max = array.get(i);
                    }
                }


    А тут вам нужно передать параметризованный тип (желательно)
    До -
    ArrayList array = new ArrayList<>();
    После -
    ArrayList<Integer> array = new ArrayList<>();

    Что касается получения максимального значения числа, то почему бы вам не воспользоваться возможностями пакета Math ? В частности метод max() или например, метод max() в Collections.

    Вот, рабочий код:
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.Scanner;
    
    public class Main {
    
        public static void main(String[] args) {
    
            Scanner input = new Scanner(System.in);
            ArrayList<Integer> array = new ArrayList<>();
            System.out.println("Введите числа");
    
            while (true) {
                int number = input.nextInt();
                array.add(number);
    
                if (number == 0) {
                    break;
                }
            }
    
            int maxValue = Collections.max(array);
            System.out.println("Максимальное число " + maxValue);
    
        }
    
    }


    Если вы хотите найти макс. значение самой итерируя по списку, то вот, другое решение
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.Scanner;
    
    public class Main {
    
        public static void main(String[] args) {
    
            Scanner input = new Scanner(System.in);
            ArrayList<Integer> array = new ArrayList<>();
            System.out.println("Введите числа");
    
            while (true) {
                int number = input.nextInt();
                array.add(number);
    
                if (number == 0) {
                    break;
                }
            }
    
            /*int maxValue = Collections.max(array);
            System.out.println("Максимальное число " + maxValue);*/
    
            int maxValue = 0;
            for (int i : array) {
                if (array.get(i) > maxValue) {
                    maxValue = array.get(i);
                }
            }
            System.out.println("Максимальное число " + maxValue);
        }
    
    }
    Ответ написан
    Комментировать
  • Как удалить лишний CSS?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    ммм... было бы неплохо уточнить вопрос, так как я тут увидел несколько вложенных вопросов:

    Как удалить лишний CSS?

    Если речь идет об удалении лишнего CSS кода, то вы можете скачать ваш проект, открыть его в IDE (Webstorm или любой другой продукт Jetbrains) и в инспекторе выбрать unused css.
    Другой вариант - установить старую версию лисы до 52.
    Найти указанные тут дополнения и почистить ваш сайт -
    Dust Me Selectors
    CSS usage

    Внимание! В новых версиях лисы они не работают!
    https://stackoverflow.com/questions/7147441/firefo...

    А вот, онлайн сервис для удаления неиспользуемого CSS - https://unused-css.com/

    Но что делать с теми файлами, на которые ссылается мой сайт, как их убрать или запретить ссылаться на них.

    В ВП стили и скрипты подключаются через functions.php (в норме). Иногда если это самопис, то можете увидеть подключение кода в header.php || footer.php
    Правильно ли я понимаю, что вы выкачали эти стили и теперь, внешние не нужны вам, так как они у вас уже имеются локально? Если так, то установите плагин query monitor на ваш сайт, найдите handle этих скриптов и при помощи wp_dequeue_style() удалите
    https://wp-kama.ru/function/wp_dequeue_style
    https://ru.wordpress.org/plugins/query-monitor/
    Ответ написан
    Комментировать
  • Как перенести сайт Wordpress с локального сервера на хостинг?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Поиском нашла этот файл но директория такая /public_html/wp-content/plugins/akismet/

    это явно не тот htaccess файл, который вам нужен. Akismet - плагин для ВП от СПАМа.

    и там говорилось что что содержимое файла .htaccess который находиться на хостинге надо скопировать и там куда то вставить.

    не знаю, что за хостинг у вас и что нужно скопировать и вставить. Но сам ВП после установки /переноса генерирует htaccess с нужным для его работы содержимым. Возможно, что в htaccess на хостинге содержатся доп. конфиги. Отсюда ответ - свяжитесь с хостингом.

    Я могу создать файл .htaccess?

    Разумеется что можете. В этом нет ничего запретного)
    Ответ написан
  • Как перенести лендинг на вордпрессе?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Вот создал я с помощью элементора лэндинг на своем локальном сервере (OpenServer) и как мне его перенести на хостинг?

    Что сложного в переносе сайта на хостинг? Закачиваете по фтп весь сайт. Создаете БД на хостинге. Импортируете таблицы. Изменяете доступы к БД. Изменяете URL'ы на действующий домен.

    Единственный адекватный плагин который я знаю за бесплатно не будет работать

    Плагин для переноса сайта не нужен. Но если вы хотите перенести сайт при помощи плагина, то Duplicator || UpdraftPlus Backup

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

    А это уже совсем другой вопрос. Вам нужно именно сайт перенести или вы хотите разрабатывать сайт на CMS, а на сервер заливать статику?
    В этом случае, вам скорее всего подойдет GatsbyJS или Jekyll. В контексте ВП прочитайте это - https://www.gatsbyjs.org/docs/sourcing-from-wordpress/
    https://ru.hexlet.io/blog/posts/kogda-gatsby-zamen...

    Gatsby — фреймворк, написанный на React. Это генератор статических сайтов, с помощью которого можно создавать полноценные веб-приложения.


    https://jekyllrb.com/docs/
    https://www.smashingmagazine.com/2017/04/jekyll-wo...
    https://www.kobzarev.com/wordpress/wordpress-to-jekyll/
    Ответ написан
    Комментировать
  • Как сделать авторизацию в Android приложении?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Можно же реализовать JWT авторизацию (bearer token).
    А далее каждый раз при запуске вашего приложения вместо ввода логина и пароля отсылаете на сервер токен и авторизовываете пользователя. Сервер на чем у вас написан? Используется ли фреймворк?
    Вот, например, решение на Spring + Spring Security
    https://www.callicoder.com/spring-boot-spring-secu...
    https://habr.com/ru/post/278411/
    https://github.com/hantsy/springboot-jwt-sample
    https://auth0.com/blog/implementing-jwt-authentica...
    https://www.baeldung.com/spring-security-oauth-jwt
    Ответ написан
    3 комментария
  • Как решить данную ошибку компиляции?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Тут рекомендуют переименовать файл - https://stackoverflow.com/questions/23169333/error...

    Вот, другое решение:
    https://stackoverflow.com/questions/39428174/andro...

    android {
        ....
        aaptOptions {
            cruncherEnabled = false
        }
        ....
    }


    А вот, Google
    Ответ написан
  • Почему ACF зло?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Вы знаете, достаточно вам погуглить любой плагин или стек технологий и добавить слово "зло", как вы найдете кучу информации о том, что есть плагины лучше и т.д. С таким же успехом можно сказать, что WordPress - зло и при этом вы не ошибетесь.
    Говоря проще, все зависит от конечной цели, которой вы хотите достичь и тут стает вопрос о целесообразности использвания того или иного плагина или стека технологий, фреймворков и т.д.
    ACF не большее зло, чем визуальные редакторы, которые постоянно глючат, загружают кучу скриптов и стилей и т.д. Но если конечному пользователю нужно самому редактировать контент, то понятное дело, что вы не посоветуете ему лезть в код или создавать кастомные поля и выводить их в шаблоне, а скорее всего установите виз. редактор или напишете необходимый функционал для Gutenberg. Ну и если не нравится ACF, то можете присмотреться к Carbon Fields. Но я уже немало проектов реализовал используя ACF Pro и проблем не наблюдал.
    Ответ написан
    Комментировать
  • Почему одна страница не переходит на https?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Открываете исходный код страницы вашего сайта и смотрите, что там отдается по http вместо https
    и видим, что на главной есть 5 ссылок с http, а именно svg иконки
    5eceb99341cf6826182761.png
    справа внизу в футере есть свг иконки (кнопка play). СВГ вставлены в страницу, но при этом
    xmlns="http://www.w3.org/2000/svg"
    заменяем на
    xmlns="https://www.w3.org/2000/svg"
    готово
    Ответ написан
  • Как вытащить символы кроме запятой и цифр в Java?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    public class Main {
    
        public static void main(String[] args) {
    
            String a = "100 ₽";
            String b = "$4,99";
            String c = "9,99 €";
            String d = "100 CA$";
    
            // Паттерн
            String regex = "\\p{Sc}";
            Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
    
            // передали переменную a, b, c или d в метод matcher()
            Matcher matcher = pattern.matcher(a);
    
            while (matcher.find()) {
                // Выведет ₽, $, €, $
                System.out.println(matcher.group());
            }
    
        }
    
    }

    https://howtodoinjava.com/regex/java-regex-match-a...
    Ответ написан
    5 комментариев
  • Как создать разный функционал в личных кабинетах пользователей?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Ну для начала создайте 2 роли для оптивиков и розничных покупателей.
    Затем при регистрации в зависимости от выбранной радиокнопки присваиваете пользователю соответствующую роль.
    После этого уже в плагине WP Recall в личный кабинет отдаете нужный контент в зависимости от роли пользователя.
    Ответ написан
  • Как сделать такое меню в WordPress?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте!
    Если ваша тема на бутстрап, то можете использовать это:
    https://bootsnipp.com/search?q=accordion+menu
    Тут куча сниппетов accordion menu
    Вот, например - https://bootsnipp.com/snippets/x6dN
    Вот, еще вариант - https://bootsnipp.com/snippets/prnvG
    А далее так как вам надо это все прикрутит к ВП, то нужен Walker.
    Для бутстрапа используйте - https://github.com/wp-bootstrap/wp-bootstrap-navwalker
    Ответ написан
    1 комментарий
  • Как правильно работать с CopyOnWriteArrayList?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Допустим, есть web-страничка на которой пользователи делают действия. История действий записывается в переменную типа CopyOnWriteArrayList

    Не совсем вас понимаю, как именно история действий записывается в переменую CopyOnWriteArrayList? А самое главное - зачем?

    Может быть есть смысл сделать следующее:
    записывать историю действий в localStorage браузера пользователя (средствами JavaScript), а далее по исстечению определенного времени или по нажатию кнопки "Сохранить" или еще какого-либо другого триггера сохранить все в БД.
    Ответ написан
  • Как узнать на чем запущено android приложение, на телефоне или планшете?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Determine if the device is a smartphone or tablet?
    https://stackoverflow.com/questions/9279111/determ...

    Correctly detect Android device type
    https://stackoverflow.com/questions/40157799/corre...

    Google
    Ответ написан
    Комментировать