Я использую WP-All Import с надстройкой WooCommerce для импорта продуктов в WooCommerce. В оригинальном XML у меня есть 3 категории скидок для разных ролей пользователей. С плагином Клиент-специфичные цены для WooCommerce (https://wisdmlabs.com/woocommerce-user-specific-pricing-extension/) Я могу показать разные цены на эти роли.
Этот плагин сохраняет свои данные в отдельной таблице (wp_wusp_role_pricing_mapping
), что означает, что WP-All Import не может вставлять данные напрямую.
Но у WP All Import есть крючок pmxi_saved_post
который вызывается каждый раз, когда запись сохраняется или обновляется. (http://www.wpallimport.com/documentation/advanced/action-reference/)
В этой функции я должен иметь возможность вставлять записи в таблицу wusp_role_price_mapping, потому что мне нужен post_id, но это мой вопрос: мне также нужны исходные данные из XML, где доступны отдельные правила скидок. Могу ли я получить доступ к этим данным в действии ловушки?
Для вашей информации, как данные выглядят в XML и как они должны быть сохранены в базе данных.
<Korting>
<KortingCategorie>EH Markt 71 %</KortingCategorie>
<Percentage>40</Percentage>
<Prijs>0,0000</Prijs>
<KortingCategorie>EH winkel 35%</KortingCategorie>
<Percentage>40</Percentage>
<Prijs>0,0000</Prijs>
<KortingCategorie>EH Winkel 45%</KortingCategorie>
<Percentage>40</Percentage>
<Prijs>0,0000</Prijs>
<KortingCategorie>EH Winkel 50%</KortingCategorie>
<Percentage>40</Percentage>
<Prijs>0,0000</Prijs>
</Korting>
Как видите, название дисконтной категории / userrole (KortingCategorie
в XML) не всегда содержит правильный процент скидки, и скидка отличается для каждого продукта.
+----+--------------+---------+---------+------------------------+------------+
| id | role | price | min_qty | flat_or_discount_price | product_id |
+----+--------------+---------+---------+------------------------+------------+
| 1 | eh_winkel_50 | 40.0000 | 1 | 2 | 5445 |
| 2 | eh_winkel_45 | 40.0000 | 1 | 2 | 5445 |
| 3 | eh_markt | 40.0000 | 1 | 2 | 5445 |
+----+--------------+---------+---------+------------------------+------------+
Просто нашел другое решение:
При импорте я добавляю группы скидок в настраиваемые поля, а с помощью кнопки и get_post_meta
и и wpdb->insert()
Функции я добавляю правильные значения в нужном месте.
Других решений пока нет …