Fatal error: Maximum execution time of 120 seconds exceeded in class-phpmailer.php


При возникновении подобной проблемы загляните в этот файл wp-includes/class-phpmailer.php - у меня ошибку выдавало на функцию public static function validateAddress ($address, $patternselect = 'auto') - типа не могло свалидировать почту через длинные регулярки.

В инете нашлось и не сколько обсуждений по этому поводу: первое и второе

Вообщем, если не отправляется почта в wordpress - идем в этот файлик и ищем нашу функцию. Привожу начало функции (как я у себя подправил):

    public static function validateAddress($address, $patternselect = 'php')
    {
        //Reject line breaks in addresses; it's valid RFC5322, but not RFC5321
        if (strpos($address, "\n") !== false or strpos($address, "\r") !== false) {
            return false;
        }
        if (!$patternselect or $patternselect == 'auto') {
            //Check this constant first so it works when extension_loaded() is disabled by safe mode
            //Constant was added in PHP 5.2.4
            if (defined('PCRE_VERSION')) {
                //This pattern can get stuck in a recursive loop in PCRE <= 8.0.2
                if (version_compare(PCRE_VERSION, '8.0.3') >= 0) {
                    $patternselect = 'php';
                } else {
                    $patternselect = 'php';
                }
            } elseif (function_exists('extension_loaded') and extension_loaded('pcre')) {
                //Fall back to older PCRE
                $patternselect = 'php';
            } else {
                //Filter_var appeared in PHP 5.2.0 and does not require the PCRE extension
                if (version_compare(PHP_VERSION, '5.2.0') >= 0) {
                    $patternselect = 'php';
                } else {
                    $patternselect = 'noregex';
                }
            }
        }

все сводится к поиску $patternselect и приравниванию его к значению php

$patternselect = 'php';

только беда, что при очередном обновлении вордпресса - эти действия прийдется снова повторить. возможно есть код по переназначению этой функции в function.php?

ПОЛЕЗНО  Удаляем названия плагинов из темы WordPress