在 Woocommerce 中,我想获取某个产品被定义为交叉销售的产品列表。
因此,检查哪些产品 B 是交叉销售会给出: A、C
没有找到任何背景
示例:产品 A 有产品 B、C 作为交叉销售 产品 B 有产品 A、C、D 作为交叉销售 产品 C 有产品 A、B、D 作为交叉销售
因此,检查哪些产品 B 是交叉销售会给出: A、C
您可以使用 mysql 查询来完成。
由于 WooCommerce 将交叉销售 ID 存储为序列化数据 - 正确的方法似乎是通过一些 WP 循环读取所有产品并反序列化-> 分析所有交叉销售 ID,然后搜索所需的 ID - 但这会花费太多时间和内存。
这就是为什么我们需要找到更简单的方法——一些技巧。这里是:
假设产品A的ID是132,产品B是60,产品C是34。
产品 A 有 2 个交叉销售产品 - B 和 C。
所以 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);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句