php – 为所有WooCommerce产品启用永久复查复选框选项

我想为所有现有产品和新添加的产品永久启用审核复选框.我查看了WooCommerce设置,但那是不可能的.我在互联网上搜索,但我找不到任何东西.

如何批量修改所有现有产品以启用评论

当我们添加新产品时,它也应该自动检查.

有办法吗?
可能吗?

提前致谢.

解决方法:

This is possible, but you will need 2 functions. One to update all existing products inn your shop, that you will use only one time, and the other for all newly published products.

第1步 – 在function.PHP上使用一次,然后转到前端并导航到任何页面.完成后,请注释此代码或将其删除.您所有现有产品都已更新.

// Updating all products that have a 'comment_status' => 'closed' to 'open'

function updating_existing_products_once(){
    $args = array(
        // WC product post type
        'post_type'   => 'product',
        // all posts
        'numberposts' => -1,
        'comment_status' => 'closed',
        'post_status' => 'publish',
    );

    $shop_products = get_posts( $args );
    foreach( $shop_products as $item){
        $product = new WC_Product($item->ID);
        wp_update_post( array(
            'ID'    => $item->ID,
            'comment_status' => 'open',
        ) );
    }
}
// After usage comment this line below
updating_existing_products_once();

第2步 – 此功能将更新具有’comment_status’=>的新创建产品’关闭’到’开放'(对WooCommerce的评论)……

add_action('transition_post_status', 'creating_a_new_product', 10, 3);
function creating_a_new_product($new_status, $old_status, $post) {
    if( $old_status != 'publish' && $new_status == 'publish' && !empty($post->ID)  && in_array( $post->post_type, array( 'product') ) ) {
        if ($post->comment_status != 'open' ){
            $product = new WC_Product($post->ID);
            wp_update_post( array(
                'ID'    => $post->ID,
                'comment_status' => 'open',
            ) );
        }
    }
}

代码位于活动子主题(或主题)的function.PHP文件中,或者也可以放在任何插件文件中.

代码经过测试和运行.

相关文章

我们有时候在定制WORDPRESS主题的时候,由于菜单样式的要求我...
很多朋友在做wordpree主题制作的时候会经常遇到一个问题,那...
wordpress后台的模块很多,但并不是每个都经常用到。介绍几段...
从WordPress4.2版本开始,如果我们在MYSQL5.1版本数据中导出...
很多网友会遇到这样一个问题,就是WordPress网站上传图片、附...
对于经常要在文章中出现代码的IT相关博客,安装一个代码高亮...