Вы можете сделать это с помощью запроса MySQL.
Поскольку WooCommerce хранит идентификаторы перекрестных продаж в виде сериализованных данных, кажется, что правильным способом является чтение всех продуктов через некоторый цикл WP и unserialize-> анализировать все идентификаторы перекрестных продаж, а затем поиск необходимого идентификатора - но это займет слишком много времени и памяти.
Вот почему нам нужно найти более простой способ - какой-то трюк. Вот оно:
Предположим, что идентификатор продукта A равен 132, продукта B равен 60, продукта C равен 34.
А продукт А имеет 2 перекрестных продукта - В и С.
Таким образом, таблица wp_postmeta будет иметь такую строку:
1098 132 _crosssell_ids a:2:{i:0;i:60;i:1;i:34;}
Продукт B присутствует в метаданных crossell_ids других продуктов в виде «i: 60;» уникальная строка. Вот почему нам просто нужно найти эту строку через wp_postmeta.
global $wpdb;
$product_b_id=60;
$product_that_have_B_as_crossell= $wpdb->get_col("select post_id
from $wpdb->postmeta
where
meta_key='_crosssell_ids'
and
meta_value like '%i:".esc_sql($product_b_id).";%' ");
var_dump($product_that_have_B_as_crossell);