Presupun aici că se pleacă de la codul de cupon, presupunere pe care n-o fac de dragul presupunerii or constrângerii, ci pleacă dintr-o nevoie particulară. Lucrurile sunt destul de simple aici, există o funcție standard pentru obținerea ID-ului de cupon – wc_get_coupon_id_by_code.
$couponId = wc_get_coupon_id_by_code($couponCode);
Următorul pas (sau primul dacă plecați direct de la ID) este folosirea tabelei wc_order_coupon_lookup (nu am inclus în denumirea tabelei prefixul configurat în WordPress) pentru a determina numărul de comenzi pentru acel ID de cupon. Această tabelă menține, pentru fiecare comandă (reprezentată aici prin ID-ul său – coloana order_id) ce cupon a fost folosit (reprezentat și el prin ID – coloana coupon_id).
Așadar, fără alte adăugiri, iată un exemplu:
/** @var \wpdb $wpdb */
global $wpdb;
$tableName = $wpdb->prefix . 'wc_order_coupon_lookup';
$sql = 'SELECT COUNT(cl.order_id) AS coupon_count
FROM ' . $tableName . ' cl
WHERE cl.coupon_id = ' . intval($couponId) . '
GROUP BY cl.coupon_id';
$orderCountData = $wpdb->get_col($sql,
0);
if (!empty($orderCountData[0])) {
$orderCount = intval($orderCountData[0]);
} else {
$orderCount = 0;
}
Îl puteți îngloba într-o funcție sau într-o clasă și folosi oriunde aveți nevoie, cum ar fi, spre exemplu, într-un widget pentru dashboard-ul standard al WordPress.