Whoops \ Exception \ ErrorException (E_NOTICE)
Undefined property: WP_Post_Type::$term_id Whoops\Exception\ErrorException thrown with message "Undefined property: WP_Post_Type::$term_id" Stacktrace: #14 Whoops\Exception\ErrorException in /home/woodwerk/site/wp-content/themes/woodwerk/templates/term-description.php:15 #13 Whoops\Run:handleError in /home/woodwerk/site/wp-content/themes/woodwerk/templates/term-description.php:15 #12 require in /home/woodwerk/site/wp-content/plugins/seo-plugin/resources/classes/Helpers/TemplateLoader.php:95 #11 SeoPlugin\Helpers\TemplateLoader:render_template_part in /home/woodwerk/site/wp-content/plugins/seo-plugin/resources/classes/SeoShortcode.php:58 #10 SeoPlugin\SeoShortcode:shortcode_seo_mapper_text in /home/woodwerk/site/wp-includes/shortcodes.php:356 #9 do_shortcode_tag in [internal]:0 #8 preg_replace_callback in /home/woodwerk/site/wp-includes/shortcodes.php:228 #7 do_shortcode in /home/woodwerk/site/wp-content/themes/woodwerk/inc/itk-woo-archive.php:31 #6 woocommerce_product_archive_description in /home/woodwerk/site/wp-includes/class-wp-hook.php:303 #5 WP_Hook:apply_filters in /home/woodwerk/site/wp-includes/class-wp-hook.php:327 #4 WP_Hook:do_action in /home/woodwerk/site/wp-includes/plugin.php:470 #3 do_action in /home/woodwerk/site/wp-content/themes/woodwerk/woocommerce/archive-product.php:464 #2 include in /home/woodwerk/site/wp-includes/template-loader.php:106 #1 require_once in /home/woodwerk/site/wp-blog-header.php:19 #0 require in /home/woodwerk/site/index.php:17
Stack frames (15)
14
Whoops\Exception\ErrorException
/home/woodwerk/site/wp-content/themes/woodwerk/templates/term-description.php15
13
Whoops\Run handleError
/home/woodwerk/site/wp-content/themes/woodwerk/templates/term-description.php15
12
require
/home/woodwerk/site/wp-content/plugins/seo-plugin/resources/classes/Helpers/TemplateLoader.php95
11
SeoPlugin\Helpers\TemplateLoader render_template_part
/home/woodwerk/site/wp-content/plugins/seo-plugin/resources/classes/SeoShortcode.php58
10
SeoPlugin\SeoShortcode shortcode_seo_mapper_text
/home/woodwerk/site/wp-includes/shortcodes.php356
9
do_shortcode_tag
[internal]0
8
preg_replace_callback
/home/woodwerk/site/wp-includes/shortcodes.php228
7
do_shortcode
/home/woodwerk/site/wp-content/themes/woodwerk/inc/itk-woo-archive.php31
6
woocommerce_product_archive_description
/home/woodwerk/site/wp-includes/class-wp-hook.php303
5
WP_Hook apply_filters
/home/woodwerk/site/wp-includes/class-wp-hook.php327
4
WP_Hook do_action
/home/woodwerk/site/wp-includes/plugin.php470
3
do_action
/home/woodwerk/site/wp-content/themes/woodwerk/woocommerce/archive-product.php464
2
include
/home/woodwerk/site/wp-includes/template-loader.php106
1
require_once
/home/woodwerk/site/wp-blog-header.php19
0
require
/home/woodwerk/site/index.php17
/home/woodwerk/site/wp-content/themes/woodwerk/templates/term-description.php
<?php
/**
 * @var string $text
 * @var string $class
 */

$term = get_queried_object();

$image = get_field('seo_img', 'options');

if (!$image) {
    $image = 'https://woodwerk.com/wp-content/uploads/fly-images/4322/vip_4828-1900x1900-c.jpg';
}

$seo = get_field('seo_img', 'term_' . $term->term_id );
if( $seo ) {
    $image = wp_get_attachment_image_url($seo['ID'], 'large');
}
?>
<div class="page-description">
    <section class="interstitial">
        <div class="interstitial-image" style="background-image: url('<?php echo $image; ?>')"></div>
        <div class="interstitial-text">
            <span class="logo-seo-wrap"><?php echo get_logo_img();?></span>
            <span class="bird-seo-wrap"><img src="/wp-content/themes/woodwerk/assets/img/bird_woodwerk.svg" alt=""></span>
            <div class="dg_cat_descr custom_hidden">
                <div class="<?= $class ?>"><?= $text ?></div>
            </div>
        </div>
    </section>
</div>
 
/home/woodwerk/site/wp-content/themes/woodwerk/templates/term-description.php
<?php
/**
 * @var string $text
 * @var string $class
 */

$term = get_queried_object();

$image = get_field('seo_img', 'options');

if (!$image) {
    $image = 'https://woodwerk.com/wp-content/uploads/fly-images/4322/vip_4828-1900x1900-c.jpg';
}

$seo = get_field('seo_img', 'term_' . $term->term_id );
if( $seo ) {
    $image = wp_get_attachment_image_url($seo['ID'], 'large');
}
?>
<div class="page-description">
    <section class="interstitial">
        <div class="interstitial-image" style="background-image: url('<?php echo $image; ?>')"></div>
        <div class="interstitial-text">
            <span class="logo-seo-wrap"><?php echo get_logo_img();?></span>
            <span class="bird-seo-wrap"><img src="/wp-content/themes/woodwerk/assets/img/bird_woodwerk.svg" alt=""></span>
            <div class="dg_cat_descr custom_hidden">
                <div class="<?= $class ?>"><?= $text ?></div>
            </div>
        </div>
    </section>
</div>
 
/home/woodwerk/site/wp-content/plugins/seo-plugin/resources/classes/Helpers/TemplateLoader.php
 
        if (!$template_path) {
            return false;
        }
 
        if (is_array($wp_query->query_vars)) {
            extract($wp_query->query_vars, EXTR_SKIP);
        }
 
        if (isset($s)) {
            $s = esc_attr($s);
        }
 
        if (is_array($args)) {
            extract($args, EXTR_SKIP);
        }
 
        if (false === $echo) {
            ob_start();
            require($template_path);
            $return = ob_get_clean();
        } else {
            require($template_path);
        }
 
 
        if (false === $echo) {
            return $return;
        } else {
            return false;
        }
    }
}
 
/home/woodwerk/site/wp-content/plugins/seo-plugin/resources/classes/SeoShortcode.php
        if (!empty($seoMapperItem->text)) {
            $atts['text'] = html_entity_decode($seoMapperItem->text);
        }
 
        $default = 'seo-mapper__text';
        $hideLong = Settings::get('hideLongText', false, 'bool');
 
        if ($hideLong) {
            $default .= ' seo-mapper__text-hide';
        }
 
        $atts['class'] = (!empty($atts['class'])) ? $atts['class'] . " {$default}" : $default;
 
        if (!empty($atts['text'])) {
            return TemplateLoader::render_template_part(
                'templates/' . $atts['template'],
                null,
                $atts,
                false,
                SPM_PATH
            );
        }
 
        return $content;
    }
 
    /**
     * @param array|string $atts
     * @param null|string $content
     * @return false|string
     * @noinspection PhpUnusedParameterInspection
     * @codingStandardsIgnoreLine
     */
    public static function shortcode_seo_mapper_short_text($atts, $content = null)
    {
        $atts = shortcode_atts([
            'class' => '',
            'text' => '',
            'template' => 'seo-short-text',
        ], $atts);
/home/woodwerk/site/wp-includes/shortcodes.php
     * Filters whether to call a shortcode callback.
     *
     * Returning a non-false value from filter will short-circuit the
     * shortcode generation process, returning that value instead.
     *
     * @since 4.7.0
     *
     * @param false|string $return      Short-circuit return value. Either false or the value to replace the shortcode with.
     * @param string       $tag         Shortcode name.
     * @param array|string $attr        Shortcode attributes array or empty string.
     * @param array        $m           Regular expression match array.
     */
    $return = apply_filters( 'pre_do_shortcode_tag', false, $tag, $attr, $m );
    if ( false !== $return ) {
        return $return;
    }
 
    $content = isset( $m[5] ) ? $m[5] : null;
 
    $output = $m[1] . call_user_func( $shortcode_tags[ $tag ], $attr, $content, $tag ) . $m[6];
 
    /**
     * Filters the output created by a shortcode callback.
     *
     * @since 4.7.0
     *
     * @param string       $output Shortcode output.
     * @param string       $tag    Shortcode name.
     * @param array|string $attr   Shortcode attributes array or empty string.
     * @param array        $m      Regular expression match array.
     */
    return apply_filters( 'do_shortcode_tag', $output, $tag, $attr, $m );
}
 
/**
 * Search only inside HTML elements for shortcodes and process them.
 *
 * Any [ or ] characters remaining inside elements will be HTML encoded
 * to prevent interference with shortcodes that are outside the elements.
 * Assumes $content processed by KSES already.  Users with unfiltered_html
[internal]
/home/woodwerk/site/wp-includes/shortcodes.php
    if ( false === strpos( $content, '[' ) ) {
        return $content;
    }
 
    if ( empty( $shortcode_tags ) || ! is_array( $shortcode_tags ) ) {
        return $content;
    }
 
    // Find all registered tag names in $content.
    preg_match_all( '@\[([^<>&/\[\]\x00-\x20=]++)@', $content, $matches );
    $tagnames = array_intersect( array_keys( $shortcode_tags ), $matches[1] );
 
    if ( empty( $tagnames ) ) {
        return $content;
    }
 
    $content = do_shortcodes_in_html_tags( $content, $ignore_html, $tagnames );
 
    $pattern = get_shortcode_regex( $tagnames );
    $content = preg_replace_callback( "/$pattern/", 'do_shortcode_tag', $content );
 
    // Always restore square braces so we don't break things like <!--[if IE ]>.
    $content = unescape_invalid_shortcodes( $content );
 
    return $content;
}
 
/**
 * Retrieve the shortcode regular expression for searching.
 *
 * The regular expression combines the shortcode tags in the regular expression
 * in a regex class.
 *
 * The regular expression contains 6 different sub matches to help with parsing.
 *
 * 1 - An extra [ to allow for escaping shortcodes with double [[]]
 * 2 - The shortcode name
 * 3 - The shortcode argument list
 * 4 - The self closing /
 * 5 - The content of a shortcode when it wraps some content.
/home/woodwerk/site/wp-content/themes/woodwerk/inc/itk-woo-archive.php
 *
 * @return integer number of products.
 */
function woodwerk_woocommerce_products_per_page() {
    return 16;
}
// add_filter( 'loop_shop_per_page', 'woodwerk_woocommerce_products_per_page' );


/**
 * Products category description.
 */
function woocommerce_product_archive_description() {
    if ( is_search() ) {
        return;
    }

    if (is_woocommerce() && !is_product() && in_array(absint(get_query_var('paged')), array(0, 1), true)) {
//        if (is_user_logged_in()) {
            echo do_shortcode('[seo_mapper_text template="term-description"][/seo_mapper_text]');
//        } else {
//            $object = get_queried_object();
//            $desc = apply_filters('the_content', $object->description);
//
//            if (!empty($desc)) {
//                get_template_part('templates/term', 'description');
//            }
//        }
    }


//    if ( is_post_type_archive( 'product' ) && in_array( absint( get_query_var( 'paged' ) ), array( 0, 1 ), true ) ) {
////    if ( is_woocommerce() && !is_product() && in_array( absint( get_query_var( 'paged' ) ), array( 0, 1 ), true ) ) {
//        $shop_page_id = wc_get_page_id( 'shop' );
//
//        $shop_page = get_post( $shop_page_id );
//
//        if (is_user_logged_in()) {
//            var_dump($shop_page);
//        }
/home/woodwerk/site/wp-includes/class-wp-hook.php
 
        $nesting_level = $this->nesting_level++;
 
        $this->iterations[ $nesting_level ] = array_keys( $this->callbacks );
        $num_args                           = count( $args );
 
        do {
            $this->current_priority[ $nesting_level ] = current( $this->iterations[ $nesting_level ] );
            $priority                                 = $this->current_priority[ $nesting_level ];
 
            foreach ( $this->callbacks[ $priority ] as $the_ ) {
                if ( ! $this->doing_action ) {
                    $args[0] = $value;
                }
 
                // Avoid the array_slice() if possible.
                if ( 0 == $the_['accepted_args'] ) {
                    $value = call_user_func( $the_['function'] );
                } elseif ( $the_['accepted_args'] >= $num_args ) {
                    $value = call_user_func_array( $the_['function'], $args );
                } else {
                    $value = call_user_func_array( $the_['function'], array_slice( $args, 0, (int) $the_['accepted_args'] ) );
                }
            }
        } while ( false !== next( $this->iterations[ $nesting_level ] ) );
 
        unset( $this->iterations[ $nesting_level ] );
        unset( $this->current_priority[ $nesting_level ] );
 
        $this->nesting_level--;
 
        return $value;
    }
 
    /**
     * Calls the callback functions that have been added to an action hook.
     *
     * @since 4.7.0
     *
     * @param array $args Parameters to pass to the callback functions.
/home/woodwerk/site/wp-includes/class-wp-hook.php
        } while ( false !== next( $this->iterations[ $nesting_level ] ) );
 
        unset( $this->iterations[ $nesting_level ] );
        unset( $this->current_priority[ $nesting_level ] );
 
        $this->nesting_level--;
 
        return $value;
    }
 
    /**
     * Calls the callback functions that have been added to an action hook.
     *
     * @since 4.7.0
     *
     * @param array $args Parameters to pass to the callback functions.
     */
    public function do_action( $args ) {
        $this->doing_action = true;
        $this->apply_filters( '', $args );
 
        // If there are recursive calls to the current action, we haven't finished it until we get to the last one.
        if ( ! $this->nesting_level ) {
            $this->doing_action = false;
        }
    }
 
    /**
     * Processes the functions hooked into the 'all' hook.
     *
     * @since 4.7.0
     *
     * @param array $args Arguments to pass to the hook callbacks. Passed by reference.
     */
    public function do_all_hook( &$args ) {
        $nesting_level                      = $this->nesting_level++;
        $this->iterations[ $nesting_level ] = array_keys( $this->callbacks );
 
        do {
            $priority = current( $this->iterations[ $nesting_level ] );
/home/woodwerk/site/wp-includes/plugin.php
    if ( ! isset( $wp_filter[ $hook_name ] ) ) {
        if ( isset( $wp_filter['all'] ) ) {
            array_pop( $wp_current_filter );
        }
 
        return;
    }
 
    if ( ! isset( $wp_filter['all'] ) ) {
        $wp_current_filter[] = $hook_name;
    }
 
    if ( empty( $arg ) ) {
        $arg[] = '';
    } elseif ( is_array( $arg[0] ) && 1 === count( $arg[0] ) && isset( $arg[0][0] ) && is_object( $arg[0][0] ) ) {
        // Backward compatibility for PHP4-style passing of `array( &$this )` as action `$arg`.
        $arg[0] = $arg[0][0];
    }
 
    $wp_filter[ $hook_name ]->do_action( $arg );
 
    array_pop( $wp_current_filter );
}
 
/**
 * Calls the callback functions that have been added to an action hook, specifying arguments in an array.
 *
 * @since 2.1.0
 *
 * @see do_action() This function is identical, but the arguments passed to the
 *                  functions hooked to `$hook_name` are supplied using an array.
 *
 * @global WP_Hook[] $wp_filter         Stores all of the filters and actions.
 * @global int[]     $wp_actions        Stores the number of times each action was triggered.
 * @global string[]  $wp_current_filter Stores the list of current filters with the current one last.
 *
 * @param string $hook_name The name of the action to be executed.
 * @param array  $args      The arguments supplied to the functions hooked to `$hook_name`.
 */
function do_action_ref_array( $hook_name, $args ) {
/home/woodwerk/site/wp-content/themes/woodwerk/woocommerce/archive-product.php
    </section>
    <section class="content">
        <?php
        $sts = array(
            'class' => 'swiper swiper-large swiper-products media-until-lg',
        );
        wc_get_template('archive-upsale.php', $sts);
        ?>
        <?php

        get_template_part('template-parts/shop', 'blog');

        /**
         * Hook: woocommerce_archive_description.
         *
         * @hooked woocommerce_taxonomy_archive_description - 10
         * @hooked woocommerce_product_archive_description - 10
         */

        do_action('woocommerce_archive_description');
        ?>


    </section>
<?php $childArgs = array(
    'sort_order' => 'ASC',
    'sort_column' => 'menu_order',
    'child_of' => pll_get_post(3031)
);
$childList = get_pages($childArgs);?>
<?php if(!empty($childList)):?>
    <section class="content" style="margin: 30px;">
        <div class="seo-cities-title"><?php woocommerce_page_title(); ?> <?php echo pll_e('с доставкой по Украине :');?></div>
        <?php if(!empty($childList)){
            foreach($childList as $c){
                echo ' <a style="text-decoration: none;" href="'.get_permalink($c->ID).'">'.get_the_title($c->ID).'</a> ';
            }
        }?>
    </section>
<?php endif;?>
/home/woodwerk/site/wp-includes/template-loader.php
            }
 
            break;
        }
    }
 
    if ( ! $template ) {
        $template = get_index_template();
    }
 
    /**
     * Filters the path of the current template before including it.
     *
     * @since 3.0.0
     *
     * @param string $template The path of the template to include.
     */
    $template = apply_filters( 'template_include', $template );
    if ( $template ) {
        include $template;
    } elseif ( current_user_can( 'switch_themes' ) ) {
        $theme = wp_get_theme();
        if ( $theme->errors() ) {
            wp_die( $theme->errors() );
        }
    }
    return;
}
 
/home/woodwerk/site/wp-blog-header.php
<?php
/**
 * Loads the WordPress environment and template.
 *
 * @package WordPress
 */
 
if ( ! isset( $wp_did_header ) ) {
 
    $wp_did_header = true;
 
    // Load the WordPress library.
    require_once __DIR__ . '/wp-load.php';
 
    // Set up the WordPress query.
    wp();
 
    // Load the theme template.
    require_once ABSPATH . WPINC . '/template-loader.php';
 
}
 
/home/woodwerk/site/index.php
<?php
/**
 * Front to the WordPress application. This file doesn't do anything, but loads
 * wp-blog-header.php which does and tells WordPress to load the theme.
 *
 * @package WordPress
 */
 
/**
 * Tells WordPress to load the WordPress theme and output it.
 *
 * @var bool
 */
define( 'WP_USE_THEMES', true );
 
/** Loads the WordPress Environment and Template */
require __DIR__ . '/wp-blog-header.php';
 

Environment & details:

empty
empty
empty
empty
empty
Key Value
SERVER_SOFTWARE nginx/1.18.0
REQUEST_URI /ru/magazin-1/
LANG en_US.UTF-8
PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
NOTIFY_SOCKET /run/systemd/notify
INVOCATION_ID f2132730ec0848ec892b0cccee1ea300
JOURNAL_STREAM 9:20258
VIPSHOME /usr
USER woodwerk
HOME /home/woodwerk
HTTP_CONNECTION Keep-Alive
HTTP_HOST woodwerk.com
HTTP_ACCEPT_ENCODING br,gzip
HTTP_IF_MODIFIED_SINCE Sun, 26 Jun 2022 09:16:10 GMT
HTTP_ACCEPT_LANGUAGE en-US,en;q=0.5
HTTP_ACCEPT text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
HTTP_USER_AGENT CCBot/2.0 (https://commoncrawl.org/faq/)
REDIRECT_STATUS 200
SERVER_NAME woodwerk.com
SERVER_PORT 443
SERVER_ADDR 142.132.167.246
REMOTE_PORT 50096
REMOTE_ADDR 44.200.136.171
GATEWAY_INTERFACE CGI/1.1
HTTPS on
REQUEST_SCHEME https
SERVER_PROTOCOL HTTP/1.1
DOCUMENT_ROOT /home/woodwerk/site
DOCUMENT_URI /index.php
SCRIPT_NAME /index.php
CONTENT_LENGTH
CONTENT_TYPE
REQUEST_METHOD GET
QUERY_STRING
SCRIPT_FILENAME /home/woodwerk/site/index.php
FCGI_ROLE RESPONDER
PHP_SELF /index.php
REQUEST_TIME_FLOAT 1664511720.8786
REQUEST_TIME 1664511720
empty
0. Whoops\Handler\PrettyPageHandler