如果在比较 CSV 和现有产品时 SKU 不存在,是否可以更改帖子状态?
IE。如果我有 SKU 12345 的产品并且 CSV 文件中不存在该 SKU,请将帖子状态更改为“草稿”。如果它确实存在于 CSV 文件中,请将帖子状态更改为“已发布”
感谢大家的帮助!
如果在比较 CSV 和现有产品时 SKU 不存在,是否可以更改帖子状态?
IE。如果我有 SKU 12345 的产品并且 CSV 文件中不存在该 SKU,请将帖子状态更改为“草稿”。如果它确实存在于 CSV 文件中,请将帖子状态更改为“已发布”
感谢大家的帮助!
publish
您可以使用以下内容更新CSV 中确实存在的项目的帖子状态(代码未经测试,进入functions.php
您的 [child] 主题):
function my_check_post_status ($continue_import, $post_id, $data, $import_id ) {
// Only process import ID 1, change this to match your import ID:
if ($import_id == 1) {
// Change 'sku' to the column name that contains your SKU.
$sku = $data['sku'];
// Check if the SKU already exists.
$product_id = $wpdb->get_var( $wpdb->prepare( "SELECT post_id FROM $wpdb->postmeta WHERE meta_key='_sku' AND meta_value='%s' LIMIT 1", $sku ) );
if ( $product_id ) {
// If product ID exists then set status to Published
wp_update_post(array(
'ID' => $product_id,
'post_status' => 'publish'
));
}
} else {
// Do nothing if it's not our specified import ID.
return $continue_import;
}
}
add_filter( 'wp_all_import_is_post_to_update', 'my_check_post_status', 10, 4 );
对于CSV 中不存在的产品,在导入期间无法轻松检测。
您可以做的一件事是在导入之前运行自定义代码,将所有帖子设置为draft
.,然后运行导入,将 CSV 中存在的内容更新为publish
.