LifeAct
@LifeAct
Создаем и раскручиваем, не ставим на конвейер

Как отправить письмо зарегистрированному пользователю (пояснение)?

Всем привет! Нужно отправлять приветственное письмо, каждому регистрирующемуся пользователю, в принципе все понятно:

пример с оффсайта:
add_action( 'user_register', 'myplugin_registration_save', 10, 1 );

function myplugin_registration_save( $user_id ) {

    if ( isset( $_POST['first_name'] ) )
        update_user_meta($user_id, 'first_name', $_POST['first_name']);

}


не понимаю откуда появляется значение переменной в функции $user_id myplugin_registration_save?

еще один пример не с офф сайта:

<?php
  function send_welcome_email_to_new_user($user_id) {
    $user = get_userdata($user_id);
    $user_email = $user->user_email;
    // for simplicity, lets assume that user has typed their first and last name when they sign up
    $user_full_name = $user->user_firstname . $user->user_lastname;
    // Now we are ready to build our welcome email
    $to = $user_email;
    $subject = "Hi " . $user_full_name . ", welcome to our site!";
    $body = '
              <h1>Dear ' . $user_full_name . ',</h1></br>
              <p>Thank you for joining our site. Your account is now active.</p>
              <p>Please go ahead and navigate around your account.</p>
              <p>Let me know if you have further questions, I am here to help.</p>
              <p>Enjoy the rest of your day!</p>
              <p>Kind Regards,</p>
              <p>poanchen</p>
    ';
    $headers = array('Content-Type: text/html; charset=UTF-8');
    if (wp_mail($to, $subject, $body, $headers)) {
      error_log("email has been successfully sent to user whose email is " . $user_email);
    }else{
      error_log("email failed to sent to user whose email is " . $user_email);
    }
  }
  add_action('user_register', 'send_welcome_email_to_new_user');
?>


аналогично, где инициация переменно $user_id ? Я на c# кодю, там если в функцию передаешь параметр через переменную, то в вызове функции нужно эту переменную передать, например на шарпе выглядело бы так:

add_action('user_register', 'send_welcome_email_to_new_user (111)');

или

 add_action('user_register', 'send_welcome_email_to_new_user(getCurrentUser())');


а тут не понятно. Может $user_email это глобальная переменная в файле темы function.php и она доступна по всему файлу?

ПС киньте пжслта линк на интересный материал, чтобы немного натягаться в php/wordpress
  • Вопрос задан
  • 101 просмотр
Решения вопроса 2
Gori4ka
@Gori4ka
WordPress Developer
Здравствуйте. В первую очередь хочу отметить что вам нужно по смотреть как работает функция add_action()

  1. add_action
  2. do_action
add_action('user_register', 'send_welcome_email_to_new_user (111)');
вам нужно написать следующим образом
add_action('user_register', 'send_welcome_email_to_new_user');


Функция send_welcome_email_to_new_user() получить id пользователя автоматически см. user_register

А по поводу интересного материала я увы подсказать вам ничего не могу так как это не мой конёк. Нуачится можно следующим образом. Скачивате какую нибудь html тему. И пытаетесь создать тему. А весь функционал темы реализовывать плагинами.

Надеюсь я вам помог :) если что обращайтесь
Ответ написан
OtshelnikFm
@OtshelnikFm Куратор тега WordPress
Обо мне расскажет yawncato.com
Функция принимает аргументы из хука. Вот вы их в своей функции и получаете

p.s. гугл, как бы это глупо не звучало. Или профильные сайты которые продают курсы по обучению php
+ документация + книги.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы