如果SKU不存在,则更改帖子状态[WP All Import + Woocommerce]

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

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

感谢所有帮助!

iCMS 回答:如果SKU不存在,则更改帖子状态[WP All Import + Woocommerce]

您可以将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

本文链接:https://www.f2er.com/2027387.html

大家都在问