Введите часть искомого слова, названия или фразы...
↑ ↓
  1. Новые темы озаглавленные с маленькой буквы - удаляются без предупреждения!
  2. Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!

Оповещение о регистрации нового пользователя

Тема в разделе "Вопросы, советы и доработки.", создана пользователем nnetcat, 4 сен 2015.

  1. nnetcat

    nnetcat

    Сообщения:
    6
    Симпатии:
    1
    Баллы:
    1
    Добрый день.
    WordPress 4.3 с плагином WooCommerce
    Столкнулся с проблемой - не приходят сообщения на почту админу сайта о регистрации новых пользователей.
    Сообщения о новых заказах, комментариях и пр. приходят без проблем. Так же приходит сообщение пользователю о успешной регистрации на сайте с ссылкой на страницу аккаунта, а вот админу письма не приходят.
    pluggable.php без изменений
    PHP:
    function wp_new_user_notification$user_id$notify '' ) {
        global 
    $wpdb;
        
    $user get_userdata$user_id );

        
    // The blogname option is escaped with esc_html on the way into the database in sanitize_option
        // we want to reverse this for the plain text arena of emails.
        
    $blogname wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);

        
    $message  sprintf(__('New user registration on your site %s:'), $blogname) . "\r\n\r\n";
        
    $message .= sprintf(__('Username: %s'), $user->user_login) . "\r\n\r\n";
        
    $message .= sprintf(__('E-mail: %s'), $user->user_email) . "\r\n";

        @
    wp_mail(get_option('admin_email'), sprintf(__('[%s] New User Registration'), $blogname), $message);

        if ( 
    'admin' === $notify || empty( $notify ) ) {
            return;
        }
    Подскажите, пожалуйста, в чем может быть причина?
     
  2. searchingman

    searchingman Местный

    Сообщения:
    1.634
    Симпатии:
    553
    Баллы:
    113
    Смотрите логи почтовой службы. Если сервер у хостера отправляет письма, то смотрите не попадают ли они в спам.
     
  3. nnetcat

    nnetcat

    Сообщения:
    6
    Симпатии:
    1
    Баллы:
    1
    Где посмотреть логи? В спаме пусто.

    Может как-то можно переписать эту функцию? или может есть какой-нить плагин который позволяет это настроить или к примеру дублировать сообщения на несколько адресов?
     
    Последнее редактирование: 4 сен 2015
  4. searchingman

    searchingman Местный

    Сообщения:
    1.634
    Симпатии:
    553
    Баллы:
    113
    В тех.поддержку к хостеру обратитесь по поводу логов.
     
  5. nnetcat

    nnetcat

    Сообщения:
    6
    Симпатии:
    1
    Баллы:
    1
    Пробовал добавить этот код в function.php
    PHP:
    1
    function wp_new_user_notification($user_id$plaintext_pass '') {
    2
        $user 
    get_userdata$user_id );
    3
    4
        
    // Название сайта получаем с помощью esc_html из базы данных
    5
        $blogname 
    wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);
    6
    7
        $message  
    sprintf(__('Регистрация нового пользователя на вашем сайте %s:'), $blogname) . "\r\n\r\n";
    8
        $message 
    .= sprintf(__('Имя пользователя: %s'), $user->user_login) . "\r\n\r\n";
    9
        $message 
    .= sprintf(__('E-mail: %s'), $user->user_email) . "\r\n";
    10
    11
        
    @wp_mail(get_option('admin_email'), sprintf(__('[%s] Регистрация нового пользователя'), $blogname), $message);
    12
    13
        
    if ( empty($plaintext_pass) )
    14
            
    return;
    15
    16
        $message  
    sprintf(__('Имя пользователя: %s'), $user->user_login) . "\r\n";
    17
        $message 
    .= sprintf(__('Пароль: %s'), $plaintext_pass) . "\r\n";
    18
        $message 
    .= 'Для входа в административную панель, пожалуйста, используйте следующий адрес ' wp_login_url() . "\r\n";
    19
    20
        wp_mail
    ($user->user_emailsprintf(__('[%s] Ваше имя пользователя и пароль'), $blogname), $message);
    21
    22
    }
    но безрезультатно.
     
  6. DiZeR

    DiZeR

    Сообщения:
    113
    Симпатии:
    16
    Баллы:
    18
    Из банального: Надеюсь мыло админа не на xxx@mail.ru, а на info@sait.ru
    - пробовали менять мыло админа?
    - одинаковое мыло стоит в настройках WP и WOO (админа)?
    - можно попробовать любой плагин SMTP для WP
     
  7. nnetcat

    nnetcat

    Сообщения:
    6
    Симпатии:
    1
    Баллы:
    1
    Так точно, мыло вида info@sait.ru.
    - пробовали - на любую из указанных почт приходят все уведомления кроме регистрации нового юзера.
    - одинаковое.
    - пробовал несколько разных - приходят все уведомления кроме регистрации нового юзера.

    Все указывает на то, что эти уведомления просто отключены но где??
     
  8. nnetcat

    nnetcat

    Сообщения:
    6
    Симпатии:
    1
    Баллы:
    1
    Выясняются новые подробности:
    Владелец сайта говорит что к нему за раз добавилось штук 10 пользователей с именами вида "gfui677GY865" - но не одного уведомления о их регистрации не было и собственно после этого они(сообщения) вовсе перестали приходить.
    Может кто сталкивался? Где копать?

    ПС. Я в php не силен, дядьки с опытом подскажите - может можно куда-нить добавить что-то вроде mailto на "жестко" привязанный адрес с sprintf(__('[%s] New User Registration')
     
  9. searchingman

    searchingman Местный

    Сообщения:
    1.634
    Симпатии:
    553
    Баллы:
    113
    Скорее всего Вас спамят.
     
  10. nnetcat

    nnetcat

    Сообщения:
    6
    Симпатии:
    1
    Баллы:
    1
    Решил проблему (может кому поможет):

    в customer-new-account.php в конец добавляем:
    <?php do_action('new_customer_registered', $user_login );?>

    В function.php темы добавляем:
    function new_customer_registered_send_email_admin($user_login){
    ob_start();
    do_action('woocommerce_email_header','New customer registered');
    $email_header = ob_get_clean();
    ob_start();
    do_action('woocommerce_email_footer');
    $email_footer = ob_get_clean();

    woocommerce_mail(
    get_bloginfo('admin_email'),
    get_bloginfo('name').' - New customer registered',
    $email_header.'<p>The user '.esc_html( $user_login ).' is registered to the website</p>'.$email_footer
    );
    }
    add_action('new_customer_registered','new_customer_registered_send_email_admin');

    Только не могу понять как сделать так чтобы вместо user_login приходил user_email - все перепробовал не получается... подскажите, пожалуйста.
     
    • Нравится Нравится x 1