• Как сделать обязательную авторизацию на сайте WordPress?

    @Kanare Автор вопроса
    С помощью GPT нашёл вариант оставлю тут возможно кому-то пригодится в будущем

    Внести изменения в functions.php своей темы

    function custom_force_login() {
        if (!is_user_logged_in()) {
            auth_redirect();
        }
    }
    
    add_action('template_redirect', 'custom_force_login');


    Этот код перенаправит неавторизованных пользователей на страницу входа WordPress. Важно обновлять свой код и тему после обновления WordPress, чтобы избежать возможных конфликтов.

    Если ты не хочешь использовать код, существуют также плагины, такие как "Peter's Login Redirect", которые предоставляют удобные интерфейсы для настройки перенаправлений после входа в систему.
    Ответ написан
    Комментировать
  • Как посчитать разницу между двумя датами в секундах, минутах, часах и т.д.?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    Почему так происходит, и как такое можно решить?

    Потому что объект Date возвращает дату, а не интервал времени. Попробуйте так:
    function getTimeDiff(startDate, endDate) {
      const diff = endDate - startDate;
    
      const seconds = Math.floor(diff / 1000);
      const minutes = Math.floor(seconds / 60);
      const hours = Math.floor(minutes / 60);
      const days = Math.floor(hours / 24);
      const months = Math.floor(days / 30); // ~30
      const years = Math.floor(days / 365); // ~365
    
      return {
        years,
        months: months % 12,
        days: days % 30,
        hours: hours % 24,
        minutes: minutes % 60,
        seconds: seconds % 60
      };
    }
    
    const today = new Date();
    const targetDate = new Date("2023-12-29 00:00:00");
    const diff = getTimeDiff(targetDate, today);
    
    console.log(`Разница, лет: ${diff.years}, месяцев: ${diff.months}, дней: ${diff.days}, часов: ${diff.hours}, минут: ${diff.minutes}, секунд: ${diff.seconds}`);
    
    // Разница, лет: 0, месяцев: 0, дней: 0, часов: 9, минут: 51, секунд: 22
    Ответ написан
    Комментировать
  • Как скрыть поля acf?

    @webfellix
    В настройках вкладки (таба), выберите "Условная логика", там поставьте какие то невозможные условия для показа.
    65618f9e42c97721560063.jpeg
    Ответ написан
    Комментировать
  • Как удалить ненужные символы в строке?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    // returns true if has contain spam
    const checkForSpam = function (message) {
      const c = message.toLowerCase().replace(/[^a-z\s]/g, '');
      const w = c.split(' ');
      return w.includes('spam') || w.includes('sale');
    }
    
    console.log(checkForSpam('[SPAM] How to earn fast money?')); // true

    Но я бы не зашивал в функцию исчерпывающий перечень стоп слов, а передавал их в нее:
    // returns true if has contain spam
    const checkForSpam = function (message, stops) {
      const c = message.toLowerCase().replace(/[^a-z\s]/g, '');
      const w = c.split(' ');
      return stops.some(word => w.includes(word));
    }
    
    console.log(
      checkForSpam(
        '[SPAM] How to earn fast money?',
        ['spam', 'sale']
      )
    ); // true
    Ответ написан
    4 комментария
  • Приоритет выполнения операндов и операторов. Почему так происходит?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Разница в примерах – в возвращаемом значении:
    • alert(value) возвращает undefined
    • myalert(value) возвращает value


    Выражение A || B && C разбирается как A || (B && C)

    Сначала оценивается A. Если оно приводится к false, требуется проверить второй аргумент ||, т.е. (B && C)
    Сначала проверяется B. Если оно приводится к false, то проверять C уже не нужно.
    Ответ написан
    5 комментариев
  • Как подключить уже готовую форму в wordpress?

    @FlipWho
    Самый популярный на сегодня CF7.
    Сам им пользуюсь. Есть встроенная поддержка рекапчи от Гугла, или можно сделать "викторину" (Просишь пользователя что-нибудь ввести в поле, тем самым доказать что он не робот, обычно решение легкого сложения/вычитания).

    И не забудь, что сейчас идет борьба со спамом, и поэтому sendmail будет жестко выпилен в спам. Поэтому обязательно создай учетку на почтовом сервере для ВордПресса и настрой отправку писем и уведомлений через SMTP. Например, через WP SMTP.
    Ответ написан
    Комментировать