• Никакой политики на форуме. Иначе - бан!
  • Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!
  • Темы озаглавленные с маленькой буквы или капсом удаляются без предупреждения!

WP all import ценообразование и создание свойств

kot488

Новичок
Гуру нужна помощь, только изучаю сам WP и WP all import, подскажите пожалуйста как решить несколько проблем:
1. Нужно делаеть ценообразование в зависимости от category id. Например если <category id="99011" то цена ($val+15)*1.55
2. Как то можно реализовать генерацию атрибутов на основании например названия или описания, например если наименование содержить ***** (пять звездочек) то артрибут Сложность = 5
3. Как то на основании наименования товара можно указать нужную категорию куда загрузить товар? Например если у товара в названии есть слово Тетрис то ему место в категории Электронные игрушки.
 

joy66

Опытный
1 и 2 через функции.
Пример.
Код:
[pars_img_file({full_sku[1]})]
Это выражение вставляется в какое-то поле
pars_img_file это php функция которая находится в файле /wp-content/uploads/wpallimport/functions.php
Принимает некий параметр full_sku[1] (это поле в файле импорта )и что-то возвращает. Итоговое значение и будет использоваться

3 через маппинг

Manage Imports.png
 

joy66

Опытный
Нет. функции надо писать самому. обзывать как хочешь. Либо в окне импорта. либо просто в файл что я указал.
 

joy66

Опытный
Встроенные php функции прямо можно в поля вставлять
Типа
[str_replace("Было", "Стало", {title[1]})]
 

joy66

Опытный
Если сможете поделиться готовым кодом по третьему пункту, то буду очень благодарен)
Пока не нашел примеров(
Можно также функцию использовать
вставить в поле категория
Код:
[cat_from_title({product_title[1]})]
это если поле название товара в файле импорта product_title

нy и сама функция
PHP:
function cat_from_title($title){
$nocat='Без категории';
  $array_map=array(
'Электроника' => array('Тетрис','Метрис','Бетрис','Петрис'),
'Не электроника' =>array('Мяч','Щит','Меч','Печь'),
'Совсем не электроника' => array('Подушка','Ручка'),
);
foreach($array_map as $cat => $words) {
  foreach($words as $word){
     if (preg_match("/$word/ui",$title)) {
          return $cat;
     }
}
}
return $nocat;
}
 

kot488

Новичок
Можно также функцию использовать
вставить в поле категория
Код:
[cat_from_title({product_title[1]})]
это если поле название товара в файле импорта product_title

нy и сама функция
PHP:
function cat_from_title($title){
$nocat='Без категории';
  $array_map=array(
'Электроника' => array('Тетрис','Метрис','Бетрис','Петрис'),
'Не электроника' =>array('Мяч','Щит','Меч','Печь'),
'Совсем не электроника' => array('Подушка','Ручка'),
);
foreach($array_map as $cat => $words) {
  foreach($words as $word){
     if (preg_match("/$word/ui",$title)) {
          return $cat;
     }
}
}
return $nocat;
}
Спасибо большое) пробую дальше изучать
 

joy66

Опытный
А можно как то поправить что бы искало в нескольких местах? Например название и описание. Типа такого [cat_from_title({name[1]},{description[1]})]
Ну, а почему нет. Изменить надо тогда функцию
PHP:
function cat_from_title($title,$description){
$nocat='Без категории';
  $array_map=array(
'Электроника' => array('Тетрис','Метрис','Бетрис','Петрис'),
'Не электроника' =>array('Мяч','Щит','Меч','Печь'),
'Совсем не электроника' => array('Подушка','Ручка'),
);
foreach($array_map as $cat => $words) {
  foreach($words as $word){
     if (preg_match("/$word/ui",$title) || preg_match("/$word/ui",$description)) {
          return $cat;
     }
}
}
return $nocat;
}
 

kot488

Новичок
Ну, а почему нет. Изменить надо тогда функцию
Где то я конкретно туплю, сделал вот так, но не добавляет свойства(

PHP:
[razmer_kartini({name[1]},{description[1]})]

PHP:
function razmer_kartini($title,$description){
  $array_map=array(
'40 х 50' => array(' 40х50'),
'40 х 50' => array(': 40 х 50'),
'40 х 40' => array(': 40 х 40'),
'30 х 40' => array(': 30 х 40'),
'40 х 30' => array(': 40 х 30'),
'30 х 30' => array(': 30 х 30'),
'30 х 50' => array(': 30 х 50'),
'50 х 30' => array(': 50 х 30'),
'50 х 50' => array(': 50 х 50'),
'40 х 40' => array(': 40х40'),
'40 х 50' => array(': 40х50'),
'40 х 50' => array(': 50х40'),
'40 х 30' => array(': 40х30'),
'30 х 30' => array(': 30х30'),
'40 х 50' => array(': 40х50'),

);
foreach($array_map as $cat => $words) {
  foreach($words as $word){
     if (preg_match("/$word/ui",$title) || preg_match("/$word/ui",$description)) {
          return $cat;
     }
}
}
return $nocat;
}
 

joy66

Опытный
Где то я конкретно туплю, сделал вот так, но не добавляет свойства(

PHP:
[razmer_kartini({name[1]},{description[1]})]

PHP:
function razmer_kartini($title,$description){
  $array_map=array(
'40 х 50' => array(' 40х50'),
'40 х 50' => array(': 40 х 50'),
'40 х 40' => array(': 40 х 40'),
'30 х 40' => array(': 30 х 40'),
'40 х 30' => array(': 40 х 30'),
'30 х 30' => array(': 30 х 30'),
'30 х 50' => array(': 30 х 50'),
'50 х 30' => array(': 50 х 30'),
'50 х 50' => array(': 50 х 50'),
'40 х 40' => array(': 40х40'),
'40 х 50' => array(': 40х50'),
'40 х 50' => array(': 50х40'),
'40 х 30' => array(': 40х30'),
'30 х 30' => array(': 30х30'),
'40 х 50' => array(': 40х50'),

);
foreach($array_map as $cat => $words) {
  foreach($words as $word){
     if (preg_match("/$word/ui",$title) || preg_match("/$word/ui",$description)) {
          return $cat;
     }
}
}
return $nocat;
}
Боюсь, вам надо отвлечься от WP, ALL Import... и разобраться с PHP . Про какие свойства речь? Я приводил пример кода исходя из той задачи, которую вы объяснили. ТО есть анализ полей title и description в файле импорта на наличие определенных ключевых слов и в зависимости от этого присваивание определенной категории. Что по вашей задумке должно быть в $array_map ?
 
Сверху Снизу