Две проблемы.Во-первых, у вас есть несоответствующие кавычки в вашем выражении echo:
echo "<p class="ad-price"><?php if(get_post_meta($post->ID, 'price', true)) etc....
^-here ^--here
PHP увидит эти дополнительные кавычки как завершающие строку, а затем задается вопросом, что это за директива ad-price
.Это будет синтаксическая ошибка.
Кроме того, как только вы разберетесь со строкой, экранируя встроенные кавычки:
echo "<p class=\"ad-price\">etc...."
, вы все равно останетесь с этим неработающим.PHP НЕ увидит <?php ... ?>
в строке как PHP-код для выполнения.он находится внутри строки, поэтому он будет рассматриваться как часть строки, а код PHP будет отображаться пользователю.В этом случае вам, вероятно, придется написать все это примерно так:
echo '<p class="ad-price">';
if(get_post_meta($post->ID, 'price', true)) {
echo cp_get_price_legacy($post->ID);
} else {
echo cp_get_price($post->ID);
}
echo " $yourtext</p>";