Skip navigation

Эта тема решена. Вот описание проблемы и ее решения.

Problem:
Клиент столкнулся с проблемой, что при программном сохранении товара через WP CLI цена не обновляется в другой языковой версии товара.
Solution:
Мы рекомендуем использовать хук WPML для синхронизации всех пользовательских полей после программного обновления товара. Вы можете вызвать этот хук следующим образом:

do_action('wpml_sync_all_custom_fields', $product->get_id());

Это позволит синхронизировать цену и другие параметры между языковыми версиями товара. Для более подробной информации, пожалуйста, посетите документацию WPML.

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

Это форум технической поддержки WPML – плагина для многоязычной WordPress.

Доступно для чтения всем, но только клиенты, купившие WPML, могут оставлять сообщения. Сотрудники WPML отвечают на сообщения форума 6 дней в неделю, 22 часов в сутки.

Помечено: ,

Эта тема содержит 1 ответ, имеет 0 голоса.

Последнее обновление: Andrey 2 недели, 1 день назад.

При содействии: Andrey.

Автор Записи
4 декабря, 2024 на 4:11 пп #16477821

mikalaiH-2

отключение плагинов помогло, спасибо. проблема была в плагине NikanTicket

1. появилась новая проблема. при программном сохранении товара цена не обновляется в другой языковой версии товара
$product->set_regular_price($bundle['price']);

$this->logger->debug(
sprintf('%s SAVE PRODUCT PRICE %s [#%s]', EsimGoCom::LOGGER_PREFIX, $product->get_sku(), $product->get_id()),
['old' => $product_price, 'new' => $bundle['price']]
);
$product->save();
update_post_meta($product_id, sprintf('%s_price', EsimGoCom::POST_META_PREFIX), $bundle['price']);

можно вызвать какую-то функцию для синхронизации цены и других параметров? код запускается через wp cli

2. в настройках wpml есть функция копирования meta полей. если поставить copy то при каждом сохранении woocommerce товара будут обновляться мета поля или только при создании дубля товара?

3. как лучше программно создать копию товара для другого языка? с базового (англ) для ру языка. нужно чтобы при создании дубля товара скопировались все данные товара + мета поля. после создания дубля на другом языке нужно сделать чтобы товар можно было независимо редактировать на русском языке (чтобы можно было менять описание, название, permalink, seo), но осталась синхронизация цены и категорий. нужно как-то массово скопировать 4 тысячи товаров и придется часто дублировать товары, так как товары по апи синхронизируются. может есть какой-то гайд как это правильно сделать через код (wp cli)

5 декабря, 2024 на 4:21 пп #16482952

Andrey
Supporter

Языки: Английский (English ) Русский (Русский )

Часовой пояс: Europe/Kyiv (GMT+02:00)

1. Это ожидаемо, так как в программном обновление не запускаются все хуки, которые срабатывают при сохранение товара в админке.

Попробуйте использовать этот хук https://wpml.org/wpml-hook/wpml_sync_all_custom_fields/.

Пример:

do_action( 'wpml_sync_all_custom_fields', $product->get_id() );