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

Решено Как вставить title и category в описание товара?

aNg

Форумчанин
Есть много однотипных товаров, захотелось добавить описание к ним небольшое, оно по сути одно и тоже для каждого товара, в каждом можно поменять только название товара и категории. Типо как в SEO формируется заголовок товара, категории и т.п. Вот только в описании товара у меня не получается никак вставить ничего, пробовал и <?php the_title(); ?> и %%title%%, ничего... кто что может подсказать?
 

aNg

Форумчанин
Очень смешно, но у меня есть очень много товара однотипного, в тексте которого нужно поменять только название товара и название категории пару раз. Поэтому мне нужно сделать что типо следующего:

бла бла бла бла бла <?php the_title(); ?> бла бла бла бла бла <?php category(); ?> бла бла бла бла бла бла бла бла бла бла <?php the_title(); ?>.

И потом уже это вставлять через CTRL+V в каждый товар и незаморачиватся с тем что нужно скопировать тайтл вставить в одно место, потом в другое, потом скопировать категорию, вставить ее, потом скопировать обратно весь текст, что бы продолжить это в следующий товар.
 

Kvistis

Опытный
Местный
Не выводится, потому что вне цикла используете. Надо вынести в функцию, например если выводить под заголовком где краткое описание:
PHP:
// вывод описания
function woo_short_description(){
 echo 'бла-бла-бла';
echo get_the_title( $post );
 echo 'бла-бла-бла';
}
add_action('woocommerce_single_product_summary', 'woo_short_description', 13);
как-то так, если вы это имеете в виду
 

aNg

Форумчанин
Не выводится, потому что вне цикла используете. Надо вынести в функцию, например если выводить под заголовком где краткое описание:
PHP:
// вывод описания
function woo_short_description(){
 echo 'бла-бла-бла';
echo get_the_title( $post );
 echo 'бла-бла-бла';
}
add_action('woocommerce_single_product_summary', 'woo_short_description', 13);
как-то так, если вы это имеете в виду

Вы можете купить %title% в нашем магазине Бензоград в Киеве, Харькове, Одессе, Днепре и Львове по самым низким ценам, с гарантией и доставкой по Украине. Для этого сделайте заказ через корзину или позвоните нам, в случае звонка укажите код товара %id%. Так же у нас есть большой выбор %category% других производителей, размеров и характеристик.

Мне нужно сделать такой текст, что бы я просто его вставлял в описание товара ( не короткое, а обычное, то что в табах идет( description' )) только вместо %title% - был заголовок, вместо %id% - id товара, вместо %category% - категория этого товара. Я не знаю как еще объяснить что нужно.

З.Ы. Просто товаров порядка 5000, и если для каждого вставлять все это вручную, это займет очень много временииииииииии.
 

tuxfighter

Гуру
Местный
З.Ы. Просто товаров порядка 5000, и если для каждого вставлять все это вручную, это займет очень много временииииииииии.

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

aNg

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

Kvistis

Опытный
Местный
Вы можете купить %title% в нашем магазине Бензоград в Киеве, Харькове, Одессе, Днепре и Львове по самым низким ценам, с гарантией и доставкой по Украине. Для этого сделайте заказ через корзину или позвоните нам, в случае звонка укажите код товара %id%. Так же у нас есть большой выбор %category% других производителей, размеров и характеристик.

Мне нужно сделать такой текст, что бы я просто его вставлял в описание товара ( не короткое, а обычное, то что в табах идет( description' )) только вместо %title% - был заголовок, вместо %id% - id товара, вместо %category% - категория этого товара. Я не знаю как еще объяснить что нужно.

З.Ы. Просто товаров порядка 5000, и если для каждого вставлять все это вручную, это займет очень много временииииииииии.

Суть все равно та же. Только теперь вы берете файл шаблона /woocommerce/single-product/tabs/description.php, вставляете его в дочернюю тему, и правите. Хотя я не уверена, что get_the_title( $post ); будет работать, пробуйте.
З.Ы. Задача не такая простая получается, и вопрос уже не для новичков)
 

aNg

Форумчанин
Суть все равно та же. Только теперь вы берете файл шаблона /woocommerce/single-product/tabs/description.php, вставляете его в дочернюю тему, и правите. Хотя я не уверена, что get_the_title( $post ); будет работать, пробуйте.
З.Ы. Задача не такая простая получается, и вопрос уже не для новичков)

Задача не править файлы, если бы я хотел просто добавить текст к описанию в каждом товаре, я бы сделал следующее ( что в принципе и сделано): я бы в файл /woocommerce/single-product/tabs/description.php добавил бы следующий код:

<p style="text-align: justify;">Вы можете купить <?php the_title(); ?> в нашем магазине <a href="http://benzograd.com.ua">Бензоград</a> в Киеве, Харькове, Одессе, Днепре и Львове по самым низким ценам, с гарантией и доставкой по Украине. Для этого сделайте заказ через корзину или позвоните нам, в случае звонка укажите код товара <?php the_id(); ?>. Так же у нас есть большой выбор <?php echo ($product->get_categories( )); ?> других производителей, размеров и характеристик.</p>

Но мне нужно сделать тоже самое, но что бы это был код, который я могу вставить в произвольный товар, просто через редактор товара, и он мне подтянул вместо автоматически, тайтл, айди и категорию... ну блин как еще обьяснить?
 

tuxfighter

Гуру
Местный
Но мне нужно сделать тоже самое, но что бы это был код, который я могу вставить в произвольный товар, просто через редактор товара, и он мне подтянул вместо автоматически, тайтл, айди и категорию... ну блин как еще обьяснить?

проблема в том, что вам пытались помочь сделать все по фэн-шую -)))
через редактор товара нельзя вставить php код, в этом вся соль
https://ru.wordpress.org/plugins/ezphp/

+ еще полтора десятка аналогов
 

artemkomarov

Специалист
Местный
Есть много однотипных товаров, захотелось добавить описание к ним небольшое, оно по сути одно и тоже для каждого товара, в каждом можно поменять только название товара и категории.
держите пример с %%product_title%% . По этому же принципу можно что угодно вставлять как выражения и заменять на что нужно

PHP:
// замена рег выражения %%product_title%% на тайтл продукта
// для короткого описания
add_filter('woocommerce_short_description', 'change_short_content_for_product');
// для полного описания
add_filter('the_content', 'change_short_content_for_product');
function change_short_content_for_product($content) {
  global $post;
  $content = str_replace('%%product_title%%', $post->post_title, $content);
  return $content;
}
 

aNg

Форумчанин
держите пример с %%product_title%% . По этому же принципу можно что угодно вставлять как выражения и заменять на что нужно

PHP:
// замена рег выражения %%product_title%% на тайтл продукта
// для короткого описания
add_filter('woocommerce_short_description', 'change_short_content_for_product');
// для полного описания
add_filter('the_content', 'change_short_content_for_product');
function change_short_content_for_product($content) {
  global $post;
  $content = str_replace('%%product_title%%', $post->post_title, $content);
  return $content;
}
Спасибо большое! Именно то что было нужно!
 

sergiocharm

Опытный
Не выводится, потому что вне цикла используете. Надо вынести в функцию, например если выводить под заголовком где краткое описание:
PHP:
// вывод описания
function woo_short_description(){
 echo 'бла-бла-бла';
echo get_the_title( $post );
 echo 'бла-бла-бла';
}
add_action('woocommerce_single_product_summary', 'woo_short_description', 13);
как-то так, если вы это имеете в виду

а как тоже самое только вместо echo get_the_title( $post ); вывести цену?
я это подставляю в массив, echo get_the_title( $post ); помогло подставить наименование, а сейчас надо еще и цену 7990 заменить на стоимость товара.
Код:
//формируем заказ
$application = array(
'timestamp' => time(),
'requestId' => time(),
"orderItems" => array(
array(
'price' => array(
'value' => 7990,
'currency' => 'RUB'
),
'category' => 'phones',
'title' => get_the_title( $post )
)
),
"requestedAmount" => array(
'value' => 7990,
'currency' => 'RUB'
),
"applicationFields" => array(
"requestedTerm" => 10
),
"sellerUserId" => "a06m00000055hZOAAY",
);
 

sergiocharm

Опытный
Вот это echo $product->get_display_price(); вставляю вместо 7990 , кнопка просто не загружается, видимо ошибка.
 

Марнарита

Новичок
держите пример с %%product_title%% . По этому же принципу можно что угодно вставлять как выражения и заменять на что нужно

PHP:
// замена рег выражения %%product_title%% на тайтл продукта
// для короткого описания
add_filter('woocommerce_short_description', 'change_short_content_for_product');
// для полного описания
add_filter('the_content', 'change_short_content_for_product');
function change_short_content_for_product($content) {
  global $post;
  $content = str_replace('%%product_title%%', $post->post_title, $content);
  return $content;
}
Помогите сделать тоже самое только чтоб еще и в категории (где отражаются товары списком с кратким описанием) заменялось %%product_title%% . Сейчас так http://uno-med.ru/product-category/neyrohir/page/2/?switch=list
 
Последнее редактирование:
Сверху Снизу