Как проверить метаданные из post_meta перед добавлением сообщения с помощью WP_Query - PullRequest
0 голосов
/ 07 июня 2019

Я хочу проверить, существуют ли адрес электронной почты и местоположение, прежде чем добавлять сообщение в базу данных.если он существует, завершите процесс.В коде одно письмо может оценить только одно местоположение.Если я удаляю строки кода, где я проверяю электронную почту и местоположение, детали вставляются успешно.но в тот момент, когда я добавляю 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');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...