<?php
/**
 * Assigne la langue 'fr' à tous les posts traduisibles qui n'ont pas encore de
 * langue. À lancer UNE FOIS après l'activation de Polylang + l'enregistrement
 * des langues, AVANT de seeder les EN/ES.
 *
 *   wp eval-file wp-content/seed/assign-fr.php
 *
 * Idempotent (ne touche que les posts sans langue).
 */

defined('ABSPATH') || exit;

if (!function_exists('pll_set_post_language')) {
    WP_CLI::error('Polylang inactif — installer/activer Polylang d\'abord.');
}

$types = ['page', 'post', 'produit', 'toiture', 'industrie', 'reference', 'lieu'];
$count = 0;
foreach ($types as $type) {
    $ids = get_posts([
        'post_type'      => $type,
        'posts_per_page' => -1,
        'fields'         => 'ids',
        'post_status'    => 'any',
        'lang'           => '', // toutes langues confondues
    ]);
    foreach ($ids as $id) {
        if (!pll_get_post_language($id)) {
            pll_set_post_language((int) $id, 'fr');
            $count++;
        }
    }
}
WP_CLI::success("langue fr assignée à $count post(s)");
