• Помогите пожалуйста, у меня на сайте выскакиевает постоянно ошибка — Fatal error: Call to a member function managing_stock() on a non-object in /www/wp-content/plugins/woocommerce/includes/class-wc-product-variation.php on line 372

    Как ее исправить? Что это такое? Очень и срочно требуется ваша помощь!!!

Просмотр 12 ответов — с 1 по 12 (всего 12)
  • Зайдите через ftp (клиентом FileZilla, например)
    найдите этот файл
    /www/wp-content/plugins/woocommerce/includes/class-wc-product-variation.php
    и посмотрите строку 372
    Если сами не поймёте в чём дело, можете скинуть код сюда.

    /**
    	 * Returns whether or not the product (or variation) is stock managed.
    	 *
    	 * @return bool|string Bool if managed at variation level, 'parent' if managed by the parent.
    	 */
    	public function managing_stock() {
    		if ( 'yes' === get_option( 'woocommerce_manage_stock', 'yes' ) ) {
    			if ( 'no' === $this->manage_stock ) {
    				if ( $this->parent->managing_stock() ) {
    					return 'parent';
    				}
    			} else {
    				return true;
    			}
    		}
    		return false;
    	}

    372 строка — if ( $this->parent->managing_stock() ) {
    return ‘parent’;
    }

    вот это. Помогите пожалуйста, что это за проблема! Спасибо!

    пальцем в небо…
    найдите файл functions.php
    скачайте его и сохраните где-нибудь отдельно.
    после чего добавьте туда вот такой код:

    function looking_for_query() {
        global $wpdb;
    
        $results = $wpdb->get_results(
        "
        SELECT p.post_parent, i.element_id
        FROM {$wpdb->prefix}icl_translations as i LEFT JOIN $wpdb->posts as p
        ON i.element_id = p.ID
        WHERE i.element_type = 'post_product_variation'
        "
        );
    
        foreach ($results as $result) {
    
            if (is_null(get_post($result->post_parent))) {
    
                $wpdb->query ("
                DELETE FROM {$wpdb->prefix}icl_translations
                WHERE element_id = {$result->element_id}
                AND element_type = 'post_product_variation'
    
                ");
    
            }
        }
    
    }
    
    add_action( 'admin_notices','looking_for_query' );

    попробуйте перезагрузить страницу и проверить наличие ошибки.
    после чего удалите этот вставленный кусок из файла functions.php

    найдите файл functions.php — в какой паке мне искать этот файлик?

    в папке с темой

    этот файл находить в моей теме: /www/wp-content/themes/bluer/ — вот здесь его искать и добавить туда ваш код?

    да

    ошибка выскакивает опять! что это за проблема?

    может в ручную где то в базе данных что то почистить? Раньше такого не было, плагины никакие не устанавливали!

    Здесь могут и не суметь помочь..
    Советую параллельно обратиться в поддержку woocommerce
    https://support.woothemes.com/hc/en-us

    а что вы из табицы icl_translations удаляли? может в ручную поудалять записи с условием element_type = ‘post_product_variation’?

Просмотр 12 ответов — с 1 по 12 (всего 12)

Тема «Call to a member function managing stock() on a non-object» закрыта для новых ответов.