То, чего я добиваюсь, - это работа с WP REST API и подключение обновления метаданных пользователя.
Вот ссылка на ссылку действия:
https://codex.wordpress.org/Plugin_API/Action_Reference/updated_%28meta_type%29_meta
где написано:
"Этот хук называется после успешного вызова update_metadata."
Это код:
add_action( 'updated_user_meta', 'second_otp', 10, 4 );
function second_otp($meta_id, $object_id, $meta_key, $_meta_value) {
$otp = $_meta_value;
$message = "Your OTP =" . get_user_meta($object_id, "otp", true ) . get_user_meta($object_id, "nickname", true );
$to = 'myemail@msn.com';
$subject = 'OTP';
$body = $message;
$headers = array('Content-Type: text/html; charset=UTF-8');
wp_mail( $to, $subject, $body, $headers );
};
Но действие "updated_user_meta" запускается ДО написания метаполя. Например. если у пользователя есть OTP = "1111", и я отправляю этот json
{
"id": "31",
"roles": "verified",
"meta": {"otp":"2222"}
}
до конечной точки http://MYSITE/dev/index.php/wp-json/wp/v2/users/31/
Я получу письмо с телом:
"Your OTP = 1111"
Есть ли что-то, чего я не посчитал, что помогло бы мне отправить по электронной почте новый OTP пользователя, который я посылаю через API REST, а не старый?