Я отследил два предупреждения PHP до фрагмента кода, который вставляет значения из некоторых пользовательских полей Pod в продуктах Woocommerce в woocommerce_after_shop_loop_item . Он корректно отображает значения на страницах магазина, и я не могу понять, как он вызывает нечисловые и выпуски div / 0:
Предупреждения PHP
Предупреждение PHP: нечисловое значение, встречающееся в коде ... eval () в строке 1
Предупреждение PHP: Деление на ноль в коде ... eval () в строке 1
Фрагмент кода
* Adds Author, World and Series information to the shop loop above the “Add to cart” button
**/
add_action( 'woocommerce_after_shop_loop_item', 'shop_display_author_and_world',9);
function shop_display_author_and_world() {
global $product;
// Find custom fields
$authorname = get_post_meta( get_the_ID(), 'product_author_name.post_title', true );
$authorurl = get_post_meta( get_the_ID(), 'product_author_name.permalink', true );
$world = get_post_meta( get_the_ID(), 'product_world.post_title', true );
$worldurl = get_post_meta( get_the_ID(), 'product_world.permalink', true );
$series = get_post_meta( get_the_ID(), 'product_series', true );
$seriesnum = get_post_meta( get_the_ID(), 'product_series_number', true );
// Add these fields to the shop loop if set
if ( ! empty ( $series ) ) {
echo '<div><a style="color:#54595F;font-weight:bold" href="'. $authorurl .'">'. $authorname . '</a><br><a style="color:#E12021;" href="'. $worldurl .'">'. $world . '</a><br><span style="color:#54595F; font-variant:small-caps">'. $series . ', book ' . $seriesnum .'</span></div>';
}
else {
echo '<div><a style="color:#54595F;font-weight:bold" href="'. $authorurl .'">'. $authorname . '</a><br><a style="color:#E12021;" href="'. $worldurl .'">'. $world . '</a></div>' ;
}}
Я отследил проблему до этого фрагмента, деактивировав другие фрагменты, деактивировав несколько плагинов, пока не стало ясно, что только этот фрагмент выдает предупреждения.