oont-contents/plugins/mailpoet/lib/Automation/Integrations/WooCommerce/Fields/TermParentsLoader.php
2025-02-08 15:10:23 +01:00

40 lines
887 B
PHP

<?php declare(strict_types = 1);
namespace MailPoet\Automation\Integrations\WooCommerce\Fields;
if (!defined('ABSPATH')) exit;
class TermParentsLoader {
/**
* @param int[] $termIds
* @return int[]
*/
public function getParentIds(array $termIds): array {
global $wpdb;
if (count($termIds) === 0) {
return [];
}
$result = $wpdb->get_col(
$wpdb->prepare(
"
SELECT DISTINCT tt.parent
FROM {$wpdb->term_taxonomy} AS tt
WHERE tt.parent != 0
AND tt.term_id IN (" . implode(',', array_fill(0, count($termIds), '%s')) . ")
",
$termIds
)
);
$parentIds = array_map('intval', $result);
if (count($parentIds) === 0) {
return [];
}
return array_values(
array_unique(
array_merge($parentIds, $this->getParentIds($parentIds))
)
);
}
}