Невозможно вызвать функцию в API WordPress Rest - PullRequest
0 голосов
/ 22 октября 2018

В моем собственном Wordpress Rest API есть следующий код.Я получаю 500-Внутренняя ошибка сервера всякий раз, когда я разрешаю вызов функции send_mail2.Комментируя это, веб-сервис работает отлично.Функция, помещенная отдельно в файл .php с вызовом и открытая из браузера, также отлично работает.

add_action( 'rest_api_init', function () {
register_rest_route( 'registrations/v1', '/add', array(
    'methods' => 'POST',
    'callback' => 'handle_reg_create'
) );
} );

function handle_reg_create( $request ) {

    $parameters = $request->get_json_params();
    $url = "myurl";
    $mail_object->to_email = $parameters['email_id'];
    $mail_object->subject = "Camp Registration Successful for ".$parameters['name']."Camp Id".$parameters['camp_id'];
    $mail_object->from = "sample@mailxyz.com";
    $mail_object->message = '<p>Thanks for registering .</p>
        <p>Following are the details you have entered&nbsp; :</p>
        <p>Name : '.$parameters['name'].'<br/>Age&nbsp; &nbsp; :
        '.$parameters['age'].'<br />Phone Number (Call):
        '.$parameters['phone_number_2'].'<br/>Phone Number (Whatsapp) : 
        '.$parameters['phone_number_2'].'</p>
        <p>You may edit your details by <a href="'.$url.'" target="_blank"rel="noopener">clicking here</a>.</p>
        <p>&nbsp;</p>
        <p>Thanking you,<br />Admin</p>';
    send_mail2($mail_object);

    //return $list;
}

function send_mail2( $parameters ) {
    echo "Started";
    var_dump($parameters);
    $mail = new PHPMailer;
    echo "Enable SMTP debugging. ";
    $mail->SMTPDebug = 3;
    echo "Set PHPMailer to use SMTP.";
    $mail->isSMTP();
    echo "Set SMTP host name"     ;
    $mail->Host = "hostname";
    echo "Set this to true if SMTP host requires authentication to send email";
    $mail->SMTPAuth = true;
    echo "Provide username and password     ";
    $mail->Username = "noreply@sample.com";
    $mail->Password = "samplepassword";
    $mail->Port = 587;
    $mail->From = "noreply@sample.com";
    $mail->FromName = "Sample";

    echo "To Email :".$parameters->to_email;
    echo "Subject :".$parameters->subject;
    $mail->addAddress($parameters->to_email, "Recepient Name");

    $mail->isHTML(true);

    $mail->Subject = $parameters->subject;
    $mail->Body = $parameters->message;
    $mail->AltBody = "HTML Email - No Support";
    echo "Attempt Send ";
    $mail->send();

}
...