Woocommerce_Created_Customer перехватывает отправку электронной почты с дополнительными полями не работает - PullRequest
0 голосов
/ 30 декабря 2018

При использовании хука woocommerce_created_customer для отправки настраиваемого электронного письма с именем пользователя, паролем и адресом электронной почты все это работает.

Но если я попытаюсь добавить следующие поля: имя,фамилия и название компании.Он не будет отображать поля в получающем письме.И я не могу выяснить, в чем дело!

Так что в основном мне нужно: имя пользователя, пароль, адрес электронной почты, имя, фамилия, номер телефона и название компании.

Это то, что я получил в данный момент, но показывает только имя пользователя, пароль, электронную почту и идентификатор клиента / пользователя.

    // send Customer details
add_action( 'woocommerce_created_customer', 'create_cd_account', 10, 3 );

function create_cd_account( $customer_id, $new_customer_data, $password_generated ) {

// Get the New Customer's details
$username   = $new_customer_data['user_login'];
$password   = $new_customer_data['user_pass'];
$email      = $new_customer_data['user_email'];
$role       = $new_customer_data['role'];


// Get an instance of the WC_Customer Object
$user = new WC_Customer( $customer_id );

// Get the first name and the last name from WP_User Object 
$first_name = $user->first_name;
$last_name  = $user->last_name;
$phone      = $user->billing_phone;
$company    = $user->billing_company;


// Continue and send the information
// Testing sending email
$to = 'myaddress@mydomain.com';
$subject = 'Test email - does it work?';

$message = "Hello, {$first_name}\n\n";
$message .= "Here are your login details:\n\n";
$message .= "Your company is: {$company}\n\n";
$message .= "Your name is: {$first_name . ' ' . $last_name}\n\n";
$message .= "Your customer/user ID is: {$user->ID}\n\n";
$message .= "test extra user ID: {$customer_id}\n\n";
$message .= "Your username is: {$username}\n\n";    
$message .= "Your password is: {$password}\n\n";
$message .= "Your email is: {$email}\n\n";
$message .= "Your role is: {$role}\n\n";
$message .= "Your phone number is: {$phone}\n\n";

add_filter( 'wp_mail_from', $from_func = function ( $from_email ) { return 'info@mydomain.com'; } );
add_filter( 'wp_mail_from_name', $from_name_func = function ( $from_name ) { return 'My Wordpress Website'; } );

// send email
wp_mail( $to, $subject, $message );

remove_filter( 'wp_mail_from', $from_func );
remove_filter( 'wp_mail_from_name', $from_name_func );
}

Я также попробовал следующее (не повезло)используя:

$user = get_user_by( 'id', $customer_id );

и

$customer = get_userdata($customer_id);

Надеюсь, кто-нибудь подскажет, где идет ошибка?И как заставить это работать.

1 Ответ

0 голосов
/ 30 января 2019

Ваш код помог мне, но я думаю, что мой код может помочь вам.Мне нужно было только имя и фамилия, поэтому я использовал $_POST['first_name'] вот так.Я думаю, что это работает и для вас.Просто замените имя на имя входов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...