I want to send user password reset link to their phone number instead of email. I can use Twillo to send sms process. I tried below code but there is an error. Any suggestions ?
function send_password_reset_sms( $user_login, $user_data ) {
$phone_number = get_user_meta( $user_data->ID, 'phone_number', true );
if ( $phone_number ) {
$reset_key = get_password_reset_key( $user_data );
$reset_url = network_site_url( "wp-login.php?action=rp&key=$reset_key&login=" . rawurlencode( $user_login ), 'login' );
// Use your SMS API to send the message
$message = "To reset your password, visit the following address: $reset_url";
// Example using Twilio
$sid = 'YOUR_TWILIO_SID';
$token = 'YOUR_TWILIO_AUTH_TOKEN';
$twilio_number = 'YOUR_TWILIO_PHONE_NUMBER';
$client = new \Twilio\Rest\Client($sid, $token);
$client->messages->create(
$phone_number,
array(
'from' => $twilio_number,
'body' => $message
)
);
}
}
add_action( 'retrieve_password', 'send_password_reset_sms', 10, 2 );