как в плагине получить переменные товара по его ID ?

  • 13 Ответов
  • 427 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

*

Оффлайн alexshab

Доброго времени суток!

Пытаюсь подружить плагин JoomShopping Xmap c плагином Product_canonical, чтобы в Xmap были только канонические urlы товаров.
В плагине Product_canonical есть строка в которой определяется основная категория для товара:
$maincategory_id = $product->getCategory();
здесь весь код плагина:
Спойлер
[свернуть]
Но в плагине JoomShopping для Xmap такой переменной нет.
Есть текущая категория - $row->category_id и id товара - $params['Itemid']
Вот основной код функции, которая отвечает формирование списка ссылок:
Спойлер
[свернуть]
Подскажите, пожалуйста. Как мне, кроме текущeго id категории получить id основной, что бы поставить условие в цикле, для формирования списка.
Что-то типа if ( $row->category_id==$row->getCategory() )
Я уже экспериментировал, например, если в цикле поставить условие if ($row->category_id=='11')
то, в списке Xmap товары будут только в 11-й категории.
Вот, только $row->getCategory() - не работает.

*

Оффлайн dmitry_stas

$product = JTable::getInstance('Product', 'jshop');
$product->load($params['Itemid']);
if ($row->category_id == $product->getCategory()) {
    ////
}
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций

*

Оффлайн alexshab

Спасибо!
Только, я там немного ошибся, id товара в цикле будет не - $params['Itemid']
а - $row->product_id
т.е. окончательный код условия
$product = JTable::getInstance('Product', 'jshop');
$product->load($row->product_id);
if ($row->category_id == $product->getCategory()) {
И, почему-то, не канонические ссылки вылезли в другом месте - ниже, в списке товаров производителя.
По-этому я цикл товаров производителя отключил.
Теперь, все Ок - список Xmap, прочистился.
+1))

*

Онлайн Biss

Тот же вопрос. Подскажите как написать, пожалуйста. Плагин должен получить название товара в карточке товара

*

Оффлайн dmitry_stas

какой именно плагин? уже написан?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций

*

Онлайн Biss

Да, это vrvote , находится в группе контент

*

Оффлайн dmitry_stas

если проблема получить product_id - то в карточке товара это
$product_id = JFactory::getApplication()->input->getInt('product_id');
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций

*

Онлайн Biss

Не, наверно не то, напишу подробно.
В плагин добавил микроразметку aggregateRating
Для валидности кода Google требует обьект отзыва (название товара)
я сделал так (это выводит ид товара)
<meta property="v:itemreviewed" content="'.$params.'" >
а если пробую
<meta property="v:itemreviewed" content="'.$product->name.'" >
то ничего не выводит, то есть плагин должен сначала получить переменную этот самый 'name'
« Последнее редактирование: 07.04.2017, 12:54:39 от Biss »

*

Оффлайн dmitry_stas

ну так а
$product = JTable::getInstance('Product', 'jshop');
$product->load(ID товара);
вы сделали?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций

*

Онлайн Biss

Получилось вывести только ид, а имя

$product = JTable::getInstance('product', 'jshop');
$product_id = JRequest::getInt('product_id');
<meta property="v:itemreviewed" content="'.$product_id.'" >

*

Оффлайн dmitry_stas

Цитировать
$product->load(ID товара);
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций

*

Онлайн Biss

$product = JTable::getInstance('product', 'jshop');
$product->load(ID);

<meta property="v:itemreviewed" content="'.$product->name.'" >
не выводит

*

Оффлайн dmitry_stas

$product->{'name_ru-RU'}
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций

*

Онлайн Biss

Спасибо, получилось.
$product = JTable::getInstance('product', 'jshop');
$product_id = JRequest::getInt('product_id');
$product->load($product_id);
$product->name = $product->{'name_ru-RU'};

<meta property="v:itemreviewed" content="'.$product->name.'" >