Woocommerce

Asignar sku random a los que no tienen

2 Genial hay muchos Likes :D
add_action("init","init_sku_random");
function init_sku_random()
{
	if(isset($_GET['asignar_sku']))
	{
		
			
		// Obtener productos sin SKU
			$args = array(
				'post_type'      => 'product',
				'post_status'    => 'publish',
				'posts_per_page' => -1,
				'meta_query'     => array(
					array(
						'key'     => '_sku',
						'compare' => 'NOT EXISTS',
					),
				),
			);

			$products_query = new WP_Query( $args );

			// Asignar SKU aleatorios a los productos sin SKU
			while ( $products_query->have_posts() ) {
				$products_query->the_post();
				$product_id = get_the_ID();

				// Generar un SKU aleatorio
				$new_sku = generate_random_sku();
				echo "producto ID ".$product_id.'  SKU '.$new_sku;
				echo '<br>';
				// Asignar el SKU aleatorio al producto
				update_post_meta( $product_id, '_sku', $new_sku );
			}
			
		
		exit();
		
	}
}



function generate_random_sku() {
    // Longitud deseada del SKU
    $sku_length = 8;

    // Caracteres válidos para el SKU
    $sku_characters = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';

    $sku = '';

    // Generar el SKU aleatorio
    for ( $i = 0; $i < $sku_length; $i++ ) {
        $random_index = mt_rand( 0, strlen( $sku_characters ) - 1 );
        $sku .= $sku_characters[$random_index];
    }

    return $sku;
}