在比较CSV和现有产品时,如果SKU不存在,是否可以更改发布状态?
即。如果我的产品具有SKU 12345,并且CSV文件中不存在该SKU,请将发布状态更改为“草稿”。如果它确实存在于CSV文件中,请将发布状态更改为“已发布”
感谢所有帮助!
在比较CSV和现有产品时,如果SKU不存在,是否可以更改发布状态?
即。如果我的产品具有SKU 12345,并且CSV文件中不存在该SKU,请将发布状态更改为“草稿”。如果它确实存在于CSV文件中,请将发布状态更改为“已发布”
感谢所有帮助!
您可以将CSV中确实存在的项目的发布状态更新为publish
,如下所示(代码未经测试,进入[child]主题的functions.php
):
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中没有不的产品,在导入过程中没有简便的方法可以检测到。
您可以做的一件事是在导入之前运行自定义代码 ,将 all 帖子设置为draft
,然后运行导入以更新那些CSV中存在publish
。