我编写了一个使用SendGrid的PHP库发送电子邮件的函数。它可以在任何地方工作,除非我尝试在表单提交事件上使用它。
点击提交时出现错误
致命错误:在第72行的......中找不到“SendGrid”类
提交的其他内容工作正常,帖子已添加到数据库中,但电子邮件不会发送出去。
这是函数
function send_email( $post_id, $templatecode ) {
$substitutions = '
"-FNAME-" : "'.$primary_firstname.'",
"-NAME-" : "'.$primary_name.'",
"-EMAIL-" : "'.$primary_email.'"
';
$to = '
"email": "'.$primary_email.'",
"name": "'.$primary_name.'"
';
$apiKey = getenv('SENDGRID_API_KEY');
$sg = new \SendGrid($apiKey);
$request_body = json_decode('{
"personalizations": [ {
"substitutions": {'.$substitutions.'},
"to": [ { '.$to.'} ]
} ],
"template_id": "'.$template.'",
"categories": [
"'.$templatecode.'"
],
"from": {
"email": "xxxx",
"name": "xxxxx"
}
}');
$response = $sg->client->mail()->send()->post($request_body);
}
}
以下是提交操作
if( 'POST' == $_SERVER['REQUEST_METHOD'] && !empty( $_POST['action'] ) && $_POST['action'] == "new_post") {
$new_post = array(
'post_title' => wp_strip_all_tags( $_POST['title'] ),
'post_content' => $_POST['description'],
'post_status' => 'publish',
'post_type' => 'sessions'
);
$post_id = wp_insert_post($new_post);
send_email( $post_id, 'Submit' );
}