Wordpress Woocommerce подписка - получить общее количество активных подписок по продуктам - PullRequest
0 голосов
/ 15 января 2019

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

Я использую следующую функцию, чтобы получить общее количество активных подписок, но номера не совпадают из-за переключенных подписок. Как я могу учитывать подписку на коммутатор?

function get_active_subscriptions_count( $product_id) {
  global $wpdb;

  // return the active subscriptions for a defined product ID
  return $wpdb->get_var("
      SELECT COUNT(p.ID)
      FROM {$wpdb->prefix}posts as p
      LEFT JOIN {$wpdb->prefix}posts AS p2 ON p.post_parent = p2.ID
      LEFT JOIN {$wpdb->prefix}postmeta AS pm ON p2.ID = pm.post_id
      LEFT JOIN {$wpdb->prefix}woocommerce_order_items AS woi ON pm.post_id = woi.order_id
      LEFT JOIN {$wpdb->prefix}woocommerce_order_itemmeta AS woim ON woi.order_item_id = woim.order_item_id
      WHERE p.post_type LIKE 'shop_subscription' 
      AND p2.post_type LIKE 'shop_order' AND woi.order_item_type LIKE 'line_item'
      AND pm.meta_key LIKE '_customer_user'
      AND woim.meta_key = '_product_id'
      AND woim.meta_value = '$product_id'
      AND p.post_status LIKE 'wc-active'
  ");
}

Что я могу сделать для учета подписок на коммутаторы? Чего мне не хватает в запросе?

...