PluginUs.Net - Business Tools for WooCommerce and WordPress

[realize your idea - make your dreams come true]

Support Forum

You need to log-in to create request (topic) to the support

Warning: Illegal string offset on line 113

The support doesn work on Saturdays and Sundays, so some Friday requests can be answered on Monday. If you have problems with registration ask help on contact us page please
If you not got email within 24~36 business hours, firstly check your spam box, and if no any email from the support there - back to the forum and read answer here. DO NOT ANSWER ON EMAILS [noreply@pluginus.net] FROM THE FORUM!! Emails are just for your info, all answers should be published only here.
The support doesn work on Saturdays and Sundays, so some Friday requests can be answered on Monday.
12

здравствуйте

Спросите в  поддержке Вашего  хостинга,  используют ли  они  что нибудь  для  оптимизации Wordpress

Я  делал  тесты,  и  при осолютно одинаковых  запросах   выдается  разный  результат.

Это  может  быть  кешь  или  некорректное изменение базы  данных

У меня есть копия сайта на денвере. Фильтр и там работает точно так же некорректно, значит вряд-ли дело в хостинге

Почему плагин ведет себя по-разному в зависимости от того админ ты или обычный пользователь?

Поставил еще один плагин фильтр товаров для пробы. Он абсолютно также неверно вычисляет количество товаров рядом с атрибутом, но выдачу дает верную как администратору, так и простому пользователю. А если выбрать атрибут, то и число становится верным.

 

В целом, если не считать проблем с счетчиками (которые на крайний случай можно просто отключить), то можно считать, что плагин конкурентов работает лучше. Я надеюсь вы не разочаруете меня и всё же доработаете свой плагин!

Здравствуйте

Я  считаю  что  скорее  всего  проблема  в Вашей  базе  данных( https://c2n.me/4dvqfkJ.png ),  а  точнее  не  корретный  перенос  данных  при  помощи  сторонних плагинов.

https://c2n.me/4dvqhO5.png - На  локальном  сервере  Вы  также  использовали  перенос  данных?

К  сожалению  я  не  вижу  что  здесь  дорабатывать.  Как  я  уже  писал  выше: я  делал  запрос вручную (без использования  фильтра)  и  результат  был  разный  и  это  означает  что  база  данных работает  не  корректно.

И как проблемы с переносом могут повлиять на разную выдачу для администратора и обычного пользователя?

 

Ваш плагин реагирует на поиск в вариациях только для администратора. А для обычного пользователя поиск в вариациях как будто не учитывается

Здравствуйте

И так! Представим  что  Вы  не  используете  мой  плагин.  И  делаете  запрос в  базу  данных  и  получаете  разный  результат  для  пользователей (  я  сделал  такой  опыт - https://share.pluginus.net/image/i20211001125228.png ) -  в  этой  цепочке  остается  нативный  запрос  от wordpress  и  Ваша  база  данных

И как проблемы с переносом могут повлиять на разную выдачу для администратора и обычного пользователя? - Конечно.  В  базе  данных  множество связей если  они  не  корректные  тогда  может неправильно  кешироватся   вариативные  продукты(woocommerce использует transient)

Есть возможность вернуть деньги за плагин, который у меня отказывается работать?

Здравствуйте

К сожалению нет. На envato  есть правила  возврата и  покупая  плагин  Вы  соглашаетесь  с  этими правилами.   И Ваш  случай  не  попадает  под  эти правила  (как я  описал  выше)

Тогда будьте добры сделать его работающим!

 

Почему другой плагин даёт правильную выдачу как для администратора, так и для простого пользователя, а ваш работает только для администратора????

Здравствуйте

Как  я  уже  писал,  это  не  зависит  от  нашего плагина.  Запрос(без участия фильтра)  на  получение  продуктов не на  складе  дает  разный  результат  для  администратора  и для  обычного пользователя.

Для  Вас  я  сделал  еще  один  тест - https://c2n.me/4dyoBGC.mp4

Как  Вы  можете  видеть  мой  плагин  отключен. Я  вставил код  чтобы  найти все вариативные  продукты  не  на складе  с размером  42.  Результат  показывает  количество  найденых продуктов

Пример кода:

add_action('wp_head', function(){

$args1 = array(
'nopaging' => true,
'suppress_filters' => true,
//'post_status' => 'publish',
'post_type' => array('product_variation'),
'meta_query' => array(
"relation"=> 'AND',
array(
'key'=>"_stock_status",
"value" =>"outofstock"
),
array(
"relation" => 'OR',
array(
"key" =>"attribute_pa_harakteristika",
"value" => '42'
)
),

)
);

$query1 = new WP_Query($args1);

echo"<pre>";
var_dump($query1->found_posts);
echo"</pre>";

});

Видно что  для  разных  пользователей   отображается  разный  результат.  Это  доказывает  что  мой  плагин не  имеет отношение к  этой  ошибке

Мы  не  можем  быть  ответственны  за состояние Вашей  базы  данных.

 

Как тогда другому плагину удается вести себя одинаково и для администратора и для обычного пользователя????

Здравствуйте

Я  не  знаком  с  кодом стороннего плагина.  И как  он  работает  я знаю только  с Ваших слов.

Сторонний  плагин  делает поиск в  вариативных продуктах?

В любом случае  факт  в  том  что у Вас  проблемы  с  сайтом,  как  я  показал в  тесте на  видео.

И  на  правильно настроеном сайте(без  ошибок)  мой  плагин  будет работать  корректно

Если  Вы  со  мной  не  согласны, пожалуйста,  откройте спор на envato

Мои специалисты провели анализ и не нашли проблем с базой данных.

Ознакомьтесь со следующим:

 

1. Для начала давайте зафиксируем стандартное в WooCoommerce понятие - это включенные и не включенные вариации. Эта галочка"Включено" у каждой вариации. Это состояние влияет на статус записи в базе данных и, если включено, то статус"publish", а если нет, то статус"private".

WordPress в рамках стандартного поведения,"подкидывает" в запрос статус"private", если у пользователя достаточно прав.

Вот и вся простая разница, между запросами под админом и без авторизации:

- в запросе для администратора (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'private')

- в запросе без авторизации (wp_posts.post_status = 'publish')

Как вы можете видеть, есть разница и в запросе от администратора участвуют вариации со статусом 'private', что является абсолютно нормальным для WordPress, так как администратор имеет права для работы с этими данными. То есть тут не идет речи о какой-то проблеме с базой данный или чем-то подобном.

2. Далее давайте посмотрим, что происходит со счетчиками.

Например, есть 2 вариативных товара в наличии, у которых есть атрибут"атрибут 1" и 2 значения -"10" и"20", также у них есть по 2 вариации, в каждой из которых выбрано одно из этих двух значений и предположим, что вариация со значением"10" в первом товаре не в наличии и отключена.

Ожидаем, что у значения"20" будет счетчик"2", так как есть 2 товара с этим значением и вариации связанные со значением активны и в наличии, а у значения"10" будет счетчик"1", так как есть 2 товара с этим значением, но у одного из товаров, вариация с этим значением отключена и не в наличии, таким образом остается"1".

Получаем: у обоих значений счетчик равен"2", хотя у"10" он должен быть "1", если состояние вариаций учитывается.

3. Ну и наконец с результатами. Основываемся на данных, описанных в пункте 2.

Ожидаем: при использовании"20" - 2 товара, а при использовании"10" - 1 товар.

Получаем:

3.1 админ

- при 20 - все верно

- при 10 - все верно, так как в рамках его запросов вариации со статусом"private"  были получены и по логике плагина, ID товаров с отключенной вариацией попадают в исключение"NOT IN"

3.2 без авторизации

- при 20 - все верно, 2 товара

- при 10 - не верно, 2 товара вместо 1, так как в рамках его запросов вариации со статусом"private" не были получены и в итоге товар, вариация которого отключена, и по логике плагина, ID товаров с отключенной вариаций не попали в исключение"NOT IN"

Здравствуйте

Ок!  Отлично

Значит у Вас  все  продукты  в  наличии для 42  размера

Интересно, что добавление строк 175 - 177 программистами в файле wp-content/plugins/woocommerce-products-filter/index.php привело к тому результату выдачи, о котором я вас просил!

 

Что скажете на это???

Здравствуйте

Вот  это - https://share.pluginus.net/image/i20211011124603.png

Вы  специально  скрываете  эти  варианты. По  факту  эти продукты   не  имеют  варианта:  размер 42  (этот вариант не  активен)

Но родительский  продукт  имеет  аттрибут: размер  42  и  родительский  продукт  на  складе.

Например  запрос:  Получить  все  продукты  с  размером 42   и  In stock   И  исключить  продукты  которые  имеют  варианты с  размером 42   и  out of stock (все  эти  варианты не  активны/скрыты/не существуют  в  твоем  случае)

12