0

如果在比较 CSV 和现有产品时 SKU 不存在,是否可以更改帖子状态?

IE。如果我有 SKU 12345 的产品并且 CSV 文件中不存在该 SKU,请将帖子状态更改为“草稿”。如果它确实存在于 CSV 文件中,请将帖子状态更改为“已发布”

感谢大家的帮助!

4

1 回答 1

0

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.

于 2020-07-01T01:40:40.857 回答