Это связано с веб-сайтом Wordpress, использующим Woocommerce. Журналы ошибок моего сервера регистрируют эту ошибку для каждого IP-адреса, который посещает определенную страницу:
Ошибка: Предупреждение PHP: отсутствует аргумент 2 для elixa_woo_hide_in_loop() в «filepath»/functions.php в строке 239.
Вот код:
/*Within functions.php*/
add_filter( 'woocommerce_product_is_visible', 'elixa_woo_hide_in_loop', 2 );
function elixa_woo_hide_in_loop( $visible, $id ) {
echo "$id outside of if";
if ( $visible && get_field ( '_elixa_hide_cat', $id ) ) {
echo "$id in if";
return false;
}
return $visible;
}
/*Within website, displayed above each product*/
Warning: Missing argument 2 for elixa_woo_hide_in_loop() in "filepath"/functions.php on line 239
outside of if
Вот хук, упомянутый выше:
http://woocommerce.wp-a2z.org/oik_hook/woocommerce_product_is_visible/
Приведенный выше код влияет на страницу Woocommerce «Просмотреть все продукты», где taxonomy-product_cat.php отображает все продукты по категориям.
Этот код был специально написан разработчиком до меня и не является частью платформы Wordpress или Woocommerce.
Я не могу понять, что это должно делать для цикла. Как ни странно, когда я удаляю add_filter, он никак не влияет на отображение товара и ошибки исчезают.
При тестировании $id = NULL или 0 для всех этих запросов, и я не могу найти, где изначально объявляется эта общая переменная:
print gettype($id);
print get_object_vars($id);
print is_array($id);
print is_object($id);
print_r($id);
print count($id);
print get_class($id);
print isset($id);
print get_parent_class($id);
print gettype($id->container);
Просто хочу обратиться к сообществу и посмотреть, видели ли они что-то подобное. Это санитарная функция? Что оно делает?