我有一个8k产品的商店,我用我制作的插件导入。
产品,类别和变化都是正确的。
所有商店都是正确的。
但问题是每个类别的页面都没有输出产品,直到我让它们逐个手动保存。
我已经禁用了主题和插件,同样的东西继续使用原件。
如果我通过覆盖存档产品手动更改查询,则会看到所有产品,但分页和类别列表保持不变。
可能是某个元帖吗?
任何解决方案?
非常感谢大家。
我生成基本和变体产品的功能:
$post = array(
'post_author' => 1,
'post_content' => $this->getDescription(),
'post_status' => 'publish',
'post_title' => $this->getName(),
'post_parent' => '',
'post_type' => 'product'
);
$postId = wp_insert_post($post);
$this->setId($postId);
if ($this->getId()) {
update_post_meta($this->getId(), '_sku', $this->getSku());
update_post_meta($this->getId(), '_visibility', 'visible');
wp_set_object_terms($postId, $this->getCategories(), 'product_cat');
$this->getImageXML();
update_post_meta($this->getId(), '_price', $this->price);
update_post_meta($this->getId(), '_regular_price', $this->price);
wp_set_object_terms($this->getId(), $this->getType(), 'product_type', false);
if ($this->getType() == 'simple') {
update_post_meta($this->getId(), '_manage_stock', 'yes');
update_post_meta($this->getId(), '_stock', $this->getStock());
} else {
$talla = wc_attribute_taxonomy_name('Größe');
$attributes = array(
$talla => array(
'name' => $talla,
'value' => '',
'is_visible' => '1',
'is_variation' => '1',
'is_taxonomy' => '1'
)
);
wp_set_object_terms($this->getId(), $this->getAtributos(), $talla);
update_post_meta($this->getId(), '_product_attributes', $attributes);
foreach ($this->getVariants() as $key => $variant) {
$variation = array(
'post_title' => 'Product #' . $this->getId() . ' Variation',
'post_content' => '',
'post_status' => 'publish',
'post_parent' => $this->getId(),
'post_type' => 'product_variation'
);
$variationId = wp_insert_post($variation);
update_post_meta($variationId, '_sku', $variant['ean']);
update_post_meta($variationId, '_regular_price', $this->price);
update_post_meta($variationId, '_price', $this->price);
update_post_meta($variationId, '_manage_stock', 'yes');
update_post_meta($variationId, '_stock', $variant['stock']);
if ($variant['stock'] > 0) {
update_post_meta($variationId, '_stock_status', 'instock');
} else {
update_post_meta($variationId, '_stock_status', 'outofstock');
}
update_post_meta($variationId, 'attribute_' . $talla, strtolower(str_replace('/', '', $variant['talla'])));
}
WC_Product_Variable::sync($this->getId());
WC_Product_Variable::sync_attributes($this->getId());
}
}
答案 0 :(得分:0)
我找到了解决问题的方法:
将这两个meta_tags添加到产品:
update_post_meta($yourID, 'total_sales', 0);
update_post_meta($yourID, '_stock_status', 'instock');
或
update_post_meta($yourID, 'total_sales', 0);
update_post_meta($yourID, '_stock_status', 'outofstock');
在我的情况下,total_sale为0,因为它们是新产品。