Я получаю эту ошибку после удаления нескольких неиспользуемых продуктов категории по моей теме woo:
Допустимая фатальная ошибка: объект класса WP_Error не может быть преобразован в строку в D: -mytheme \ wordpress \ wp-content \ plugins \ myplugin \ mymodule.php в строке 47
- Цены исчезают с использованием Woocommerce
- Как проверить, был ли продукт приобретен в течение последних 365 дней, прежде чем отображать что-либо
- Woocommerce | Пользовательская страница для управления товарами на заказ
- Угадайте вариант_изменителя после добавления в форму формы корзины на основе выбранных значений
- Как отредактировать html-структуру продукта woocommerce? Google проверяет элементы
- поле error-anti-spam было заполнено
Линия 47 выглядит так:
<?php echo '<a href="'.get_term_link($term).'">'.$term->name.'</a>'; ?>
Термин $ term определяет:
<?php class myShortCode { protected function content($atts, $content = null){ $atts = vc_map_get_attributes( $this->getShortcode(), $atts ); global $woocommerce, $product; extract( shortcode_atts( array( 'title' => '' ), $atts ) ); $term = get_term_by('name', $type_product, 'brands'); $category = isset($term->term_id) ? $term->term_id : ''; $css_class = ""; if ( $css_animation != '' ) { wp_enqueue_script( 'waypoints' ); $css_class = ' wpb_animate_when_almost_visible wpb_'.$css_animation; } ; ob_start(); ?>
Ошибка исчезает только в том случае, если категория существует и выбрана.
Я не знаю, как это исправить. Кто-нибудь может бросить мне кость?
Спасибо.
Вы можете обернуть его в ту же проверку, что и для $category
:
<?php if (isset($term->term_id)) { echo '<a href="'.get_term_link($term).'">'.$term->name.'</a>'; } ?>
или убедитесь, что он не является объектом ошибки:
<?php if (!is_wp_error($term)) { echo '<a href="'.get_term_link($term).'">'.$term->name.'</a>'; } ?>