handling personn factories
This commit is contained in:
parent
f66d35a776
commit
31059fddd7
179
includes/factories.php
Normal file
179
includes/factories.php
Normal file
|
|
@ -0,0 +1,179 @@
|
|||
<?php
|
||||
|
||||
|
||||
function unique_migration_persons()
|
||||
{
|
||||
$transient = 'f71r4_my_onetime_check_metiers_45';
|
||||
if (!get_transient($transient)) {
|
||||
set_transient($transient, 'locked', 600);
|
||||
|
||||
write_log("Migration started");
|
||||
clean_persons();
|
||||
populate_personns();
|
||||
}
|
||||
}
|
||||
// add_action('init', 'unique_migration_persons');
|
||||
|
||||
function build_ids_from_csv($csv_file)
|
||||
{
|
||||
$postArray = [];
|
||||
if (($handle = fopen($csv_file, 'r')) !== false) {
|
||||
// Lire l'en-tête du CSV
|
||||
$headers = fgetcsv($handle, 0, ',');
|
||||
|
||||
// Parcourir chaque ligne du CSV
|
||||
while (($data = fgetcsv($handle, 0, ',')) !== false) {
|
||||
$row = array_combine($headers, $data);
|
||||
$post_fr_ID = $row['company_id (NEW)'];
|
||||
$post_nl_ID = apply_filters('wpml_object_id', $post_fr_ID, 'artisans', FALSE, 'nl') ?? null;
|
||||
|
||||
if (!in_array($post_fr_ID, $postArray)) {
|
||||
$postArray[] = $post_fr_ID;
|
||||
}
|
||||
if ($post_nl_ID && !in_array($post_nl_ID, $postArray)) {
|
||||
$postArray[] = $post_nl_ID;
|
||||
}
|
||||
}
|
||||
|
||||
// Fermer le fichier CSV
|
||||
fclose($handle);
|
||||
}
|
||||
return $postArray;
|
||||
}
|
||||
|
||||
function clean_persons()
|
||||
{
|
||||
$csv_file = '/Users/martoni_sato/Local Sites/homegrade-multi/app/public/wp-content/themes/Metiers_du_patrimoine/datas/20241114_Consolidations_cleaned_persons.csv';
|
||||
|
||||
$postsIdArray = [];
|
||||
$postsIdArray = build_ids_from_csv($csv_file);
|
||||
|
||||
foreach ($postsIdArray as $key => $postId) {
|
||||
$persons = get_field('company_members', $postId);
|
||||
if (!$persons) continue;
|
||||
|
||||
if ($postId === '119' || $postId === 8203) {
|
||||
$field_key = 'field_670d268f2b324';
|
||||
update_field($field_key, [], $postId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function build_personn_fr($row)
|
||||
{
|
||||
$personn_data_fr = array(
|
||||
'acf_fc_layout' => 'membre',
|
||||
'genre' => $row['Sexe'] ?? "",
|
||||
'first_name' => $row['first_name'] ?? "",
|
||||
'last_name' => $row['last_name'] ?? "",
|
||||
'description' => $row['formation_fr'] ?? "",
|
||||
'member_gsm_number' => $row['gsm'] ?? "",
|
||||
'old_website_person_id' => $row['person_id'] ?? "",
|
||||
);
|
||||
return $personn_data_fr;
|
||||
}
|
||||
function build_personn_nl($row)
|
||||
{
|
||||
$personn_data_nl = array(
|
||||
'acf_fc_layout' => 'membre',
|
||||
'genre' => $row['Sexe'] ?? "",
|
||||
'first_name' => $row['first_name'] ?? "",
|
||||
'last_name' => $row['last_name'] ?? "",
|
||||
'description' => $row['formation_nl'] ?? "",
|
||||
'member_gsm_number' => $row['gsm'] ?? "",
|
||||
'old_website_person_id' => $row['person_id'] ?? "",
|
||||
);
|
||||
return $personn_data_nl;
|
||||
}
|
||||
|
||||
function populate_personns()
|
||||
{
|
||||
// Chemin vers le fichier CSV
|
||||
$csv_file = '/Users/martoni_sato/Local Sites/homegrade-multi/app/public/wp-content/themes/Metiers_du_patrimoine/datas/20241114_Consolidations_cleaned_persons.csv';
|
||||
|
||||
if (($handle = fopen($csv_file, 'r')) !== false) {
|
||||
// Lire l'en-tête du CSV
|
||||
$headers = fgetcsv($handle, 0, ',');
|
||||
|
||||
// Parcourir chaque ligne du CSV
|
||||
while (($data = fgetcsv($handle, 0, ',')) !== false) {
|
||||
$row = array_combine($headers, $data);
|
||||
|
||||
|
||||
if ($row['company_id (NEW)'] === '119') {
|
||||
|
||||
$post_fr_ID = $row['company_id (NEW)'] ?? null;
|
||||
if (!$post_fr_ID) continue;
|
||||
$post_nl_ID = apply_filters('wpml_object_id', $post_fr_ID, 'artisans', FALSE, 'nl');
|
||||
|
||||
|
||||
write_log($post_fr_ID);
|
||||
write_log($post_nl_ID);
|
||||
// Récupérer les membres existants
|
||||
$existing_members_fr = is_array(get_field('company_members', $post_fr_ID)) ? get_field('company_members', $post_fr_ID) : [];
|
||||
$existing_members_nl = is_array(get_field('company_members', $post_nl_ID)) ? get_field('company_members', $post_nl_ID) : [];
|
||||
// write_log($existing_members_fr);
|
||||
// write_log($existing_members_nl);
|
||||
|
||||
// Build des données du contenu flexible
|
||||
$user_data_fr = build_personn_fr($row);
|
||||
$user_data_nl = build_personn_nl($row);
|
||||
|
||||
// write_log($user_data_fr);
|
||||
// write_log($user_data_nl);
|
||||
|
||||
$updatedMembersArrayFr = $existing_members_fr;
|
||||
$updatedMembersArrayNl = $existing_members_nl;
|
||||
|
||||
array_push($updatedMembersArrayFr, $user_data_fr);
|
||||
array_push($updatedMembersArrayNl, $user_data_nl);
|
||||
|
||||
|
||||
// write_log($updatedMembersArrayFr);
|
||||
// write_log($updatedMembersArrayNl);
|
||||
|
||||
$field_key = 'field_670d268f2b324';
|
||||
update_field($field_key, $updatedMembersArrayFr, $post_fr_ID);
|
||||
update_field($field_key, $updatedMembersArrayNl, $post_nl_ID);
|
||||
}
|
||||
}
|
||||
|
||||
// Fermer le fichier CSV
|
||||
fclose($handle);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function get_multiple_members_from_artisans()
|
||||
{
|
||||
$args = array(
|
||||
"status" => "publish",
|
||||
"post_type" => "artisans",
|
||||
"posts_per_page" => -1,
|
||||
// "tax_query" => $taxQuery,
|
||||
// "meta_query" => $metaQuery,
|
||||
);
|
||||
$newsPostsDatas = new WP_Query($args);
|
||||
$filteredPosts = [];
|
||||
|
||||
foreach ($newsPostsDatas->posts as $key => $post) {
|
||||
$persons = get_field('company_members', $post->ID);
|
||||
if (!$persons) continue;
|
||||
write_log(count($persons));
|
||||
if (count($persons) > 1) {
|
||||
write_log($post->ID);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return $filteredPosts;
|
||||
|
||||
// write_log($newsPostsDatas->posts);
|
||||
|
||||
}
|
||||
|
||||
function show_acf_repeator()
|
||||
{
|
||||
$repeater = get_field('company_members', 123);
|
||||
write_log($repeater);
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user