Список купонов с деталями заказа в WooCommerce - PullRequest
0 голосов
/ 11 октября 2018

У меня есть сайт с 1000 купонов.Все купоны имеют ограничение использования один.Я использую код, предоставленный Раунуком Гуптой, для экспорта купонов напрямую из базы данных SQL.

Как купоны WooCommerce хранятся в базе данных ?

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

Спасибо.

  • Мы генерируем 1000 купонов и предоставляем их компании (клиент).
  • Каждый купон имеет ограничение использования 1.
  • Затем компания распределяет купоны среди своих членов.
  • В конце месяца нам нужноотправьте отчет в компанию, сообщив им:
    1. Сколько из 1000 купонов было использовано.(это можно сделать с помощью кода, приведенного по ссылке выше)
    2. Затем по использованным купонам нужно сообщить им, кто его использовал, другими словами, имя и адрес электронной почты пользователя, разместившего заказ..

ССЫЛКА НА ОБРАЗЕЦ EXCEL EXPORT - Желтые поля из КУПОНОВ - Голубые поля из ЗАКАЗА

1 Ответ

0 голосов
/ 17 октября 2018

Ниже MySQL-запроса будут перечислены все ваши купоны, связанные с заказом.

SELECT pc.post_title AS coupon_name,
       pc.post_excerpt AS coupon_description,
       Max(CASE WHEN pmc.meta_key = 'discount_type'      AND  pc.`ID` = pmc.`post_id` THEN pmc.`meta_value` END) AS discount_type,
       Max(CASE WHEN pmc.meta_key = 'coupon_amount'      AND  pc.`ID` = pmc.`post_id` THEN pmc.`meta_value` END) AS coupon_amount,
       Max(CASE WHEN pmc.meta_key = 'product_ids'        AND  pc.`ID` = pmc.`post_id` THEN pmc.`meta_value` END) AS product_ids,
       Max(CASE WHEN pmc.meta_key = 'product_categories' AND  pc.`ID` = pmc.`post_id` THEN pmc.`meta_value` END) AS product_categories,
       Max(CASE WHEN pmc.meta_key = 'customer_email'     AND  pc.`ID` = pmc.`post_id` THEN pmc.`meta_value` END) AS customer_email,
       Max(CASE WHEN pmc.meta_key = 'usage_limit'        AND  pc.`ID` = pmc.`post_id` THEN pmc.`meta_value` END) AS usage_limit,
       Max(CASE WHEN pmc.meta_key = 'usage_count'        AND  pc.`ID` = pmc.`post_id` THEN pmc.`meta_value` END) AS total_usaged,
       po.ID AS order_id,
       MAX(CASE WHEN pmo.meta_key = '_billing_email'      AND po.ID = pmo.post_id THEN pmo.meta_value END) AS billing_email,
       MAX(CASE WHEN pmo.meta_key = '_billing_first_name' AND po.ID = pmo.post_id THEN pmo.meta_value END) AS billing_first_name,
       MAX(CASE WHEN pmo.meta_key = '_billing_last_name'  AND po.ID = pmo.post_id THEN pmo.meta_value END) AS billing_last_name,
       MAX(CASE WHEN pmo.meta_key = '_order_total'        AND po.ID = pmo.post_id THEN pmo.meta_value END) AS order_total
FROM `wp_posts` AS pc
INNER JOIN `wp_postmeta` AS pmc ON  pc.`ID` = pmc.`post_id`
INNER JOIN `wp_woocommerce_order_items` AS woi ON pc.post_title = woi.order_item_name
    AND woi.order_item_type = 'coupon'
INNER JOIN `wp_posts` AS po ON woi.order_id = po.ID
    AND po.post_type = 'shop_order'
    AND po.post_status IN ('wc-completed', 'wc-processing', 'wc-refunded') -- Added needed order status over here.
INNER JOIN `wp_postmeta` AS pmo ON po.ID = pmo.post_id
WHERE pc.post_type = 'shop_coupon'
GROUP BY po.ID
ORDER BY pc.ID DESC,
         po.ID DESC
LIMIT 0, 10 -- modify it accordingly.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...