我想在将帖子添加到数据库之前检查电子邮件和位置是否存在。如果存在,则终止该过程。 在代码中,一封电子邮件只能对一个位置进行评分。如果我删除了检查电子邮件和位置的代码行,则成功插入了详细信息。但是当我添加WP_Query以检查我的参数时,服务器将返回500错误作为响应。
$name = sanitize_text_field($_POST['name']);
$email = sanitize_email($_POST['email']);
$loca = sanitize_text_field($_POST['location']);
$ratings = sanitize_text_field($_POST['rating_star']);
$message = sanitize_textarea_field($_POST['message']);
$data = array(
'name' => $name,
'email' => $email,
'location'=>$loca,
'ratings'=>$ratings,
'approved' => 1,
'featured' => 1,
);
$args = array(
'post_title' => 'Testimonial from ' . $name,
'post_content' => $message,
'post_author' => 1,
'post_status' => 'publish',
'post_type' => 'testimonial',
'meta_input' => array(
'_rating_testimonial_key' => $data
)
);
$args1 = array(
'post_type' => 'testimonial',
'post_status' => 'publish',
'posts_per_page' => 5,
'meta_query' => array(
'relation' => 'AND',
array(
'key' => '_rating_testimonial_key',
'value' => 's:5:"email";s:'.strlen($email).':"'.$email.'";',
'compare' => 'REGEXP'
),
array(
'key' => '_rating_testimonial_key',
'value' => 's:8:"location";s:'.strlen($location).':"'.$location.'";',
'compare' => 'LIKE'
)
)
);
$query1 = new WP_Query( $args1 );
if (empty($query1->have_posts())){
$postID = wp_insert_post($args);
}
if ($postID) {
return $this->return_json('success');
}
return $this->return_json('error');