{literal}
...
var yaParams = ip: {/literal}{strip}{$address = waRequest::getIp()}{$address}{/strip}{literal} // получаем ip
...
params:window.yaParams, // эта строка для ip
...
{/literal}
foreach ($wp_query->posts as $post) {
$post_content_filtered = json_decode($post->post_content_filtered,'true',512); // десериализовали общий массив
// удаляем все точки (некоторые цены отделяют точками)
$matches_gross = mb_ereg_replace('\.', ' ', $post_content_filtered['dop_text_post']['detail_post_text']);
// удаляем все двоеточия (некоторые перед ценой ставят двоеточия)
$matches_gross = mb_ereg_replace(':', ' ', $matches_gross);
// заменяем все звездочки на бкву х
$matches_gross = mb_ereg_replace('\*', 'х', $matches_gross);
// удаляем все пробелы (включая табуляцию и концы строк)
$matches_gross = preg_replace('/\s+/', '', $matches_gross);
// смотрим очищенный текст
echo '<pre>'; print_r($matches_gross); echo '</pre><br>';
// пробую преобразовать в строку (не все данные находит в цикле)
$matches_gross = (string)$matches_gross;
// достаем сумму цены с текстом (брутто)
$result_match = preg_match('/Цена\d{1,6}[рр₽][^aак]|Цена\d{1,6}[^aак]|[^-р]\d{1,6}[рр₽][^aак]|ц\d{1,6}[^в]/iu', $matches_gross, $matches_gross_result );
echo 'брутто: <pre>'; print_r($matches_gross_result); echo '</pre><br>';
if($result_match == true) {
// echo 'Найдено!<br>';
// достаем сумму цены с текстом (нетто)
$result_clear_match = preg_match('/([^xх\/][1-9]\d{1,6}(?!х)(?!x)(?!ш))/ui', $matches_gross_result[0], $matches_net );
// если цена с текстом получена
if ($matches_net[0]) {
echo '<pre>'; print_r($matches_net); echo '</pre>';
// оставляем только цифры
$result_clear_match = preg_match('/\d{2,6}/ui', $matches_net[0], $matches_net );
echo ' Цена чистая: '. $matches_net[0] .'<br>';
echo '<pre>'; print_r($post->guid); echo '</pre>';
echo '<pre>'; print_r($post->ID); echo '</pre>';
echo '<pre>'; print_r($post->post_content); echo '</pre>';
}
// если цена не получена
else { echo ' Пустой массив! ' .$post->ID . '<br>';
echo '<pre>'; print_r($matches_gross); echo '| </pre><br>';
echo '<pre>'; print_r($post->guid); echo '</pre>';
}
// вставляем цену в базу данных
$insert_array = ['post_id' => $post->ID, 'post_price' => $matches_net[0],];
$res_insert = $wpdb->insert( 'wp_posts_extend', $insert_array );
// echo '<pre>'; var_dump($res_insert); echo $post->ID . ' <hr></pre>';
echo '<hr>';
}
// если цена с текстом не получена
else { echo 'Цена не найдена
<br>';
echo '<pre>'; print_r($post->guid); echo '</pre>';
echo '<pre>'; print_r($post->ID); echo '</pre>';
echo '<pre>'; print_r($post->post_content); echo '</pre>';
echo '<hr>';
}
}
}
test_price();
На данный момент спас ситуацию регуляркой.